标签 AI 下的文章

活动详情回顾: https://www.v2ex.com/t/1187043


本次征稿额外奖励(已发放完毕)

截止到 utc 时间 2026.1.27, 以下帖子获得额外的活动奖励:

  • 回复数最多(193 回复) -> 200$v2ex:

@287854442 <<一个大胆的预言:语音输入将成为绝对主流>>

  • 收藏数最多(14 人收藏) -> 500$v2ex

@sillydaddy <<vibe coding 的最佳实践到底是什么?>>

  • 感谢数最多(3 人感谢) -> 500$v2ex

@287854442 <<一个大胆的预言:语音输入将成为绝对主流>>


本次活动所有符合主题的帖子:

<<一个大胆的预言:语音输入将成为绝对主流>> 作者: @287854442

<<"AI 与编程" 几个月来高强度 vibe coding 的一点心得>> 作者: @mkq

<<AI 时代,笔记的结局是什么?>> 作者: @287854442

<<"AI 与编程" 近半年工作使用 Cursor 的感受>> 作者: @lenglengyuchen

<<vibe coding 的最佳实践到底是什么?>> 作者: @sillydaddy

<<我从来不是创造型人才 - AI 驱动编程下的迷思>> 作者: @Zhuzhuchenyan

<<未来 10 年程序员技术水平分布会是什么结构?>> 作者: @Kinnikuman

<<AI 狂热的冷思考>> 作者: @shoushen

<<AI 浪潮下,程序员教育该如何转型?>> 作者: @Dabney

<<大家都是如何使用 AI 提升工作效率的?>> 作者: @darktutu

<<我们真的应该完全放弃《古法编程》?>> 作者: @ybz

<<随着 AI 的发展,"眼高手低"会不会逐渐变成优势?>> 作者: @funtanstic


最后, 再次感谢所有参与分享与讨论的 V 友, 欢迎大家关注Joe's Talk, 让我们一起来建设新的无水板块.

编辑:倾倾

【新智元导读】这是一份迟到三年的行业复盘。牛津大学最新的实证研究撕开了那层遮羞布:2022年全球科技大裁员爆发时,ChatGPT甚至尚未发布。周期性缩编被伪装成技术性迭代,AI替资本背了三年的锅,直到今天真相才被彻底复位。

一场幻觉,竟然持续了三年!

2022年11月,ChatGPT横空出世,随后硅谷开启大裁员,程序员和写手哀鸿遍野。

所有人都觉得,因为AI来了,所以我们失业了。

然而,一项由牛津大学和基尔世界经济研究所团队发布的论文却告诉我们,我们恨错了人!

论文地址:
https://arxiv.org/abs/2601.02554

其实早在ChatGPT上线半年前,这些行业的需求已呈现断崖式下跌。

那时,OpenAI还在调GPT-3.5的参数,根本没有功夫抢你的工作。

既然如此,到底谁才是幕后真凶?又是谁让AI成了替罪羊?

一场持续3年的「集体幻觉」

如果真如传言中那样,2022年的岗位需求应该在11月之后断崖式下跌。

然而,数据显示,下跌其实早就开始了。

计算机、商务、金融等高AI暴露率的职业,其失业风险在2022上半年已远超餐饮与建筑业。

但这会儿,奥特曼还在为算力账单发愁,ChatGPT甚至没有出生。

所以,我们不能贸然将失业和AI划等号,就像你无法指控未出世的婴儿杀了人。

为了进一步验证以防误伤,研究团队开始了一场对照试验。

实验组是科技依赖型岗位。2022年上半年,随着「远程办公泡沫」破裂,LinkedIn数据显示远程职位申请竞争度飙升,但招聘需求却从2022年初的峰值开始滑坡。

对照组是非科技依赖型工作,如餐饮、护理等在同一时间不仅没有崩盘,反而因为「后疫情复苏」出现了严重的用工荒。

不同职业从的失业风险变化,颜色的深浅表示职业的暴露度。颜色越深,暴露度越高

如果说GPT的出现取代了人类的工作,那么最开始取代的也应该是低级脑力工作,高级技能岗位依旧保留。

但数据显示的结果是无差别的行业雪崩。不论你是初级码农还是资深架构师,只要身处科技与外包行业,均被无差别清洗。

这就说明,受害者是按照行业资金充裕度划定的,而不是「是否能被AI替代」。

所以,杀死工作的凶手,肯定不是当时的GPT-3.5,它只是经过,就成了替罪羊。

杀死你的不是算法,是周期

既然GPT只是替罪羊,那么,凶手到底是谁?

如果一定要指名道姓,那么凶手应当是美联储主席Jerome Powell,或者说,是那时的宏观周期。

让我们看向更早的时间点——2021年。

那是一个疯狂的年份,全球疫情导致物理隔绝,科技公司以为这种数字化繁荣将成为常态。

于是,巨头和独角兽们开启了一场史无前例的「抢人大战」,钱也慢慢变得不值钱。

只要你会写代码、会画图、甚至只要简历上沾点「数字化」,你就能拿到溢价50%的Offer。

转折点发生在2022年年初,美联储开启暴力加息周期,全球风险投资瞬间腰斩。

根据Crunchbase的统计数据,2022年第三季度的全球风投融资额仅为810亿美元,同比暴跌53%。

市场上流动的「抢人预算」在一夜之间蒸发了一半。

AI只是其中的原因之一,更多是因为初创公司「账上没钱了」,为了生存,只能裁员。

牛津大学的研究进一步证实了这一点。

如果将2022-2025年的「高科技职位招聘需求曲线」拿出来,就能发现,它与纳斯达克指数的走势惊人地重合,却与GPT-4等模型的发布时间点毫无相关性。

利率上行,纳指下挫,招聘冻结——这完全符合宏观经济学模型,与「技术奇点」无关。

我们必须承认,2020-2021年的抢人大战才是异常现象。

那时,因为无限量化宽松,各类科技公司疯狂囤积人才,许多程序员拿着高薪实际上在做着重复的工作。

2022年的惨烈裁员潮,本质上是市场在暴力纠错——从「泡沫逻辑」回归到「商业常识」,而不是技术性淘汰。

借刀杀人:一场蓄谋已久的「洗白」

如前文所述,裁员是宏观经济造成的,为什么所有公司都要把锅甩给AI?

答案很简单:AI是资本市场上最好用的「遮羞布」。

分析师们给这种现象起了一个专属名词——「AI冗余洗白」

假如你是一位纳斯达克上市公司的CEO。在这个资金寒冬里,你的业绩下滑,现金流紧张,必须要裁掉10%的员工来缩减开支。此时摆在你面前的有两份公关稿:

低情商:因为我们前两年盲目扩张、管理不善,导致现在没钱了,被迫裁员。

  • 后果:股价暴跌,股东愤怒,董事会质疑你的能力,你可能比员工先卷铺盖走人。

高情商:我们要All in AI,所以要进行战略性组织重构,优化冗余人力,打造更高效的AI驱动型企业。

  • 后果:股价大涨,分析师为你鼓掌,称赞你拥有「壮士断腕」的远见卓识。

如果你是CEO,你会选哪一个?答案不言自明。

来看看那些教科书级别的洗白案例:

Dropbox作为最早的「示范单位」,CEO Drew Houston在裁掉16%员工(500人)时,高调宣布:

AI计算时代终于到来了,我们的下一阶段增长需要不同的技能组合。

从物流巨头UPS裁员1.2万人,到各大科技公司如Amazon、Google的滚动式裁员,高管们在解释裁员理由时,「AI」一词的出现频率比「利润」还高。

多项行业调查显示,相当比例的高管承认,将裁员与AI挂钩是为了避免被市场视为「落伍者」。

老板们心里比谁都清楚,现阶段的AI根本干不了那一万名员工的活。

但在资本市场上,只要喊出AI的口号,裁员就不再是「衰退,而是进化。

所以,不是AI抢了你的工作,而是老板借着AI的名义,干掉了那些他早就想干掉、却一直找不到完美理由干掉的人。

从暂时失业到永久出局

既然是经济周期作祟,那是不是只要等到降息、等到经济复苏,属于我们的那个「黄金时代」就会回来?

遗憾的是,这才是本报告最残酷的真相。

经济学中的「疤痕效应」,精准描述了我们此刻的困境:当2024-2025年宏观经济终于开始解冻时,不同行业的命运走向了截然相反的两端。

随着美联储降息预期升温,非科技依赖型行业(如酒店、医疗、建筑)的需求曲线呈现「V型」或「U型」反弹,迅速回到了疫情前的水平。

科技职位信息在 2022 年初之前后翻了一倍以上,但此后已全部回撤,截至 2025 年 7 月 11 日,较疫情前水平低 36%。

然而,高AI暴露职位(文案、初级代码、翻译)的需求曲线却是绝望的「L型」——在经历了2022年的暴跌后,陷入结构性停滞,彻底与经济复苏脱钩。

这就解释了为什么你感觉「经济好像好了,但我的行业还没好」。

因为企业在裁员后发现:虽然当初是因为没钱才裁员,但现在有了AI辅助,似乎确实不再需要把这些人招回来了。

Upwork和Fiverr等前沿市场的数据印证了这种「K型分化」:

  • 下行线(K之下):纯粹的翻译、纯粹的SEO文章写作、纯粹的初级Java外包,需求量几乎归零。
  • 上行线(K之上):标有「AI-Assisted」(AI辅助)、「Prompt Engineering」(提示词优化)或者是能驾驭AI的高级全栈工程师,薪资和需求都在飙升。

如果说美联储是突发性杀手,那么AI就是慢性毒药。

它确保了那些因经济周期消失的岗位,永远不会再回来。它把周期性的「临时失业」,变成了结构性的「永久淘汰」。

2022年,老板因为穷开不起单;2026年,老板因为不需要,所以不开单。

我们耗费三年,将所有焦虑错投给了一个假想敌。

却忽略了在资本寒冬里,真正的生存法则从来没变过:技术只是筹码,谁掌握了资本的流向,谁才拥有定义的权力。

所以,别再问「AI何时会取代我」,这个问题已是过去式了。

你应该问的是:

当所有的借口都被揭穿之后,除了那个随时可以被量化的自己,你手里还有没有底牌?

先说结论:大概 1~2 年之后,语音输入在移动设备上将会成为主流的输入方式。文字输入基本被淘汰,就跟现在基本没有人会用手写输入一样。

为什么?因为效率。

一个操作熟练的一般人大概每分钟能打 80~100 个汉字,人的说话速度大概是每分钟 160~240 个汉字。

现在 AI 语音输入法可以识别得非常快,非常准确,基本上可以跟上说话的速度。比如说我写的这一段,用的是豆包的语音输入(利益不相关,纯佩服),一个错别字都没有改过(最多是修改一下标点符号。)甚至一些很生僻的词也能识别出来。

当然,随着这个预测的出现,另外一个是谁能把握到这个语音输入的机会(包括软件和硬件),谁可能就会成为未来输入的统领者。这个预测的一个很大的变数是 AI 时代语音输入法门槛会比较低,做一个九十分的语音输入应该都不是一个很复杂且很费劲的事情。比的是谁能做到 99 分。

你觉得呢?

背景介绍

随着HarmonyOS 的发展,很多开发者将鸿蒙作为重要开发平台,尤其是在华为激励计划的加持下,涌入大量开发者贡献了大量应用,将大量创意带个了鸿蒙生态。

但随着时间推移,许多开发者发现,鸿蒙的应用审核似乎异常“严格”,很多开发者上架提审时被卡在了《审核指南》3.5和3.7项:

  • 3.5项的规则是:应用需具备实用价值,能为用户提供实质功能/服务,且需具备创意,不得为纯信息展示,包括但不限于单一图片、单一页面、单一影视剧集类、单一图书单行本类、单一非官方游戏攻略类等。应用不得是简单打包的网站页面或套用模板、内容聚合、罗列链接、广告推广等,或为手机系统自带的简易功能。
  • 3.7项的规则是:请避免继续在已有较多类似应用的类别下进行开发,如敲木鱼、随机选择、计算器、手电筒、记事本、记账、天气、数字大小写转换、日历、指南针、智能遥控、镜子、助眠睡眠、证件照、色彩助手、手持弹幕、播放器、万能遥控器、外卖跑腿聚合平台、生鲜买菜服务聚合平台、计时类、Wi-Fi管理类、Wi-Fi搜索连接类、Wi-Fi检测提速类等类别的应用,除非您的应用能够提供独特、高质量的体验,为用户提供多样、优质的功能和服务,否则您的应用可能会被拒绝或移除。
    还有不少开发者反馈,被3.5或3.7规则拒审后,又增加了不少页面和功能还是被以同样的原因拒审,甚至有人再传只要被3.5或3.7基本死刑了,需要重新想创意开发了。小编正好之前被3.5拒审后面通过迭代成功上架打破传言,本文就通过复盘3.5后迭代的经历分享打破3.5魔咒的经验。
    image.png

应用功能介绍

小编开发的应用叫”智能带办“,踩中了个人开发者最常开发的应用清单,是个清单类应用。创意来源于日常生活中自己的痛点,每次出差出远门或者从帝都回老家,都要拉一个单子把所有要带的东西都列出来,大部分情况带的东西都差不多,一般都记录在备忘录中,列清单的时候很耗费精力,想到AI能力越来越强大,可不可以让AI给生成?在AI工具中虽然可以生成清单,但是又没法做勾选等操作,融合操作和AI能力就想到做一个智能生成带办的应用,应用的亮点就是专注解决出行携带难题,通过AI智能生成场景清单,让你告别遗忘,轻松应对每一次出差、旅行、露营与日常外出。

智能带办,让你每一次出发,都底气十足。
告别“忘带焦虑”,从容开始每一段行程。
image.png

3.5拒审版本功能盘点

提审被拒绝的版本主要包含四个页面:Chat、历史、我的、详情。在Chat页面输入要办的事情自动生成要带物品清单,勾选物品确认后生成带办清单并自动跳转到详情页,页面效果如下:
Chat页面:
image.png
清单页面:
image.png

清单展开详情页:
image.png

详情页:
image.png

新迭代功能

在重新提审的版本对整个代码工程做了重构,UI也进行了优化,包含功能:
推荐:
image.png

清单页:
image.png

Chat页:
image.png
详情页:
image.png

碰一碰页:
image.png

语音输入:
image.png

对比拒审前和拒审后版本功能区别如下:
1、UI美化
2、增加了推荐功能
3、增加了HarmonyOS 系统碰一碰分享能力
4、增加了语音输入功能
5、Chat页输入框上方增加了推荐问题

复盘总结

通过对比被拒版本与最终上架版本,我们可以清晰地看到一个核心转变:从“一个不错的功能点子”进化为“一个完整、独特且有深度的产品”。这不仅是一次功能的叠加,更是对审核规则内涵的深刻理解与主动契合。下面,我将逐点拆解迭代背后的逻辑,还原打破“3.5魔咒”的真实路径。

  1. 从“单薄的功能演示”到“完整的用户体验闭环”

    • 原版本痛点:应用流程始于Chat输入,终于清单生成与勾选。这更像是一个AI工具的“功能演示”,用户使用路径短,用完即走,缺乏留存价值和持续使用场景,恰好落入规则3.5所述“功能单薄”的范畴。
    • 迭代策略与效果:

      • 增加“推荐”页:这是本次迭代的“棋眼”。它不再是空白的起点,而是提供了“出差”、“露营”、“健身”等丰富的预设场景。这带来了三大好处:其一,直观证明了应用的“实用价值”和解决多种场景问题的能力,直接回应了审核对“实质功能”的要求;其二,降低了用户冷启动门槛,提升了易用性;其三,构建了内容厚度,让应用看起来像一个精心策划的工具集,而非一个简单的输入框。
      • 结果:应用从一个“AI清单生成器”变成了一个“出行准备助手”,用户体验形成了“浏览场景-选择/自定义-生成-管理”的完整闭环。
  2. 从“通用AI套壳”到“彰显HarmonyOS独特性”

    • 原版本痛点:功能完全依赖AI接口,在任何平台均可实现,未能体现鸿蒙生态的独特优势。这容易让审核认为应用是“简单打包”或“套用模板”,缺乏不可替代性。
    • 迭代策略与效果:

      • 深度集成“碰一碰”能力:此功能是彰显“鸿蒙基因”的关键。它不再是简单的文本分享,而是通过系统能力实现了跨设备的无缝清单流转。这充分展示了开发者对HarmonyOS系统级能力的钻研与应用,证明了应用是为鸿蒙原生体验而设计,提供了其他平台难以复制的“独特、高质量的体验”(这也恰好回应了规则3.7的精神)。
      • 结果:应用的核心竞争力从“能生成清单”升级为“能在鸿蒙生态中优雅、便捷地生成和协同处理清单”,差异性豁然开朗。
  3. 从“基础交互”到“丰富且人性化的交互维度”

    • 原版本痛点:交互方式仅有文字输入和点击勾选,较为单一。
    • 迭代策略与效果:

      • 增加“语音输入”:这不仅仅是增加一个功能,更是提升了应用的易用性、包容性和现代化程度。在出行准备等双手可能不便的场景下,语音输入尤为实用。它展现了开发者在打磨用户体验上的深度思考。
      • 增加“推荐问题”:在Chat页输入框上方添加推荐问题(如“周末露营带什么?”),极大地引导了用户,丰富了交互的启发性和探索性,让AI工具变得更“聪明”和友好。
      • 结果:应用提供了文字、语音、预设场景选择、碰一碰分享等多种交互路径,功能层次变得更加立体和丰满,彻底摆脱了“单一页面”、“简单操作”的观感。
  4. UI美化:不仅是“面子”,更是“里子”的体现

    • UI重构与美化:这常常被开发者视为“表面功夫”,但在审核视角中,精致的UI是应用“高质量”和“完成度”最直观的外在表现。一个粗糙的界面会强化“敷衍”、“模板化”的印象;而一个设计精良、符合鸿蒙设计规范的界面,则传递出开发者认真打磨产品、尊重用户的积极信号。本次的UI优化,与功能深化同步,共同塑造了一款成熟应用的质感。

核心经验提炼:给开发者的避坑指南

  1. 超越功能点,思考用户旅程:不要只满足于实现核心功能。问自己:用户从哪里来(入口引导)?核心功能之后还能做什么(场景延伸/分享/管理)?如何让他下次还想用(留存价值)?构建闭环。
  2. 拥抱系统能力,打造生态差异化:在鸿蒙上开发,务必主动探索并集成Kit能力(如碰一碰、原子化服务、卡片等)。这是证明你为鸿蒙而来、并能为鸿蒙生态增色的最强证据。
  3. 叠加交互维度,展现思考深度:在主流程上,思考是否能提供更便捷(如语音)、更引导(如推荐)、更趣味(如动效)的交互方式。丰富的交互是“功能深度”的体现。
  4. 用视觉品质为产品背书:将UI/UX视为产品不可或缺的一部分。高质量的设计能无形中提升审核对应用整体质量的评价。

结论

“智能带办”通过审核的经历证明,规则3.5并非“死刑判决”,而是一道清晰的“产品成熟度”分水岭。被拒不是创意的终结,而是产品打磨的开始。关键在于,开发者必须跳出“我明明有这个功能”的委屈心态,转而以审核规则为镜,以更高标准审视自己的应用:它是否构成了完整服务?是否具备生态特色?交互是否丰满精致?当你的应用能从这些维度展现出独特价值和用心之处时,“3.5魔咒”自然不攻自破。

现在有了 ai 我遇到不懂的方法直接让 ai 分析输入输出和调用关系直接就出来了
例如:opencode 的源代码

用户发送消息
      ↓
┌─────────────────────────────────────────────────────────────┐
│  Server (routes/session.ts:733)                             │
│  SessionPrompt.prompt({ ...body, sessionID })               │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  SessionPrompt.prompt (prompt.ts:151)                       │
│  1. 创建用户消息                                             │
│  2. 调用 loop(sessionID)                                    │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  SessionPrompt.loop (prompt.ts:258)                         │
│  while (true) {                                             │
│    1. 获取 Agent 配置: Agent.get(lastUser.agent)            │
│    2. 解析工具: resolveTools({ agent, session, ... })       │
│    3. 创建处理器: SessionProcessor.create(...)              │
│    4. 调用处理器: processor.process({ user, agent, ... })   │
│  }                                                          │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  SessionProcessor.process (processor.ts:45)                 │
│  while (true) {                                             │
│    1. 调用 LLM: LLM.stream(streamInput)                     │
│    2. 处理流式响应:                                          │
│       - reasoning-delta → 更新推理部分                       │
│       - text-delta → 更新文本部分                            │
│       - tool-call → 执行工具                                 │
│    3. 工具执行完成后继续循环                                  │
│  }                                                          │
└─────────────────────┬───────────────────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────────────────┐
│  LLM.stream (llm.ts)                                        │
│  1. 构建系统提示词                                           │
│  2. 调用 AI SDK: streamText({ model, messages, tools })     │
│  3. 返回流式响应                                             │
└─────────────────────────────────────────────────────────────┘

TUI ↔ Server 通信机制

架构图

┌─────────────────────────────────────────────────────────────┐
│  主线程 (thread.ts)                                         │
│  - 运行 TUI 界面                                            │
│  - 创建 RPC 客户端                                          │
└─────────────────────┬───────────────────────────────────────┘
                      │ RPC 通信
                      ▼
┌─────────────────────────────────────────────────────────────┐
│  Worker 线程 (worker.ts)                                    │
│  - 运行 Server.App()                                        │
│  - 处理 fetch 请求                                          │
│  - 转发事件                                                 │
└─────────────────────────────────────────────────────────────┘

Worker 启动流程

用户运行 `opencode`
         ↓
index.ts 解析命令 → TuiThreadCommand ($0 默认命令)
         ↓
thread.ts handler 执行:
         ↓
第 79-85 行:确定 worker 文件路径
         ↓
第 93 行:创建 Worker 线程
   const worker = new Worker(workerPath, { env: ... })
         ↓
第 101 行:创建 RPC 客户端与 Worker 通信
   const client = Rpc.client<typeof rpc>(worker)
         ↓
第 143 行:启动 TUI 界面
   const tuiPromise = tui({ url, fetch: customFetch, ... })

之前没有 ai 的时候经常一个方法看半天看不懂

最近糟心新闻有点多, 还是来看看 AI 笑话放松一下吧(以下均为使用 Antigravity 过程中模型生成的内容):

  1. 货不对板

    货不对板

  2. 着急下班

    着急下班

  3. 人为疏忽

    人为疏忽

  4. 完全忘记

    完全忘记

  5. 头昏眼花

    头昏眼花

  6. 绝对吊打

    绝对吊打

  7. 恰到好处的 emoji

    非常极其准确

以前一个项目可能要 5 个程序员搞定的现在只要 2 个就可以了,但是产品经理是没办法被取代的!!强烈建议转岗,AI 根本没办法理解一个人应该如何使用产品,交互,比如按钮为什么会在这?

目前在一家小企业做乙方项目负责人,最近招投标感觉竞争力越来越大,投标价越来越低。
这两年做的项目基本都不挣钱,也就保住部门正常运行。
同时也感觉到 AI 能力越来越强,肉眼可见的 AI 已经慢慢快要超过程序员(我们部门用 Java 搞工程化的)。
和好多甲方聊了聊,他们之前人少,所以有好多项目会外协。现在 AI 能力越来越强,他们之前会发标的项目,现在好多都内部研发人员用 AI 实现了。


所以不知道哪天我们部门就被撤掉了。


已经过了 35 了,再就业的可能性很小了,现在正在寻找失业后的方向。


有没有类似的同仁,大家有没有给自己留什么退路?

最近 vibe 了十几个 skill ,都是脚本/工具型的,有稳定的输入输出,比如输入一个图片,输出图片中的文字信息这种,后面可能会更多 skill ,也会有非常多的组合。

我平时需要经常调用这些组合出来的 tasks (其实就是 prompt 形式的自然语言输入),但现在最大的问题是,给出需求,AI 有时会跳过使用某个 skill 工具。我试了不少办法,似乎没有 100% 稳定的。

Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 

文章代表作者个人观点,少数派仅对标题和排版略作修改。


大家好,我是飘雷。

在这个全民刷手机的时代,我们看似阅尽天下事,实则很容易被困在信息茧房里。

各种资讯 app 每天都在争先恐后地把它们认为用户可能喜欢的内容推送给我们,久而久之,我们获得的信息难免会落入同质化,真正有价值的信息其实不多。想要解决这个问题,就要尝试从被动投喂,变成主动获取。

最近 GitHub 上大火的 TrendRadar 项目,恰好击中了这个痛点。

项目地址:https://github.com/sansan0/TrendRadar

它能根据咱们自己设置的关键词和监控策略,聚合多平台热点和 RSS 订阅,还能将 AI 分析简报直推手机,也支持接入 MCP 架构,利用AI大模型进行自然语言的对话分析、情感洞察与趋势预测。

TrendRadar 特别适合投资者、自媒体人、企业公关、关注时事等用户使用,这也使得它在 GitHub 上获得了 4.3 万的超高星收藏。

趁着这几天有空,我用手头的威联通 NAS 把这个情报雷达搭建了起来,部署和配置的过程虽然有些繁琐,但成果也是喜人的。

我们可以通过网页访问 NAS IP 来查阅自己感兴趣的新闻:

也可以让它把热点新闻自动推送到邮箱等平台:

还可以在推送信息中看到 AI 分析的简报:

这种对信息掌控感真的拉满了情绪价值,个人觉得特别好用,所以本期我就同大家分享 TrendRadar 的手把手部署配置教程。

TrendRadar 部署流程

这里我们来展示如何在威联通 NAS 上通过 Docker Compose 进行部署,用到的设备是威联通最新的八盘位旗舰新品 Qu805。

下载项目文件

解压下载的压缩包,会得到一个名为 TrendRadar-master 的文件夹:

接下来咱们将上图中这些文件和文件夹全部上传到威联通 NAS 里,这里我放在了 /Container/TrendRadar 目录内,大家可以根据自己的实际情况灵活调整,只需要记住保存位置即可。

Docker Compose 部署

TrendRadar 自带的 Docker Compose 文件是根据本机访问的默认情况配置的,不太适合 NAS 场景,所以这里我们需要进行一些改动。

登录威联通 NAS 后台,打开 Container Station 容器工作站,点击左侧的应用程序,然后点击右侧黑色创建按钮。

在弹出的代码输入框中,我们输入以下 YAML 代码。注意里面的注释部分,像推送设置之类的选项可以在 YAML 代码中提前指定,也可以通过修改文件后期进行调整,这里大家需要根据自己的实际情况进行配置:

services:
  trendradar:
    image: wantcat/trendradar:latest
    container_name: trendradar
    restart: unless-stopped
    # 左边 8848 是你访问 NAS 的端口 (http://nas-ip:8848),根据需要修改
    # 右边 8080 是容器内部端口,不要改
    ports:
      - "8848:8080"


    # 映射目录,左侧为NAS文件夹路径,这里需要根据实际情况修改,比如我是在NAS的 /share/Container/TrendRadar
    volumes:
      - /share/Container/TrendRadar/config:/app/config
      - /share/Container/TrendRadar/output:/app/output


    environment:
      - TZ=Asia/Shanghai
      # 核心配置
      - ENABLE_CRAWLER=${ENABLE_CRAWLER:-}
      - ENABLE_NOTIFICATION=${ENABLE_NOTIFICATION:-}
      - REPORT_MODE=${REPORT_MODE:-}
      - DISPLAY_MODE=${DISPLAY_MODE:-}
      # Web 服务器,True为强制启用,启用后可以通过网页访问
      - ENABLE_WEBSERVER=true
      - WEBSERVER_PORT=${WEBSERVER_PORT:-8080}
      # 通知渠道
      # 飞书
      - FEISHU_WEBHOOK_URL=${FEISHU_WEBHOOK_URL:-}
      # 电报
      - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
      - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
      # 钉钉
      - DINGTALK_WEBHOOK_URL=${DINGTALK_WEBHOOK_URL:-}
      # 企业微信
      - WEWORK_WEBHOOK_URL=${WEWORK_WEBHOOK_URL:-}
      - WEWORK_MSG_TYPE=${WEWORK_MSG_TYPE:-}
      # 邮件配置
      - EMAIL_FROM=${EMAIL_FROM:-}
      - EMAIL_PASSWORD=${EMAIL_PASSWORD:-}
      - EMAIL_TO=${EMAIL_TO:-}
      - EMAIL_SMTP_SERVER=${EMAIL_SMTP_SERVER:-}
      - EMAIL_SMTP_PORT=${EMAIL_SMTP_PORT:-}
      # ntfy配置
      - NTFY_SERVER_URL=${NTFY_SERVER_URL:-https://ntfy.sh}
      - NTFY_TOPIC=${NTFY_TOPIC:-}
      - NTFY_TOKEN=${NTFY_TOKEN:-}
      # Bark配置
      - BARK_URL=${BARK_URL:-}
      # Slack配置
      - SLACK_WEBHOOK_URL=${SLACK_WEBHOOK_URL:-}
      # 通用Webhook配置
      - GENERIC_WEBHOOK_URL=${GENERIC_WEBHOOK_URL:-}
      - GENERIC_WEBHOOK_TEMPLATE=${GENERIC_WEBHOOK_TEMPLATE:-}
      # AI 分析配置,如果你需要开启 AI 分析,可以在这里填,或者去config.yaml填
      - AI_ANALYSIS_ENABLED=${AI_ANALYSIS_ENABLED:-false}
      - AI_API_KEY=${AI_API_KEY:-}
      - AI_PROVIDER=${AI_PROVIDER:-}
      - AI_MODEL=${AI_MODEL:-}
      - AI_BASE_URL=${AI_BASE_URL:-}
      # 远程存储配置(S3 兼容协议)
      - S3_ENDPOINT_URL=${S3_ENDPOINT_URL:-}
      - S3_BUCKET_NAME=${S3_BUCKET_NAME:-}
      - S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID:-}
      - S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY:-}
      - S3_REGION=${S3_REGION:-}
      # 运行模式
      - CRON_SCHEDULE=${CRON_SCHEDULE:-*/30 * * * *}
      - RUN_MODE=${RUN_MODE:-cron}
      - IMMEDIATE_RUN=${IMMEDIATE_RUN:-true}


# MCP 服务:提供接口给 Claude Desktop 等客户端,用不上的话下面这些代码可以删除
  trendradar-mcp:
    image: wantcat/trendradar-mcp:latest
    container_name: trendradar-mcp
    restart: unless-stopped


    ports:
      - "3333:3333"


    # 必须挂载与上面相同的路径,否则读取不到数据
    volumes:
      - /share/Container/TrendRadar/config:/app/config:ro
      - /share/Container/TrendRadar/output:/app/output


    environment:
      - TZ=Asia/Shanghai

代码粘贴无误后,记得点击下方的验证按钮,确保 YAML 格式正确。

最后点击创建按钮,系统就会自动拉取这个非常精简的镜像并启动服务,咱们可以在概览或容器列表中看到 trendradar trendradar-mcp 两个容器正在运行,状态显示为绿色小圆点。

常用配置选项解析

TrendRadar 的作者在项目页面提供了详细的个性化配置方法,感兴趣的朋友可以去详细阅读下,这里咱们就来看看一些常用的部分。

1配置监控平台

TrendRadar 的资讯数据来源于 newsnow,默认会抓取11个平台的热点新闻,需要抓取其他平台数据的的朋友可以去 newsnow 网站里查找一下。

查询地址:https://newsnow.busiyi.world/

需要对监控平台进行修改的话,可以打开 config 文件夹下的 config.yaml 文件,修改 platforms 部分:

威联通自带文本编辑器。你可以右键点击该文件,选择「打开方式 -> Text Editor」直接在线编辑,改完保存即可,无需下载到本地再上传。

platforms:
  - id: "toutiao"
    name: "今日头条"
  - id: "baidu"
    name: "百度热搜"
  - id: "wallstreetcn-hot"
    name: "华尔街见闻"
  # 添加更多平台...

去 newsnow 添加有点麻烦,图省事儿的话可以去下面的项目复制别人整理的 config.yaml 文件。

项目地址:https://github.com/sansan0/TrendRadar/issues/95

不过需要注意,监控的平台不是越多越好,建议选择 10 到 15 个核心平台,平台过多会导致信息过载,反而降低使用体验。

配置关键词

TrendRadar 的关键词设置是决定我们每天看到的是满屏含金量的干货,还是充斥着垃圾信息的关键一步。TrendRadar 的核心过滤逻辑存放在 config 文件夹下的 frequency_words.txt 文件中,需要手动细心配置。

这里打开威联通的 File Station,定位到我们部署时映射的路径,比如我使用的是 /share/Container/TrendRadar/config/,找到名为 frequency_words.txt 的文件。

TrendRadar 对关键字的配置不仅仅是写几个词那么简单,它支持七种语法,咱们简单举例来介绍下。

# --- 核心关注区 ---
NAS
威联通
群晖
Docker
TrendRadar
DeepSeek
ChatGPT
显卡 & 降价
# --- 必须屏蔽区 (净化眼球) ---
!出轨
!离婚
!绯闻
!男星
!女星
!只有我一个人
!震惊
!拼多多 & 砍一刀
# --- 行业观察 ---
人工智能
开源项目
# --- 这里的每一行代表一个规则,系统会逐行扫描 ---

  • 基础匹配(直接写词):威联通:只要标题或内容里有「威联通」,就会被抓取。
  • 强制屏蔽(使用 ! 表示「非」);在关键字前面加上感叹号后,包含此关键字的新闻会被直接丢弃。比如不想看娱乐圈的出轨八卦破事,使用「!出轨」,任何包含出轨的新闻就不会被显示出了。
  • 组合逻辑(使用 & 表示「与」):「NAS & 教程」的意思是,只有同时包含「NAS」和「教程」的文章才会被抓取,这能帮你过滤掉单纯的NAS降价广告,只看干货。
  • 多选逻辑(使用 | 表示「或」):「DeepSeek | ChatGPT | Claude」的意思是,只要包含这三个 AI 模型中的任意一个,都抓取。
  • 短语匹配(使用英文双引号""):以"Black Myth"为例,如果你直接写 Black Myth(没引号),系统可能会分别匹配 Black 和 Myth。加上引号后,会强制匹配由于空格隔开的专有名词(如《黑神话》)。
  • 权重提升(使用 ^):「^漏洞」的意思是,给「漏洞」这个词极高的权重,一旦出现,即使它在热榜排名不高,也会被强制推送到显眼位置。
  • 正则匹配式(使用 ~,适合硬核玩家):这部分就有点复杂了,不太适合普通玩家折腾,感兴趣的硬核玩家直接去项目原网页详细研究即可。

编辑完成后,点击威联通 Text Editor 右上角的「保存」,最后别忘了,修改关键词后,需要重启容器才能生效。

热点权重新调整

很多时候我们觉得热搜没啥意思,是因为平台的算法优先推荐短时间内爆发力强的内容,比如什么某明星忘本了道歉了之类的。但很多用户往往更关注那些有持久影响力的大事,比如国家重大政策和科技突破的消息等等。

advanced:
  weight:
    rank: 0.6           # 排名权重
    frequency: 0.3      # 频次权重
    hotness: 0.1        # 热度权重

在 TrendRadar 的 config/config.yaml 文件中,有一个 advanced -> weight 模块,这里就是控制热点筛选逻辑的地方,包含 rank、frequency、hotness 三个参数,这三个数字相加必须严格等于 1.0,否则程序会报错罢工。

在修改之前,咱们需要明白这三个数字代表什么,TrendRadar 默认使用的是较为平衡的配置:

  • rank(排名权重):代表爆发力,数值越高,越倾向于抓取各大榜单前几名的内容,哪怕它只火了十分钟。
  • frequency(频次权重):代表持久力,数值越高,越倾向于抓取那些在一天内反复上榜、被不同平台多次讨论的内容。这是过滤标题党的关键。
  • hotness(热度权重):代表绝对数值,由于不同平台的热度单位不同,有的几百万,有的几万,参考价值较低,通常保持低位即可。

一般来说,追求速度和时效性的用户提高排名权重,追求深度和稳定性的用户提高频次权重。

建议每次只调整 0.1 到 0.2 的数值,调完后保存文件,并在 Container Station 中重启容器生效。

修改后观察一两天的推送效果,如果觉得信息太滞后,就稍微调高 rank;如果觉得垃圾信息还是多,就继续调高 frequency。

接下来咱们来看看两个典型的配置案例。

抓取实时热点

如果你是自媒体博主或者营销人员,不想错过任何稍纵即逝的大瓜,想快速了解当前最火话题,可以使用这个配置,把所有瞬间冲上榜首的内容都推给你:

advanced:
  weight:
    rank: 0.8       # 拉高排名权重,只要进前三,立刻抓取
    frequency: 0.1  # 稍微关注一下持续性,不太在乎
    hotness: 0.1    # 保持默认

追踪重点话题

如果想要多看一些经过时间沉淀的重大新闻,可以使用这个配置:

advanced:
  weight:
    rank: 0.4           # 降低排名权重,不迷信热度榜首
    frequency: 0.5      # 拉高频次权重,更偏向持续热度
    hotness: 0.1

推送配置

TrendRadar v5.0 版本对推送内容进行了大规模重构,现在的推送内容不再是简单的链接堆砌,而是被划分为热榜新闻、RSS 订阅、全新热点(New 标记)、独立展示区、AI 分析五大核心板块。

而在推送方式方面,TrendRadar 支持微信、飞书、钉钉、Telegram、邮件、ntfy、bark、Slack 等渠道的智能推送,并且有当日汇总、当前榜单、增量监控三种推送模式。

推送相关的配置也是通过 config/config.yaml 文件来修改,同时也可以在 Docker Compose 代码中提前写好,在部署容器时就完整设置。这里我们以邮件推送为例进行展示。

开启 HTML 格式

很多用户反馈邮件收到的是一堆乱码或者纯文本,没有任何排版,原因就是没开启 HTML 支持。

得确保 config/config.yaml,找到 storage -> formats -> html,设置为 true

storage:
  formats:
    sqlite: true
    txt: false
    html: true   # 必须启用,否则邮件推送会失败

配置 SMTP 发送服务(以 163 邮箱为例)

虽然 TrendRadar 支持多种推送方式(如飞书、钉钉),但邮件依然是阅读长文和 AI 分析报告的最佳载体。

国内网络环境下,我自己是选择使用 163 邮箱作为发送方,稳定性非常高。当然 QQ 邮箱也可以,就是容易被系统判定为垃圾邮件。

首先登录你的 163 网页版邮箱,点击顶部「设置」 -> 「POP3/SMTP/IMAP」,开启「IMAP/SMTP 服务」或「POP3/SMTP 服务」,然后新增一个授权码。

系统会让你发送短信验证,验证成功后会弹出一个只显示一次的授权码,复制这个授权码,这是我们接下来要填的密码。

接下来咱们继续编辑 config.yaml,首先找到 notification 通知总开关的位置,将 enabled 设置为 true,开启通知。

然后找到 email 相关的配置区域:

具体设置方法如下所示:

      # 邮件发送方配置 (163邮箱)
      - EMAIL_FROM=你的账号@163.com
      # 注意:这里填的是刚刚获得的【授权码】,不是邮箱登录密码!
      - EMAIL_PASSWORD=填入你刚才获取的授权码
      - EMAIL_SMTP_SERVER=smtp.163.com
      - EMAIL_SMTP_PORT=465
      
      # 邮件接收方配置
      # 接收邮箱可以是同一个163邮箱,也可以是QQ邮箱或Gmail
      - EMAIL_TO=接收通知的邮箱@qq.com

如果这里不适用 163 邮箱来推送,可以根据作者提供的表格来修改 SMTP 服务器和端口地址:

配置完成后,保存文件并重启容器。

如果配置正确,TrendRadar 运行完毕后,你会收到一封标题类似《TrendRadar 每日热点报告》的邮件。

如果还想要设置推送频率和推送模式的话,同样可以查看作者给出的详细配置说明,限于篇幅这里不赘述了。

AI 分析配置

在 5.0 版本之前,TrendRadar 只能算一个勤恳的新闻搬运工;但从 5.0 开始,作者进行了重大升级,通过接入 AI 大模型 API 来对内容进行深度分析,自动生成热点洞察。

分析的内容包括:

  • 热点趋势概述
  • 关键词热度分析
  • 跨平台关联分析
  • 潜在影响评估
  • 值得关注的信号
  • 总结与建议

这里我们以 DeepSeek 为例,展示如何进行设置。

获取 API 的过程这里不再赘述,大家去自己的 API 提供商平台上复制即可,我们主要讲讲本地设置,同样要修改 config/config.yaml 这个配置文件,找到 ai_analysis 部分:

以 DeepSeek 官方 API 为例,如下设置:

ai_analysis:
  enabled: true                     # 是否启用 AI 分析,true为开启
  provider: "deepseek"              # AI 提供商
  api_key: ""                       # API Key
  model: "deepseek-reasoner"        # 模型名称,deepseek-reasoner为深度思考模式
  base_url: ""                      # 自定义 API 端点(可选)
  timeout: 120                      # 请求超时(秒)
  push_mode: "both"                 # 推送模式,both (推送到所有渠道)
  max_news_for_analysis: 50         # 最多分析多少条新闻
  include_rss: true                 # 是否包含 RSS 内容
  prompt_file: "ai_analysis_prompt.txt"  # 提示词配置文件

另外在 config 文件夹下,还有一个名为 ai_analysis_prompt.txt 的文件。这里存放的是发给 AI 的 Prompt 提示词。

作者已经将默认的提示词写好,包含趋势概述、关键词热度、跨平台关联、潜在影响等。但如果你有特殊需求,那可以根据自己需求进行针对性修改。

配置并重启容器后,AI 模块会在每次的抓取任务结束后运行,我们能在推送消息的底部看到像这样的分析报告:

总结

经过这一番折腾,当看到自己想看的新闻躺在邮箱里时,之前所有的复杂的配置都是值得的了。

以前,我们是算法的猎物,被锁在各大平台推送算法打造的信息茧房里,免不了被标题党牵着鼻子走。

而现在借助 TrendRadar 和 AI 的深度思考,我们终于可以翻身成为信息的主人,可以更清晰的知道这个世界发生了什么,哪些是转瞬即逝的信息泡沫,哪些是真正值得关注的行业暗流。

写到这里我又想到,像 TrendRadar 这类应用,或许才是许多公司和工作室采购 NAS 的原因之一。NAS 并非只能在家用环境中保存照片、挂挂 PT,更是能通过持久稳定工作,帮助用户圈出一块清醒的自留地,把实现各种功能的主动权重新握在自己手里。

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀

    面试造火箭,进去拧螺丝,很多时候面试题很复杂,脱离实际生产环境,如果是线上面试,有没有哪个 AI 可以分析面试官音视频,生成文字版推荐答案,不用面试者手动输入?仅限于那种范式的面试场景

    高铁客服和专家回应「高铁二氧化碳超标」

    据新京报等报道,近日,一条在高铁二等座车厢内测二氧化碳浓度的视频引发网友热议,视频画面显示:乘客入座前,车厢内二氧化碳浓度在 880ppm(百万分之一,浓度单位)左右浮动;乘客入座过程中,二氧化碳浓度已经开始上涨;行驶一段距离后,车厢内二氧化碳浓度已超过 2000ppm,此时画面中的多数乘客也已进入睡眠状态。该报道指出,据国内现行的《室内空气质量标准》规定,室内二氧化碳(CO₂)浓度的标准限值为 ≤ 1000ppm(即 ≤ 0.1%),视频中车厢内的二氧化碳浓度已经远远超过这一限值。

    对此,不同 12306 客服给出了各种说法。一名客服表示,如果在旅行途中感到不适可以「自行吸氧」。另一位客服则称「目前没有这个标准」。还有客服表示,行驶过程中会实时更换空气,出发以及到站后都会做系统检查,空气方面肯定是没有问题的,二氧化碳浓度变高可能是因为乘客密度变高。

    随后,新华社采访了来自动车组制造厂商、中车青岛四方机车车辆股份有限公司的动车组专家陶桂东。陶桂东介绍,我国旅客列车室内二氧化碳浓度控制标准执行 TB/T 3493-2017《铁道车辆空调 空调压力保护装置》,正常运行工况下标准限值为不超过 2500ppm,欧洲标准则规定不超过 5000ppm。网友对照的民用建筑标准不适用于旅客列车。

    陶桂东还说,动车组车内换气完全由空调通风系统实现,在非隧道区段运行时,可实现连续换气,二氧化碳浓度一般不超过 1500ppm;当通过连续隧道群时,会采取压力保护动作关闭与车外空气的通道,车厢内二氧化碳浓度短时间内会有所升高。


    因不堪 AI 骚扰,cURL 将终止漏洞赏金计划

    1 月 22 日,全球知名的开源网络传输工具 cURL 宣布,将于本月底正式终止其漏洞赏金计划。cURL 官网更新后的 security.txt(业内惯常用于说明提交安全报告渠道的文件)现在写道,「我们对于报告的问题不提供任何奖励或其他形式的补偿,但会在确认问题的文档中明确表达感谢与认可。如果你用垃圾报告浪费我们的时间,我们会将你封禁并公示嘲讽(ridicule you in public)。」

    对此,项目创始人兼首席开发者 Daniel Stenberg 表示,近期收到大量由人工智能生成的低质量漏洞报告,导致项目维护团队不堪重负。为了确保团队成员的「心理健康」以及项目的正常维系,官方不得不做出这一决定。

    长期以来,cURL 团队像许多软件开发商一样,通过现金奖励激励外部研究人员提交高严重性的安全漏洞。然而,自去年五月以来,Stenberg 便警告称 AI 生成的垃圾信息(slop)正在激增。大量投机者盲目使用大语言模型生成报告,其中充斥着幻觉,包括虚构的 CVE 编号、不存在的函数签名,甚至根本无法编译的代码片段。这些无效信息迫使维护者花费大量精力进行甄别和排查。

    尽管拥有庞大的用户基础,cURL 实际上仍是由少量核心维护者运作的小型开源项目。Stenberg 表示,团队无力改变人们滥用 AI 工具的现状,只能通过切断激励源头来应对这一冲击。值得注意的是,项目方并非完全排斥 AI 辅助的安全研究。Stenberg 曾在去年九月公开赞扬过一位研究人员利用 AI 代码分析工具(ZeroPath)发现并协助修复了 22 个真实漏洞。他强调,问题的核心不在于工具本身,而在于那些不仅不懂代码、还对 AI 输出结果缺乏基本核查便直接提交的投机行为。


    联通推出「果粉」卡套餐

    1 月 23 日,联通宣布推出「果粉·王卡」套餐。该产品是「天王卡 3.0」套餐的衍生版本,核心卖点在于将 AppleCare Services 权益整合进通信资费中。套餐首年优惠月费为 49 元,用户在激活号卡并首充 50 元后,可获得最长 24 个月的权益服务,其中包括无限次的前屏意外保修、电池免费更换(当容量低于 80% 时)以及 Apple 官方认证的技术支持。

    在基础通信资费方面,该套餐每月包含 30GB 专属流量、20GB 通用流量以及活动赠送的 30GB 通用流量。联通还重点宣传了支持 eSIM、手表与手机「一号双终端」,以及 9.9 元/天的国际漫游包等特性。

    根据权益细则,用户须在号卡激活后的 90 天内领取 AppleCare Services,绑定的 iPhone 必须为激活时间在 30 天以内的国行新机,并需校验 IMEI 码。系统每月会校验用户资格,若套餐月费实付低于 59 元或处于非正常在网状态,当月的 AppleCare 权益将自动失效。如果用户不选择领取 AppleCare Services,也可以选择腾讯视频、爱奇艺、QQ 音乐等互联网会员权益。

    值得指出,不同于苹果官方渠道销售的 AppleCare+,AppleCare Services 是苹果通过供应商提供的一种保护计划,具体涵盖的服务范围取决于供应商。例如,通过「果粉·王卡」提供的 AppleCare Services 就不包括碎屏和电池之外的其他损坏维修。苹果之前还通过授权专营店渠道,销售过只包含碎屏维修服务的 AppleCare Services。


    微软证实向 FBI 移交 BitLocker 加密密钥

    据《福布斯》报道,微软近日证实,已依据法律指令向美国联邦调查局(FBI)移交了 BitLocker 恢复密钥,协助解锁三台涉嫌欺诈案的笔记本电脑。这是已知首例微软直接向执法部门提供此类加密密钥的案件。BitLocker 是 Windows 系统内置的磁盘加密工具,旨在保护硬盘数据不被非法读取。

    对此,微软发言人表示,每年收到约 20 起此类密钥索取请求,并强调只要收到有效的法律搜查令且拥有密钥访问权限,微软就会予以配合。在该案件中,由于用户选择了将密钥备份至微软服务器,技术上使得微软具备了协助执法的能力。发言人同时指出,虽然云端恢复功能提供了便利,但也确实存在被外部获取的风险,若用户选择将密钥保存在本地硬件(如 USB 驱动器)而非云端,微软则无法提供协助。

    此次事件凸显了微软在隐私架构设计上与其他科技巨头的差异。苹果和 Meta 等公司采用了更为严格的「端到端」加密策略,即便是服务商本身也无法访问用户的解密密钥。例如,苹果曾在 2016 年拒绝协助 FBI 解锁圣贝纳迪诺枪击案嫌疑人的 iPhone,并在其 FileVault 和云端服务中采用了让执法部门无法索取密钥的技术架构。相比之下,微软目前的默认设置使得云端备份的密钥处于可被其读取的状态。


    Meta 裁员引发「VR 寒冬」担忧

    据 CNBC 报道,Meta 近日对旗下负责元宇宙业务的 Reality Labs 部门展开大规模裁员,约 10% 的员工受到影响,涉及人数达 1000 人。此次裁员主要集中在 Quest VR 头显及虚拟社交平台 Horizon Worlds 等 VR 团队,同时也关闭了部分内部工作室。外界普遍认为,此举标志着 Meta 的战略重心正从虚拟现实(VR)向 AI 及雷朋(Ray-Ban)联名智能眼镜等可穿戴设备转移,引发了行业对于「VR 寒冬」将至的担忧。

    市场数据印证了这一转型趋势。根据 IDC 的最新报告,虽然扩展现实(XR)设备整体出货量预计在 2025 年增长 41.6%,但增长动力主要来自 AI 智能眼镜,而非传统的 VR 头显。IDC 预测,2025 年 VR 及混合现实头显的出货量将暴跌 42.8%,降至 390 万台;相反,AI 眼镜类产品出货量预计将激增两倍以上。分析师指出,市场反馈表明 VR 头显仍局限于小众游戏玩家群体,普通消费者对长期佩戴笨重的头显设备缺乏兴趣。

    针对外界质疑,Meta 首席技术官回应称,并非放弃 VR,而是修正投资规模。他承认 VR 市场的增长速度低于预期,因此必须调整投入比例。Oculus 联合创始人帕尔默·拉奇(Palmer Luckey)也表示,尽管裁员令人遗憾,但这有利于行业的长期健康发展。自 2020 年底以来,Meta 的现实实验室部门累计亏损已超过 700 亿美元。

    此次战略调整对依赖 Meta 生态的第三方开发者造成了冲击。谷歌旗下的 VR 工作室 Owlchemy Labs 负责人将当前的 VR 市场比作 1983 年美国游戏业大萧条前的雅达利时代,认为 VR 正在经历必要的市场修正。据 IDC 透露,苹果的中国制造合作伙伴立讯精密已停止生产 Vision Pro 头显,显示出高端 VR 设备同样面临需求不足的困境。


    初代宝可梦成为流行 AI 测试方法

    据《华尔街日报》报道,硅谷 AI 实验室正在普遍采用一种非传统的 AI 基准测试方法:利用任天堂 90 年代的经典游戏《宝可梦》(Pokémon)来评估模型的推理与决策能力。包括 Anthropic、OpenAI 和 Google 在内的厂商,都通过让其 AI 模型游玩《宝可梦红/蓝》,来直观展示模型在长期规划和复杂任务处理上的进展。

    这一趋势由 Anthropic 的应用 AI 负责人 David Hershey 发起,他于去年二月推出了「Claude 玩宝可梦」的 Twitch 直播,随后引发了 OpenAI 和 Google 的效仿。目前,开发者构建的「GPT 玩宝可梦」和「Gemini 玩宝可梦」在特定辅助框架的帮助下已成功通关初代游戏,正着手挑战续作;而 Anthropic 最新的 Claude Opus 4.5 模型目前正在直播挑战通关的过程中。

    研究人员指出,与传统的一问一答式基准测试不同,《宝可梦》要求玩家在长时间内连续推理和决策。模型需要穿越迷宫、组建队伍并根据对手属性制定战斗策略。这种非线性的复杂环境比传统的棋类游戏限制更少,能更精准地模拟 AI 在现实世界中处理长流程、多步骤任务时面临的挑战,因此被视为测试 AI 智能体能力的理想试验场。

    除了评估模型本身,这一项目也成为开发 AI 辅助软件(业内称为 harness)的实战演练。为了让 AI 顺利游戏,开发者需要构建记忆系统等外部工具来辅助模型记录关键信息。David Hershey 表示,他已将在构建 Claude 游戏记忆模块过程中积累的经验,直接应用于指导企业客户部署复杂的商业 AI 系统。


    看看就行的小道消息

    • 近日,京东与天猫宣布,于 1 月 25 日 20:00 开启针对 iPhone Air 的特惠活动。在叠加 2000 元平台券以及部分地区适用的 500 元国家补贴后,256GB 型号在两个渠道的售价都降至 5499 元;京东还针对以旧换新提供 400 元补贴。该优惠受限于活动库存。此前,据供应链消息及媒体报道,iPhone Air 市场表现不及预期。例如,博主 @数码闲聊站 近日声称,iPhone Air 目前累计激活量不足 20 万台。作为对比,同期 iPhone 17 系列各机型激活量均已突破 400 万,其中 iPhone 17 Pro Max 更是超过 826 万台。此外,苹果官方也于 1 月 24 日上线了新春限时优惠活动,主要覆盖了上一代 iPhone 16 系列、iPad 及 Mac 产品线盖。其中,搭载 M4/M5 芯片的 MacBook Pro 系列最高立减 1000 元,iPhone 16 系列最高优惠 300 元。
    • 据彭博社援引知情人士消息,德国相机制造商徕卡(Leica Camera AG)的所有者正考虑出售公司控股权,这笔潜在交易对该公司的估值可能达到约 10 亿欧元。目前的竞购者名单中,包括原红杉中国更名后的弘沙集团(HSG)以及私募股权投资公司 Altor Equity Partners。徕卡目前的主要股东为奥地利亿万富翁 Andreas Kaufmann 家族及黑石集团(Blackstone Inc.)。知情人士透露,Kaufmann 家族可能会在交易达成后选择重新投资,从而继续保留对公司的部分持股。目前相关讨论尚处于早期阶段,不保证最终会达成交易。对于这一消息,黑石、HSG 及徕卡方面均拒绝发表评论。尽管徕卡曾在 2005 年面临严重的财务危机,但在 Kaufmann 家族于 2012 年将其私有化后,近年业绩表现稳健。在截至 2025 年 3 月的财年中,徕卡营收增长 7.6% 至约 5.96 亿欧元,主要得益于其核心摄影器材及移动影像业务的增长。
    • Mark Gurman 声称,新版 Siri 首批功能预计随 3 月或 4 月发布的 iOS 26.4 正式上线。尽管内部代号为 Apple Foundation Models v10,但其核心算力实则由 Gemini 提供,初期运行于苹果的私有云服务器上。随后在夏季的 WWDC 开发者大会上,苹果将发布代号为 Campos 的全新 Siri 架构,随 iOS 27 亮相。该版本将具备类似 ChatGPT 的深度多轮对话与语境理解能力,并计划直接调用谷歌云端 TPU 基础设施以提升响应速度。
    • Gurman 还声称,苹果计划在上半年密集更新 MacBook Pro、MacBook Air 及 Mac Studio 产品线,并有望推出多年未更新的 Studio Display 显示器。一款搭载 A 系列芯片的低成本 MacBook 正在开发中,意在抢占教育及入门市场。此外,下一代 M6 芯片的研发进度快于预期,可能不久问世。
    • Android Authority 指出,在最新版本的 Google Play 代码中,已经出现了「未验证直接安装」「无法验证应用开发者」以及「需联网验证」等文本字符串。这意味着用户在尝试安装 APK 文件时,虽然仍可安装,但必须经历繁琐确认流程,且系统会强制弹窗提示风险。Google Play 开发者体验及产品管理总监 Matthew Forsyth 证实,将在 Android 系统中引入一个「高阻力」的侧载应用安装流程,目的是「责任分层」。此前,谷歌在去年夏季发布了一项争议性政策,最初计划自 2026 年起,要求所有 Android 开发者(无论是否通过 Play 商店分发)都必须向谷歌注册并验证身份。引发强烈反对后,谷歌妥协,承诺为「高级用户」保留手动安装选项。从此次确认的情况看,该功能已进入准备阶段,普通用户获取第三方应用的门槛将实质性提高。前述验证计划预计将于今年 9 月率先在巴西、印尼、新加坡和泰国等地启动试行,随后逐步推向全球市场。
    • Sherwood 报道,截至 2026 年 1 月初,全球注册的 .ai 域名数量已正式突破 100 万大关,为位于加勒比海的英国海外领地安圭拉带来了巨大的财政红利。据估算,该地区在过去一年仅凭域名相关业务就创收约 7000 万美元。安圭拉是一个人口仅约 1.5 万的岛屿。上世纪 90 年代中期,互联网名称与数字地址分配机构(ICANN)将 .ai 作为国家及地区代码顶级域名(ccTLD)分配给该地。目前,注册一个 .ai 域名的标准费用通常为两年 140 美元,且续费率高达 90%,为当地政府提供了稳定的现金流。此外,通过域名注册商 Namecheap 举行的过期域名拍卖更是获利颇丰。数据显示,域名 you.ai 在去年 9 月以 70 万美元成交;仅在过去一周内,就有 31 个过期域名拍出了总计约 120 万美元的高价。
    • 1 月 24 日,腾讯 QQ 通过官方微博宣布将带回 QQ 秀功能。新版 QQ 秀可以通过上传图片由 AI 生成,在个人主页、聊天界面等位置可以代替头像展示,可以在群聊中与其他人的形象共同生成动画。官方还预告将上线更多经典功能。QQ 秀最早出现在 QQ2000C 中,是一个虚拟形象设计系统。QQ 秀商城的虚拟服饰、场景和人物形象可以用来装扮用户在 PC 端 QQ 中显示的虚拟形象。腾讯曾围绕 QQ 秀推出月费 10 元的「红钻」服务,付费用户可免费使用全场 QQ 秀。2020 年,红钻服务停止续费充值。2021 年 11 月,PC 端 QQ 移除了大部分 QQ 秀展示位。「QQ 秀下线」当时成为微博热搜。
       


    少数派的近期动态

    • 我们正在优化并改进新的首页版式,如果你在使用过程中发现了任何问题或者有改进建议,请通过反馈表单告知我们。首页反馈收集
    • 将设计装进耳朵:少数派×飞傲联名 CD 机盖板设计大赛已经开始啦。了解详情
    • 比第三方 Apps 更好使:盘点 Apple 生态经典好用的原生应用。看看都有啥


    你可能错过的好文章


      作为一个十多年的程序员,笔记似乎始终没有离开我的身边,先回顾一下我的整个笔记使用的历史,下面都是我深度使用,大部分都是付费使用过的笔记 app ,当然几乎全是 macOS 上的。它也深刻地体现了时代发展留下的烙印(好中登的语句....

      1. 印象笔记
      2. 印象笔记 + Markdown (马克飞象)
      3. Mou (纯本地 Markdown App)
      4. MWeb Typora 等等雨后春笋般的 Markdown 工具
      5. Notion
      6. Apple Notes
      7. Craft
        ...

      直到现在,就直接用手机系统自带的笔记,基本不怎么用额外的笔记软件。

      为什么不用了?因为发现记的笔记大部分根本没什么用。以前记笔记是把很多的经验性的内容记录下来,方便以后查询,节省后面的时间,有很长的长尾效应和长尾收益。

      但在 AI 时代,大模型压缩了所有互联网上的知识,我们所有的笔记也基本上都在里面。(当然,这里边包含的不包括我们自己创造的东西。比如写的文章、小说、短文和诗歌。)

      去查笔记,远不如直接问 AI 更便捷,更全面,甚至更与时俱进。

      更有时效性的我会直接语音让 vivo 的小 v 记忆帮我记录下来,然后后面使用的时候,我直接语音问询小 v 即可。比如我想记录一下我家的门锁换一次电池可以用多长时间,在我第一次给它安装电池的时候,就语音告诉小 v 今天我给门锁安装了电池。当下次门锁提醒我没电需要换电池的时候,我就直接语音问小 v ,距离上次给门锁换电池过去了多久即可。

      顺应时代潮流,享受它们的乐趣。

      你觉得呢?

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

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

      封面图

      巫山县城建在山坡上,为了方便居民和促进观光,在中轴线上建设了神女大扶梯,总长905米,高240余米,相当于80层楼,全程需要20分钟。(via

      独立软件的黄昏

      软件可以分成两种:一种是公司开发的,另一种是个人开发的。后者就称为"独立软件"(indie software)。

      它的历史非常悠久,从古至今,很多程序员依靠出售独立软件谋生。

      有一种东西"共享软件"(Shareware),年轻的朋友未必知道,二三十年前曾经非常流行。用户免费使用软件的试用版,如果满意,就向开发者购买一个注册码。

      这就是一种独立软件,当年很多著名软件都是这个模式,比如国外的 WinZip 和 WinRAR,国内的网络蚂蚁(NetAnts)、网际快车(FlashGet)、豪杰解霸。

      时至今日,大家看看目前流行的软件,还有多少属于独立软件?你每天使用的软件,又有多少是个人开发的?

      很少很少了。

      一位二十年的独立软件开发者哀叹现在的市场上,公司开发的比重越来越大,个人开发的比重越来越小,独立软件正在没落。

      "我销售自己的软件20年了,2005年以后,互联网开始普及,独立软件迎来了黄金年代。而最近两三年,环境一直在快速变化,销售明显变难了,我感觉自己越来越难维持生计了。"

      独立软件的大发展,是从2005年开始的。

      1. 互联网的普及,网民数量急剧增长。
      2. 智能手机创造了手机软件,一个全新的软件大市场。
      3. 在线支付的普及和简化。
      4. 互联网使软件分发变得容易且免费。
      5. 免费的高质量开发工具(编译器、IDE、版本控制系统、Web 服务器)不断涌现。

      这些因素让程序员切切实实获利了,要是你再做一些 SEO、买一些付费广告,完全可能赚到大钱。很多人就是这样发展起来的,从独立软件变成了大公司。

      但是,最近两三年情况变了,上面这些因素都到头了。

      独立软件正在慢慢退潮,你能够想起名字的独立软件越来越少,更不要说掏钱购买了,即使有也是多年前的作品。根据我的观察,依靠出售自己软件维生的程序员似乎也在减少。

      主要原因有下面几个。

      (1)AI 改变了互联网流量,独立软件失去了推广渠道。网站的访问量显著减少,人们更多跟大模型交互,而不是浏览网页。通过搜索引擎和在线广告获取流量的策略,越来越没有效果。

      视频是为数不多仍然有效的推广渠道之一,但制作视频非常耗时,而且竞争异常激烈。另外,AI 生成的劣质视频迟早会大量出现,推广效果也会变差。

      (2)AI 使得软件开发变得容易。它加快了开发速度,降低了进入门槛,让更多人加入竞争。以前,用户可能购买某个功能,现在直接让 AI 生成即可。

      (3)新软件汗牛充栋,越来越难脱颖而出。iPhone 应用商店有大约200万个应用,用户很难发现你。另一方面,应用商店更喜欢推广那些能帮它赚更多钱的大公司软件,而不是独立软件。

      (4)人们越来越习惯使用基于网络的软件,独立软件属于需要下载安装的原生应用,它的市场在萎缩。

      基于网络的软件与其说是产品,不如说是一种服务,全天候24小时可用的服务。越来越多的个人开发者顺应这种趋势,改为以提供 SaaS 服务为主。

      (5)平台的风险。现在的很多独立软件,都依靠云服务商的平台或底层服务,而平台随时会改变规则(比如关闭 API),或者推出竞品,一大批应用随之死掉,这种事情屡见不鲜。

      (6)用户期望软件是免费的,或者非常便宜。售价略微高一点,就会无人问津。因此,独立软件要想获得可观的回报,就需要巨大的销售规模,这根本做不到。别的不说,个人开发者完全无力提供满意的客服。

      (7)以上这些因素将长期存在,只会加深,不会逆转。独立软件的时代可能真的要结束了,个人开发者以后大概很难靠销售自己的软件为生,而要改为销售自己维护的 SaaS 服务,尽管这也很难。

      科技动态

      1、VS Code 的定位

      微软公司的 VS Code 是非常流行的代码编辑器,市场份额很高。

      现在的官网上,它的产品定位是"开源 AI 代码编辑器"。

      但是,2025年上半年,它的产品定位还是"你的代码编辑器,由 AI 重定义"。

      更早的2024年,产品定位是"重新定义的代码编辑"。

      令人感慨啊,这么成功的软件,AI 本来只是附属功能,现在也要蹭热点,把自己包装成 AI 主导的产品。

      2、智能脖巾

      英国科研人员发明了一种智能脖巾。它围在脖子上,可以感受到穿戴者的心跳和喉部肌肉运动。

      它的用户主要是中风后丧失说话能力的人。这些人可以张嘴,做出说话的口型,但是无法正常发音。

      他们佩戴这个脖巾后,颈部的运动数据就通过它传给电脑,经过模型训练,可以用电脑语音还原出用户想说的话。

      3、雪宝机器人

      人形机器人何必一定做成人形。

      迪斯尼最近发布了一个机器人,样子就是电影《冰雪奇缘》的雪宝。

      它用来在迪斯尼乐园,跟游客互动。

      它启示我们,人形机器人做成卡通形状也很好。

      另外,LG 公司在美国 CES 展会上,展示了他们最新的家务机器人

      这个机器人的功能就是做家务,比如叠衣服和洗碗。我觉得,国内厂商可以借鉴,展示机器人功能时,不要展示跳舞打拳,而要展示如何做家务。

      文章

      1、别用 MySQL,改用 MariaDB(英文)

      曾经的明星数据库 MySQL,最近几个月的代码提交数为0(上图)。作者认为,种种迹象表明甲骨文已经放弃了这个项目。

      2、10秒获得 AI 代码评审结果(英文)

      本文介绍一个技巧,让 AI 快速给出提交代码的评审结果,方法是不要提交整个代码库,只提交 diff 的部分。

      3、使用 Pandoc 生成静态网站(英文)

      文档格式转换工具 Pandoc 可以用来生成静态网站,作者介绍自己是怎么做的。

      4、锚点元素<a>的一些鲜为人知的地方(英文)

      锚点元素<a>用来生成链接,本文介绍如果链接到一些特殊字符的情况。

      5、学习自定义元素(英文)

      一篇 HTML 自定义元素的教程文章,写得简单清晰。

      6、Go、Rust 和 Zig 的一些想法(英文)

      作者是一个高级程序员,谈谈他对 Go、Rust、Zig 三种语言的感受。有趣的地方是,这三种语言都没有类,也不支持面向对象编程。

      7、我的个人基础设施(英文)

      作者介绍他自己的家庭实验室。比较有趣的是,他的个人网站是本地构建后,自动用 Syncthing 同步到服务器,这对小型静态网站确实简单。

      工具

      1、GoRead

      开源的电子书阅读器应用,支持桌面与移动端(Android/iOS)。(@zhashut 投稿)

      2、EasyPostman

      用于 API 调试的跨平台桌面应用,对标 Postman + JMeter。(@lakernote 投稿)

      3、Port Sentinel(端口哨兵)

      Windows 桌面应用,查看端口占用情况。(@Sanjeever 投稿)

      4、Building Sunlight Simulator

      基于 Web 的楼盘采光 3D 日照模拟工具,帮助购房者评估小区采光。(@SeanWong17 投稿)

      5、Office App

      一个纯本地的 Office 网页应用,可以离线在网页创建/编辑 Word、Excel、PowerPoint 文件。(@baotlake 投稿)

      6、ScreenshotSnap

      免费的网站截屏在线工具,提供 API,可以直接将截图代码插入网页。(@phpiscute 投稿)

      7、tsshd

      SSH 服务器登录协议的全新实现,特点是连接不掉线,可以重连前一个对话。(@lonnywong 投稿)

      8、AirScan-QR

      一个开源网页应用,通过动态二维码发送/接收文件。(@topcss 投稿)

      9、LuCI Bandix

      开源路由器操作系统 OpenWRT 的一个插件,可以监控局域网各设备的实时流量和目的地。(@timsaya 投稿)

      10、pure-genealogy

      开源的网页族谱工具,用来生成家族族谱,基于 Next.js + Supabase。(@yunfengsa 投稿)

      11、mdto.page

      这个网站免费将 Markdown 文件转成 HTML 格式,发布成公开访问的网页。

      AI 相关

      1、ChatGPT 翻译

      OpenAI 悄悄发布的翻译功能,只有在官网可用。

      2、Mango Desk

      一个跨平台的桌面应用,使用自然语言进行本地文件搜索。(@moyangzhan 投稿)

      3、OpenWork

      Claude 公司新产品 CoWork 的开源替代品,让普通用户不编程,就能完成文件操作,定位就是"Claude Code 的非编程版"。

      另有一个类似项目 Open Claude Cowork。(@aiagentbuilder 投稿)

      4、Wolfcha(猹杀)

      开源的网页游戏 AI 狼人杀,除了玩家自己,其他所有角色(女巫、猎人、守卫、狼人等)都由 AI 扮演。(@oil-oil 投稿)

      资源

      1、维基百科25周年

      维基百科是2001年1月13日上线的,今年是25周年纪念。这个网站是官方的纪念网站,以互动形式展示了发展历程。

      另外,还有一篇文章,介绍互联网档案馆的历史(下图)。

      2、HTTP:COLON

      这个网页可以查看指定网站返回的 HTTP 标头,详细解释每个字段的含义。

      3、现代 Java(Modern Java)

      面向初学者的 Java 语言教程。

      图片

      1、中国新能源建设的惊人规模

      90后摄影师储卫民拍摄的中国新能源建设。

      他说:"从地面上很难体会这些发电厂的规模,但当你升到空中时,就能看到它们与山脉、沙漠和海洋之间的关系。"

      青海冷湖镇

      浙江象山县

      青海塔拉滩

      内蒙古阿拉善

      "我一开始只是拍摄风景,但2022年我去贵州、云南、青海等地旅行时,不断看到风力发电场和太阳能发电厂出现在我的镜头里。我意识到这就是我们这个时代的故事----但几乎没有人系统地记录它。"

      文摘

      1、谷歌14年工作的教训

      大约14年前,我加入谷歌,以为这份工作就是编写优秀的代码。

      这个想法部分正确。但随着时间的推移,我越来越意识到,真正成功的工程师不一定是最优秀的程序员,而是懂得驾驭代码之外一切的人。

      下面就是我得到的经验教训。有些教训是我走了几个月的弯路得到的,还有一些需要数年才完全领悟。它们都与具体的技术无关----技术变化太快,根本无关紧要。

      (1)工程师想在大公司生存,必须学会沟通。

      因为在大公司,团队是组织的基本单位,推进项目必须跟其他团队沟通。项目越大,你花在跟其他人、其他团队沟通的时间就越多,比编写代码的时间还多。大多数"慢"的团队实际上是不沟通的团队。

      为了顺利沟通,清晰是第一位的要求。它不仅可以加快沟通,还能降低代码风险。最优秀的工程师都会用清晰易懂的代码来代替炫技。

      为了提高表达的清晰性,你可以尝试写作和去教别人。如果你能用简单的语言解释某件事,你就是真的理解它了。

      (2)想要得到晋升,必须有人为你说话。

      职业生涯初期,我曾认为优秀的工作成果代表了一切,但我错了。代码默默地躺在代码库里,不会为你说话。

      那些对你至关重要的会议,你本人很可能没有机会参加。你需要你的经理、同事在会上提到你、推荐你。他们可能这样做,也可能不会。

      平时工作中,你尽量不要为自己增加阻力。如果开会的时候,你赢得每一场辩论,很可能就是在积累无声的阻力。你之所以"赢",不是因为你说服了别人,而是因为他们不再与你争论,放弃了,将会在其他场合表达这种不满。

      (3)专注于你能控制的事情,忽略你无法控制的事情。

      很多事情,你改变不了,不要为这种事情烦恼。这不是被动接受,而是策略性分配精力。如果你把精力浪费在无法改变的事情上,就等于放弃改变那些原本可以改变的事情。

      (4)简化工作往往可以提高绩效。

      当系统运行缓慢时,人们的第一反应是增加缓存层、并行处理和更智能的算法。有时这样做没错,但我发现,删除不必要的工作几乎总是更有效果。下次进行优化之前,你要先问问自己这项工作是否应该存在。

      (5)时间比金钱更有价值,你要抓紧时间。

      职业生涯初期,你用时间换取金钱,各种事情都做----这无可厚非。但到了某个阶段,情况就完全不同了,你会开始意识到,时间才是不可再生资源。你要专注于那些对你最重要的事情,放弃其他事情。

      言论

      1、

      -- 一位程序员评论 OpenAI 宣布在 AI 对话中加入广告

      2、

      Netflix 的电影不追求视觉效果,因为大多数观众是在手机、平板和笔记本电脑上看,内容不需要为大银幕制作、而是为小屏幕制作的。

      -- 马特·达蒙,美国著名演员

      3、

      我从未见过哪个群体比程序员更热衷于分享知识。其他行业都是严守知识、保守秘密,程序员则是免费提供源代码、书籍、博客文章、演示文稿、视频教程等等。

      编程领域没有什么神圣不可侵犯的东西。如果你想学习,你可以找到免费书籍、完整的源代码、论坛、聊天室、邮件列表、线下聚会、博客文章、视频讲座、教程以及你可能需要的一切资源。尽管举手,总会有人乐于助人,倾囊相授。

      -- 《我是如何学习所有编程知识的》

      4、

      今年的 iOS 26 中,一些 UI 元素利用 HDR 屏幕,采用高光,比纯白色更亮。如果你曾经在 iPhone(或其他任何支持 HDR 的屏幕)上看过 HDR 照片,然后再看看以 SDR 模式显示的 UI,你就会知道它看起来有多么灰暗黯淡。

      -- 《亮模式的膨胀》,作者发现 iOS 每年都变得更亮,容易产生视觉疲劳,让他不得不使用暗模式

      5、

      如果你想批评大型组织的运作方式,首先要了解它们为何如此运作。否则,批评会显得尖锐,但却毫无意义。

      -- 《关于大型软件公司的常见误解》

      往年回顾

      年底的未来已来(#335)

      为什么 PPT 不如备忘录(#285)

      青年失业率与选择创业(#235)

      美国宪法拍卖,一个区块链案例(#185)

      (完)

      标题:从“人巡”到“智巡”,人力减 60%:TDengine 助力桂冠电力实现 AI 智能巡检

      logo:

      小T导读:为推进 “数智运营” 转型,广西桂冠电力携手涛思数据,采用 TDengine 时序数据库构建智能巡点检系统,融合 AI 与智能终端打造“终端—边缘—云端”协同架构,破解水电巡检效率低、安全风险高等难题。TDengine 在其数据湖中承担 OT 数据核心存储角色,通过“一个设备一张表”“超级表”等设计简化架构,凭借内置时序计算与订阅机制显著提升效率。系统投运后,单机机组增效 2–5%,年增发电量约 3 亿 kW·h,监盘工作量减少超 60%,助力桂冠电力迈向 AI 驱动的数智运营新阶段。

      业务背景:电力巡检 + AI

      在水电行业从“传统运维”迈向“数智运营”的关键阶段,桂冠电力率先打破依赖人工的巡点检模式,携手涛思数据(TDengine)创新研发水电站智能巡点检系统。该系统融合无人机、机器人等智能终端与 AI 技术,构建“终端—边缘—云端”协同架构,实现巡点检作业覆盖率显著提升、故障响应更迅速、人力成本大幅降低,有效破解了水电行业巡检效率低、安全风险高的长期难题。

      在 AI 的赋能下,我们实现了智能巡盘、智能告警、智能预警、智能处置等多项 AI 功能,把巡检工作从“人工主导”升级为“机器主导”的自动化监控模式。借助高级逻辑判断与辅助处置机制,系统能将设备事故处置由被动应对转化为主动预警,提前识别潜在风险并同步提供操作指导与优化方案,既显著提升机组运行的安全性与经济性,又大幅减轻运行人员的监屏劳动强度和心理压力。

      同时系统的实施使得发电效率也得到显著提升:单台机组的增效约为 2-5%。主要水电机组应用后,每年可增加发电量约 3 亿 kW.h。系统的智能监盘功能实现了适用于少人、无人监盘的模式,减少了监盘 60% 以上的工作量,大幅减轻了运行人员的工作强度,进一步提高了监盘的准确性和响应速度。

      AI 巡检

      AI 融合专家库进行智能处置

      本文将与大家分享 TDengine TSDB 在我们数据湖建设中发挥的关键作用。

      业务上的具体应用实践

      简化数据湖的存储架构

      在数据湖当中,TDengine TSDB 作为数据湖的贴源层,支撑了全部 OT 数据的存储。如下表所示,OT 数据与 IT 数据之间有着明显的区别:

      ITOT
      目标支持业务管理与数据流动实现物理工业过程控制与自动化
      核心对象数据和信息物理设备和工业流程
      实时性要求容忍一定延迟(秒级或分钟级)严格实时性(毫秒级)
      安全优先级数据保密性、完整性系统可靠性、物理安全
      典型技术数据存储、软件应用、网络通信工业设备监控、实时操作优化
      典型系统ERP、CRM、数据库SCADA、DCS、PLC、APC、传感器
      典型协议TCP/IP, HTTP, SQLOPC, Modbus, IEC104
      系统更新周期更新快(1-3年)更新慢(5-30年)

      为在 OT 与 IT 数据上实现最佳性能,我们分别采用某关系型数据库与涛思数据 TDengine TSDB 作为 IT 层与 OT 层的存储组件,构建分层存储体系。架构图如下图所示:

      图片

      在当前架构当中,TDengine TSDB 所具有的特性,使得海量 OT 数据的存储更加便捷:

      • “一个设备一张表”的设计,非常直观地映射到 IoT 中各类设备的采集值模型;
      • 超级表的设计,使得一次查询多个测点变得非常简单;
      • 分布式的架构设计,可以支持横向扩展和纵向扩展,在同一层无需多集群;

        • 虚拟分区策略,可以充分利用每一个节点的资源;
        • 动态调整数据分布,可以避免单点资源瓶颈带来的业务阻塞;
      • 特色的时序计算函数,使得大部分业务计算可以直接获取,同一区域内无需分层存储。

      业务建模的约束设计

      基于“一个设备对应一个子表”的建模原则,我们对设备及其点号的数据进行建模与存储。在建模过程中,需要重点解决以下几个问题:

      • 设备维度的设计:确定用于描述设备的关键维度;
      • 唯一性的设计:明确用于唯一标识设备的字段,即设备表的 Primary Key;
      • 多维选择唯一性的设计:确定可用于唯一检索设备的多个字段组合,即设备表的 Candidate Key。

      TDengine 的超级表具备标签列特性,可用于实现设备表的存储。各标签列相互独立,类似于关系型数据库中的字段。由于超级表不具备 Primary Key 和 Unique Index 机制,因此在实际应用中需要通过约定来实现约束:

      • db\_name:作为业务分割单元,不同 db\_name 的服务于不同业务,保证同一业务内的 tbname 不重复,避免写入错误数据;
      • tbname:作为单个系统的唯一性约束,用于单个业务范围内的真正唯一 id;
      • tag::point\_code:作为测点名字记录,用于单个业务领域内的唯一性标记;
      • tag::mtype/station\_name 等标签列:作为设备的属性进行描述,联合起来作为候选主键。

      以单列模型的测点 pointdata 为例,表结构如下所示:

      CREATE STABLE `all_station_st` (
      `data_time` TIMESTAMP, 
      `point_value` DOUBLE
      ) TAGS (
      `point_code` VARCHAR(20), 
      `addr` INT, 
      `mtype` VARCHAR(20), 
      `station_name` NCHAR(30), 
      `description` NCHAR(64), 
      `kks` VARCHAR(100), 
      `measure_code` VARCHAR(60), 
      `original_one` VARCHAR(40), 
      `original_two` VARCHAR(64), 
      `idx` NCHAR(32), 
      `status` TINYINT
      )  

      由于标签列之间缺少约束功能(如索引、主键),因此需要从业务上做验证和校验,才能保证最终唯一。期望 TDengine TSDB 后续能在这一个维度进行进一步开发,降低业务开发的复杂度。

      内置时序计算优化业务效能

      在我们的业务系统中,TDengine 以其卓越的性能与强大的时序计算能力,大幅简化了业务开发工作。

      对于业务逻辑和部分智能算法而言,常常需要对时间戳进行对齐,并在指定频率下获取测量值,这就要求我们基于原始数据进行计算。传统做法有两种:

      • 提前计算:通过定时计算或者流式计算,提前把降采样的结果计算完存放起来;
      • 实时计算:通过查询原始数据,实时计算后返回给应用。

      提前计算的优势在于能让应用以最快速度获取结果,但缺点是需要维护一整套定时调度机制,涉及任务调度、异常处理和补数等运维工作,复杂度较高。

      实时计算能够保证每次计算结果都是最新的计算逻辑,缺点是计算耗时有可能太大,计算内存消耗过大。

      而 TDengine 的特色时序计算,就很好地避免了这些问题。即使是在微服务 + 低代码的时代,TDengine 带来的业务简化依然具有重要价值。以获取测点的日平均值进行绘制为例:

      提前计算的实现通常需要部署独立的 Java 程序并持续监控其运行状态。编写计算逻辑本身并不复杂,真正的工作量在于多出一套需要维护的应用,同时还要应对算法更新、数据更新带来的重算问题,使整个过程显得十分笨重。

      实时计算是指在业务产生数据需求时,直接查询数据库中的原始数据并即时计算结果。在我们的场景中,这类操作往往会演变为 CPU + MEM + Network 的高负载任务——在 queryRawData 过程中,需要占用大量内存来缓存 TSDB 返回的原始数据,消耗 CPU 进行数据解析,同时占用大量网络带宽完成数据传输。

      而使用 TDengine 内置的 interval 库函数进行计算,则很轻便的完成了这个计算。interval 库函数是一个时间窗口函数,可分为:滑动时间窗口、翻转时间窗口。在我们的业务当中,大多数情况下会采用等时间窗口的平均值计算方式。例如:

      taos > select _wstart, avg(`point_value`) from db.$point_code where _c0 >= ‘2025-01-01’ and _c0 < ‘2025-02-01’ interval(1d);

      整个集群内存几乎没波动。做一个简单规模的查询对比:

      # 在 1w 测点 10s 采样间隔,统计 7 天内的日平均值
      
      # 使用 TDengine 的计算,只需要 1.14 秒
      taos> select _wstart, count(*), avg(`current`), avg(`voltage`), avg(`phase`), tbname from test.meters partition by tbname interval(1d);
      Query OK, 70000 row(s) in set (1.140877s)
      
      # 对于提前计算,每日的计算,只是查询 1 天的数据就占用 15.49 秒:
      taos> select * from test.meters where _c0 >= '2025-01-01' and _c0 < '2025-01-02' >> /dev/null;
      Query OK, 14400000 row(s) in set (15.496163s)
      
      # 对于实时计算,只是查询原始数据,就占用了 106.85 秒
      taos> select * from test.meters >> /dev/null;
      Query OK, 100800000 row(s) in set (106.852480s)
      

      通过上述的数据可以得到:

      方案提前计算实时计算TDengine 内置计算
      耗时> 15.49s> 106.85s1.14s

      从上述数据可以看出,实时计算方案在性能上明显不及 TDengine 内置计算,因此在实际业务中几乎不会被采用。提前计算方案在应用次数超过 16 次后能够带来正向收益(实际业务中查看次数会很容易超过这个数量)。因此,我们在系统中同时采用了提前计算与内置计算的组合方案。其中,内置计算帮助我们有效减少了网络传输、内存占用、CPU 计算以及业务研发等多方面的开销。

      订阅替代数据分发

      作为企业级数据湖,我们既需要满足桂冠电力内部的数据共享,也要支撑与外部系统之间的数据分发。借助 TDengine 的订阅机制taosX 企业级同步组件,这一需求得到了高效而可靠的解决。

      对于分发内容的类型,我们主要有 2 大类:

      • 针对设备订阅,订阅设备的时序数据
      # 选择部分设备进行同步,只订阅时序数据
      create topic topic_fzd as select tbname,data_time,point_value from pointdata.all_station_st where status = 1 and idx in ('辐射','辐照度') ;
      • 针对业务进行订阅,需要订阅设备的元数据和时序数据
      # 选择未知设备进行同步,并且同步元数据变动
      create topic topic_longtan with meta as stable pointdata.all_station_st where status = 1 and station_name = 'DJK_LT_90000208'  

      同步方式上,我们分为两大类:

      • 目的地是 TDengine,应用使用 taosX 进行订阅和写入,保证稳定性。
      • 目的地未知,应用由需求方使用官方 driver 编写,订阅对应的 topic,自行安排应用。

      通过以上的 topic 方式和应用方式,我们解决了数据湖上的数据分发需求。与过往的其他大数据组件相比,属实是非常轻便了。

      大规模的运维经验

      在正式投产之后,我们经历过 3.0.3、3.3.4 和 3.3.6 多个大版本。测点规模从百万走向千万,是一个 10 倍增长的运维过程。在这里分享几个 TDengine TSDB 大规模集群运维的经验。

      容量规划

      基于桂冠的业务场景进行估算,我们最终使用了 64c256g * 3 的虚拟机运行 TDengine TSDB。按照双副本(企业版特性),每个 vgroup 处理 2w 的测点的经验数据,我们预估 64c*3 可以处理:

      64 vnode/节点 * 3 节点 / 2 副本 * 20,000 测点/vgroup = 192,000 测点

      实际过程中从刚上线的性能宽裕,逐步发展到后来的性能拮据。我们发现 20,000 测点/vgroup 这个经验数值,会随着业务应用的开发出现下滑。其核心原因在于业务开发的增多,会带来显著的 CPU 资源消耗。因此我们把预估方式调整为:

      Unit = 20,000 / (insert\_ratio + query\_ratio) 测点/vgroup

      其中 insert_ratio 代表写入强度,query_ratio 代表查询强度。可以初步分成几种情况:

      • insert\_ratio

        • 0.5:代表数据频率已知,顺序写入,日常没有数据补写。
        • 1.0:代表数据频率已知,大部分时候顺序写入,存在常规的数据补写、部分乱序写入
        • 2.0:代表数据频率未知,大部分时候顺序写入,存在常规的数据补写、乱序写入
      • query\_ratio

        • 0.5:代表常规有监控类查询(last/last\_row),短期时间区间查询(7天内)。
        • 1.0:代表常规有监控类查询(last/last\_row),短期时间区间查询(7天内),伴随定期任务查询。
        • 2.0:代表常规有监控类查询(last/last\_row),短期时间区间查询(7天内),伴随定期任务查询,同时提供历史数据查询。

      这部分经验分别对应:单个物联网项目、综合物联网平台和集团数据湖平台。

      写在最后

      在 TDengine TSDB 的多年应用过程中,桂冠电力团队与涛思数据团队共同积累了丰富的大规模运维经验,并将实践成果转化为补丁与功能回馈社区。同时桂冠也见证着 TDengine 从一个时序数据库,逐步走向一个成熟的时序存算平台。在未来的日子里,相信 TDengine 能够成为物联网的一个标准全栈解决方案,为我们的电力业务进一步释放业务价值。

      关于广西桂冠

      广西桂冠电力股份有限公司是中国大唐集团有限公司的二级企业,主要经营水电、火电、风电及其他清洁能源的开发及运营,电站检修、技术咨询业务,兼营有色金属加工、金融服务等业务。公司拥有广西龙滩、岩滩、平班等共 41 座水电站、1 座火电厂和广西、贵州、山东烟台 9 个风电场,并网范围覆盖国家电网和南方电网的多个区域,资产分布于广西、四川、贵州等数个省市自治区,是一个集多能源、多网源、跨地域为一体的大型综合发电企业。

      作者:桂冠电力

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

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

      封面图

      巫山县城建在山坡上,为了方便居民和促进观光,在中轴线上建设了神女大扶梯,总长905米,高240余米,相当于80层楼,全程需要20分钟。(via

      独立软件的黄昏

      软件可以分成两种:一种是公司开发的,另一种是个人开发的。后者就称为"独立软件"(indie software)。

      它的历史非常悠久,从古至今,很多程序员依靠出售独立软件谋生。

      有一种东西"共享软件"(Shareware),年轻的朋友未必知道,二三十年前曾经非常流行。用户免费使用软件的试用版,如果满意,就向开发者购买一个注册码。

      这就是一种独立软件,当年很多著名软件都是这个模式,比如国外的 WinZip 和 WinRAR,国内的网络蚂蚁(NetAnts)、网际快车(FlashGet)、豪杰解霸。

      时至今日,大家看看目前流行的软件,还有多少属于独立软件?你每天使用的软件,又有多少是个人开发的?

      很少很少了。

      一位二十年的独立软件开发者哀叹现在的市场上,公司开发的比重越来越大,个人开发的比重越来越小,独立软件正在没落。

      "我销售自己的软件20年了,2005年以后,互联网开始普及,独立软件迎来了黄金年代。而最近两三年,环境一直在快速变化,销售明显变难了,我感觉自己越来越难维持生计了。"

      独立软件的大发展,是从2005年开始的。

      1. 互联网的普及,网民数量急剧增长。
      2. 智能手机创造了手机软件,一个全新的软件大市场。
      3. 在线支付的普及和简化。
      4. 互联网使软件分发变得容易且免费。
      5. 免费的高质量开发工具(编译器、IDE、版本控制系统、Web 服务器)不断涌现。

      这些因素让程序员切切实实获利了,要是你再做一些 SEO、买一些付费广告,完全可能赚到大钱。很多人就是这样发展起来的,从独立软件变成了大公司。

      但是,最近两三年情况变了,上面这些因素都到头了。

      独立软件正在慢慢退潮,你能够想起名字的独立软件越来越少,更不要说掏钱购买了,即使有也是多年前的作品。根据我的观察,依靠出售自己软件维生的程序员似乎也在减少。

      主要原因有下面几个。

      (1)AI 改变了互联网流量,独立软件失去了推广渠道。网站的访问量显著减少,人们更多跟大模型交互,而不是浏览网页。通过搜索引擎和在线广告获取流量的策略,越来越没有效果。

      视频是为数不多仍然有效的推广渠道之一,但制作视频非常耗时,而且竞争异常激烈。另外,AI 生成的劣质视频迟早会大量出现,推广效果也会变差。

      (2)AI 使得软件开发变得容易。它加快了开发速度,降低了进入门槛,让更多人加入竞争。以前,用户可能购买某个功能,现在直接让 AI 生成即可。

      (3)新软件汗牛充栋,越来越难脱颖而出。iPhone 应用商店有大约200万个应用,用户很难发现你。另一方面,应用商店更喜欢推广那些能帮它赚更多钱的大公司软件,而不是独立软件。

      (4)人们越来越习惯使用基于网络的软件,独立软件属于需要下载安装的原生应用,它的市场在萎缩。

      基于网络的软件与其说是产品,不如说是一种服务,全天候24小时可用的服务。越来越多的个人开发者顺应这种趋势,改为以提供 SaaS 服务为主。

      (5)平台的风险。现在的很多独立软件,都依靠云服务商的平台或底层服务,而平台随时会改变规则(比如关闭 API),或者推出竞品,一大批应用随之死掉,这种事情屡见不鲜。

      (6)用户期望软件是免费的,或者非常便宜。售价略微高一点,就会无人问津。因此,独立软件要想获得可观的回报,就需要巨大的销售规模,这根本做不到。别的不说,个人开发者完全无力提供满意的客服。

      (7)以上这些因素将长期存在,只会加深,不会逆转。独立软件的时代可能真的要结束了,个人开发者以后大概很难靠销售自己的软件为生,而要改为销售自己维护的 SaaS 服务,尽管这也很难。

      科技动态

      1、VS Code 的定位

      微软公司的 VS Code 是非常流行的代码编辑器,市场份额很高。

      现在的官网上,它的产品定位是"开源 AI 代码编辑器"。

      但是,2025年上半年,它的产品定位还是"你的代码编辑器,由 AI 重定义"。

      更早的2024年,产品定位是"重新定义的代码编辑"。

      令人感慨啊,这么成功的软件,AI 本来只是附属功能,现在也要蹭热点,把自己包装成 AI 主导的产品。

      2、智能脖巾

      英国科研人员发明了一种智能脖巾。它围在脖子上,可以感受到穿戴者的心跳和喉部肌肉运动。

      它的用户主要是中风后丧失说话能力的人。这些人可以张嘴,做出说话的口型,但是无法正常发音。

      他们佩戴这个脖巾后,颈部的运动数据就通过它传给电脑,经过模型训练,可以用电脑语音还原出用户想说的话。

      3、雪宝机器人

      人形机器人何必一定做成人形。

      迪斯尼最近发布了一个机器人,样子就是电影《冰雪奇缘》的雪宝。

      它用来在迪斯尼乐园,跟游客互动。

      它启示我们,人形机器人做成卡通形状也很好。

      另外,LG 公司在美国 CES 展会上,展示了他们最新的家务机器人

      这个机器人的功能就是做家务,比如叠衣服和洗碗。我觉得,国内厂商可以借鉴,展示机器人功能时,不要展示跳舞打拳,而要展示如何做家务。

      文章

      1、别用 MySQL,改用 MariaDB(英文)

      曾经的明星数据库 MySQL,最近几个月的代码提交数为0(上图)。作者认为,种种迹象表明甲骨文已经放弃了这个项目。

      2、10秒获得 AI 代码评审结果(英文)

      本文介绍一个技巧,让 AI 快速给出提交代码的评审结果,方法是不要提交整个代码库,只提交 diff 的部分。

      3、使用 Pandoc 生成静态网站(英文)

      文档格式转换工具 Pandoc 可以用来生成静态网站,作者介绍自己是怎么做的。

      4、锚点元素<a>的一些鲜为人知的地方(英文)

      锚点元素<a>用来生成链接,本文介绍如果链接到一些特殊字符的情况。

      5、学习自定义元素(英文)

      一篇 HTML 自定义元素的教程文章,写得简单清晰。

      6、Go、Rust 和 Zig 的一些想法(英文)

      作者是一个高级程序员,谈谈他对 Go、Rust、Zig 三种语言的感受。有趣的地方是,这三种语言都没有类,也不支持面向对象编程。

      7、我的个人基础设施(英文)

      作者介绍他自己的家庭实验室。比较有趣的是,他的个人网站是本地构建后,自动用 Syncthing 同步到服务器,这对小型静态网站确实简单。

      工具

      1、GoRead

      开源的电子书阅读器应用,支持桌面与移动端(Android/iOS)。(@zhashut 投稿)

      2、EasyPostman

      用于 API 调试的跨平台桌面应用,对标 Postman + JMeter。(@lakernote 投稿)

      3、Port Sentinel(端口哨兵)

      Windows 桌面应用,查看端口占用情况。(@Sanjeever 投稿)

      4、Building Sunlight Simulator

      基于 Web 的楼盘采光 3D 日照模拟工具,帮助购房者评估小区采光。(@SeanWong17 投稿)

      5、Office App

      一个纯本地的 Office 网页应用,可以离线在网页创建/编辑 Word、Excel、PowerPoint 文件。(@baotlake 投稿)

      6、ScreenshotSnap

      免费的网站截屏在线工具,提供 API,可以直接将截图代码插入网页。(@phpiscute 投稿)

      7、tsshd

      SSH 服务器登录协议的全新实现,特点是连接不掉线,可以重连前一个对话。(@lonnywong 投稿)

      8、AirScan-QR

      一个开源网页应用,通过动态二维码发送/接收文件。(@topcss 投稿)

      9、LuCI Bandix

      开源路由器操作系统 OpenWRT 的一个插件,可以监控局域网各设备的实时流量和目的地。(@timsaya 投稿)

      10、pure-genealogy

      开源的网页族谱工具,用来生成家族族谱,基于 Next.js + Supabase。(@yunfengsa 投稿)

      11、mdto.page

      这个网站免费将 Markdown 文件转成 HTML 格式,发布成公开访问的网页。

      AI 相关

      1、ChatGPT 翻译

      OpenAI 悄悄发布的翻译功能,只有在官网可用。

      2、Mango Desk

      一个跨平台的桌面应用,使用自然语言进行本地文件搜索。(@moyangzhan 投稿)

      3、OpenWork

      Claude 公司新产品 CoWork 的开源替代品,让普通用户不编程,就能完成文件操作,定位就是"Claude Code 的非编程版"。

      另有一个类似项目 Open Claude Cowork。(@aiagentbuilder 投稿)

      4、Wolfcha(猹杀)

      开源的网页游戏 AI 狼人杀,除了玩家自己,其他所有角色(女巫、猎人、守卫、狼人等)都由 AI 扮演。(@oil-oil 投稿)

      资源

      1、维基百科25周年

      维基百科是2001年1月13日上线的,今年是25周年纪念。这个网站是官方的纪念网站,以互动形式展示了发展历程。

      另外,还有一篇文章,介绍互联网档案馆的历史(下图)。

      2、HTTP:COLON

      这个网页可以查看指定网站返回的 HTTP 标头,详细解释每个字段的含义。

      3、现代 Java(Modern Java)

      面向初学者的 Java 语言教程。

      图片

      1、中国新能源建设的惊人规模

      90后摄影师储卫民拍摄的中国新能源建设。

      他说:"从地面上很难体会这些发电厂的规模,但当你升到空中时,就能看到它们与山脉、沙漠和海洋之间的关系。"

      青海冷湖镇

      浙江象山县

      青海塔拉滩

      内蒙古阿拉善

      "我一开始只是拍摄风景,但2022年我去贵州、云南、青海等地旅行时,不断看到风力发电场和太阳能发电厂出现在我的镜头里。我意识到这就是我们这个时代的故事----但几乎没有人系统地记录它。"

      文摘

      1、谷歌14年工作的教训

      大约14年前,我加入谷歌,以为这份工作就是编写优秀的代码。

      这个想法部分正确。但随着时间的推移,我越来越意识到,真正成功的工程师不一定是最优秀的程序员,而是懂得驾驭代码之外一切的人。

      下面就是我得到的经验教训。有些教训是我走了几个月的弯路得到的,还有一些需要数年才完全领悟。它们都与具体的技术无关----技术变化太快,根本无关紧要。

      (1)工程师想在大公司生存,必须学会沟通。

      因为在大公司,团队是组织的基本单位,推进项目必须跟其他团队沟通。项目越大,你花在跟其他人、其他团队沟通的时间就越多,比编写代码的时间还多。大多数"慢"的团队实际上是不沟通的团队。

      为了顺利沟通,清晰是第一位的要求。它不仅可以加快沟通,还能降低代码风险。最优秀的工程师都会用清晰易懂的代码来代替炫技。

      为了提高表达的清晰性,你可以尝试写作和去教别人。如果你能用简单的语言解释某件事,你就是真的理解它了。

      (2)想要得到晋升,必须有人为你说话。

      职业生涯初期,我曾认为优秀的工作成果代表了一切,但我错了。代码默默地躺在代码库里,不会为你说话。

      那些对你至关重要的会议,你本人很可能没有机会参加。你需要你的经理、同事在会上提到你、推荐你。他们可能这样做,也可能不会。

      平时工作中,你尽量不要为自己增加阻力。如果开会的时候,你赢得每一场辩论,很可能就是在积累无声的阻力。你之所以"赢",不是因为你说服了别人,而是因为他们不再与你争论,放弃了,将会在其他场合表达这种不满。

      (3)专注于你能控制的事情,忽略你无法控制的事情。

      很多事情,你改变不了,不要为这种事情烦恼。这不是被动接受,而是策略性分配精力。如果你把精力浪费在无法改变的事情上,就等于放弃改变那些原本可以改变的事情。

      (4)简化工作往往可以提高绩效。

      当系统运行缓慢时,人们的第一反应是增加缓存层、并行处理和更智能的算法。有时这样做没错,但我发现,删除不必要的工作几乎总是更有效果。下次进行优化之前,你要先问问自己这项工作是否应该存在。

      (5)时间比金钱更有价值,你要抓紧时间。

      职业生涯初期,你用时间换取金钱,各种事情都做----这无可厚非。但到了某个阶段,情况就完全不同了,你会开始意识到,时间才是不可再生资源。你要专注于那些对你最重要的事情,放弃其他事情。

      言论

      1、

      -- 一位程序员评论 OpenAI 宣布在 AI 对话中加入广告

      2、

      Netflix 的电影不追求视觉效果,因为大多数观众是在手机、平板和笔记本电脑上看,内容不需要为大银幕制作、而是为小屏幕制作的。

      -- 马特·达蒙,美国著名演员

      3、

      我从未见过哪个群体比程序员更热衷于分享知识。其他行业都是严守知识、保守秘密,程序员则是免费提供源代码、书籍、博客文章、演示文稿、视频教程等等。

      编程领域没有什么神圣不可侵犯的东西。如果你想学习,你可以找到免费书籍、完整的源代码、论坛、聊天室、邮件列表、线下聚会、博客文章、视频讲座、教程以及你可能需要的一切资源。尽管举手,总会有人乐于助人,倾囊相授。

      -- 《我是如何学习所有编程知识的》

      4、

      今年的 iOS 26 中,一些 UI 元素利用 HDR 屏幕,采用高光,比纯白色更亮。如果你曾经在 iPhone(或其他任何支持 HDR 的屏幕)上看过 HDR 照片,然后再看看以 SDR 模式显示的 UI,你就会知道它看起来有多么灰暗黯淡。

      -- 《亮模式的膨胀》,作者发现 iOS 每年都变得更亮,容易产生视觉疲劳,让他不得不使用暗模式

      5、

      如果你想批评大型组织的运作方式,首先要了解它们为何如此运作。否则,批评会显得尖锐,但却毫无意义。

      -- 《关于大型软件公司的常见误解》

      往年回顾

      年底的未来已来(#335)

      为什么 PPT 不如备忘录(#285)

      青年失业率与选择创业(#235)

      美国宪法拍卖,一个区块链案例(#185)

      (完)

      站在咖啡馆的柜台前,项目经理李薇用手机轻点几下,就重新分配了因航班延误而受影响的三个任务。这种随时随地的管理能力,如今正通过移动端好用的管理工具成为现实。

      在移动办公成为常态的今天,工作场所已从固定的办公桌延伸至通勤路上、客户会议室甚至家庭客厅。据统计,超过68%的职场人需要在下班后处理工作事务,而其中近60%的核心协作通过手机完成。

      但屏幕尺寸、网络环境和交互方式的根本性改变,也给团队管理带来了前所未有的挑战。

      01 移动办公的挑战:为何传统管理工具力不从心?

      移动办公的核心特征是碎片化与场景化。工作被切割成更短的时间块,穿插在差旅途中等候、会议间隙甚至家庭生活中。这种模式下,传统为桌面端设计的管理工具暴露出了明显短板。

      信息同步延迟是最常见的痛点。团队成员更新了项目状态,但其他人手机上的通知可能迟迟未到,或淹没在混杂的社交信息中。在需要快速决策时,这种延迟可能导致机会错失。

      其次,功能阉割与操作繁琐严重阻碍效率。许多工具的移动版只是桌面版的简化移植,关键功能缺失,操作路径深且不符合触屏逻辑。在小屏幕上创建复杂任务、查看甘特图或进行多文件比对,常常令人沮丧。

      更深层的是协作壁垒。移动环境下,沟通与管理往往脱节——重要的讨论散落在微信、钉钉等即时通讯工具中,却无法与任务状态自动同步,导致信息孤岛,执行过程不透明,管理者难以掌握真实进度。

      02 核心价值:移动端专用管理工具如何破局?

      移动端管理工具的核心价值,在于它不是对桌面工具的补充,而是为移动场景原生设计的新工作界面。它重新定义了信息如何被获取、任务如何被处理以及协作如何发生。

      其首要优势是极致的实时性与可达性。优秀的移动工具通过优化的推送机制和后台同步,确保信息秒级触达。即使网络短暂中断,也能在本地记录操作,待网络恢复后自动同步,保证工作流不间断。

      其次是情境智能与操作简化。工具能根据用户所处场景(如时间、地点、正在处理的任务)智能推荐下一步行动。例如,在接近客户公司时自动弹出相关项目资料;通过语音快速创建任务、用拍照一键上传并关联至工作项,极大降低了移动输入成本。

      最终,它实现了沟通与执行的融合。在任务卡片中直接讨论,评论自动转为待办事项,关键对话一键转为任务指派。这让协作上下文完整保存,决策过程可追溯,真正做到了“讨论即执行,执行即记录”。

      03 实战解析:主流移动端管理工具深度评测

      理解价值后,我们来剖析几款真正为移动场景深度优化、在手机和平板上拥有卓越体验的管理工具。

      微软 To Do 是跨平台轻量级任务管理的典范。其移动端与Office 365生态深度绑定,支持邮件星标自动同步,适合个人事务与轻量协作。

      滴答清单 集日历、习惯打卡、番茄钟于一体,移动端自然语义识别强大,输入“明天三点开会”即可智能创建任务。

      板栗看板 与微信、钉钉深度融合,支持将群聊对话转为卡片,其移动端看板视图经专门优化,交互流畅。

      Things 3 是苹果生态中设计美学与生产力的标杆,移动端交互为触控全新设计,能与系统深度联动构建自动化工作流。

      04 未来展望:AI与移动管理工具的融合趋势

      移动设备天生的便携性与丰富的传感器,使其成为人工智能技术落地的绝佳平台。未来,移动端管理工具将变得更加主动、情境感知和预见性。

      情境感知的自动辅助将成为标配。工具将综合GPS定位、日历日程、手机使用状态,智能判断用户当前是否可处理深度任务。例如,在检测到用户正在通勤时,自动推送适合短时处理的审批或阅读任务。

      语音与自然语言成为主要交互界面。未来的移动管理将更多地通过“语音创建任务”、“对话式询问项目进度”来完成。AI不仅能理解指令,还能追问模糊细节,一次性生成结构完整的任务项,彻底解放双手。

      预测性风险干预是更高阶的应用。AI通过分析任务推进速度、协作互动频率、历史延期数据等,在移动端提前预警项目风险。例如,向项目经理推送提示:“A任务关联的3个子任务进度均落后,整体延期风险高达70%,建议今天下午召集核心成员进行5分钟快速同步。”

      05 选择指南:四步找到你的移动管理利器

      面对众多选择,你可以遵循以下路径,找到最适合团队的那一款:

      1. 核心场景匹配测试:不要被功能列表迷惑。邀请团队成员,用最常发生的2-3个移动办公场景(如“客户突然来电要求修改方案并同步给团队”)来实测候选工具。观察完成整个流程需要多少步操作,是否顺畅。
      2. 评估离线与弱网能力:主动关闭Wi-Fi和蜂窝数据,测试能否查看最近的任务列表、能否编辑任务内容。恢复网络后,观察编辑内容是否自动同步、有无冲突提示。这是移动工具可靠性的试金石。
      3. 审视通知系统:仔细研究工具的通知定制粒度。能否按项目、任务类型、紧急程度设置不同的提醒方式和频率?能否在移动端设置“免打扰时段”?一个既及时又不构成骚扰的通知系统至关重要。
      4. 考量生态集成成本:检查工具是否与你团队已离不开的日常应用(如邮箱、网盘、通讯软件、签批系统)良好集成。在移动端,每一次强制性的应用切换,都意味着注意力的打断和效率的损耗。

      06 技术实践:移动任务管理器的简易代码实现

      以下是一个模拟移动端智能任务管理核心逻辑的简化代码示例,展示了如何根据场景生成任务并进行智能同步:

      from datetime import datetime, timedelta
      
      class MobileTaskManager:
          """移动端智能任务管理器核心逻辑演示"""
          
          def create_task_from_context(self, context: str, location: str = None) -> dict:
              """根据场景和位置创建智能任务"""
              # 智能优先级判断
              priority = "中"
              if "紧急" in context or "尽快" in context:
                  priority = "高"
              elif "整理" in context or "备份" in context:
                  priority = "低"
              
              # 智能截止时间建议
              due_hours = {"高": 4, "中": 24, "低": 72}.get(priority, 24)
              due_date = (datetime.now() + timedelta(hours=due_hours)).strftime("%m-%d %H:%M")
              
              task = {
                  "id": f"task_{datetime.now().strftime('%H%M%S')}",
                  "title": f"[移动端]{context[:15]}..." if len(context) > 15 else context,
                  "priority": priority,
                  "due": due_date,
                  "location": location,
                  "created": datetime.now().strftime("%H:%M"),
                  "status": "待处理"
              }
              
              print(f"✓ 创建任务: {task['title']}")
              print(f"  优先级:{priority} | 截止:{due_date}" + (f" | 位置:{location}" if location else ""))
              return task
          
          def sync_offline_tasks(self, task_list: list) -> dict:
              """模拟离线任务同步"""
              print(f"\n📡 同步中... 发现{len(task_list)}个待同步任务")
              print("─" * 30)
              
              for i, task in enumerate(task_list, 1):
                  print(f"{i}. {task['title']:20} | 状态: {task['status']}")
              
              return {
                  "success": True,
                  "synced": len(task_list),
                  "time": datetime.now().strftime("%H:%M:%S")
              }
      
      # 演示移动端任务管理场景
      print("🚀 移动端任务管理器演示\n")
      
      manager = MobileTaskManager()
      
      # 场景1:紧急任务创建
      print("场景1:客户现场紧急任务")
      manager.create_task_from_context("紧急修复客户演示系统BUG", "客户办公室")
      
      # 场景2:常规任务创建
      print("\n场景2:常规跟进任务")
      manager.create_task_from_context("整理项目会议纪要并发送")
      
      # 场景3:同步演示
      print("\n场景3:网络恢复后同步")
      tasks = [
          {"title": "修复演示BUG", "status": "进行中"},
          {"title": "整理会议纪要", "status": "待处理"},
          {"title": "提交周报", "status": "已完成"}
      ]
      
      sync_result = manager.sync_offline_tasks(tasks)
      print(f"\n✅ 同步完成 ({sync_result['time']})")
      print(f"   成功同步 {sync_result['synced']} 个任务状态")

      移动端管理工具的进化,其本质是将管理的主动权交还给身处不同时空的人。在上海的地铁里审阅设计稿,在西安的出差途中批准预算,在广州的茶餐厅里同步项目节点——工作的节奏不再由地点决定,而是由想法和决策驱动

      当工具真正理解了移动的本质是“人的流动”,而不仅是“桌面的缩小”,高效协作便不再受限于任何物理边界。选择正确的移动端管理工具,不仅是选择一个软件,更是为你的团队选择一种更自由、更敏锐、更连贯的工作方式。

      在这个被大模型和智能体(Agent)疯狂重塑的年份,我们不得不承认一个残酷的事实:传统的边缘计算叙事,正在失效。

      当算力从中心有序下沉,当 AI Agent 开始接管终端决策,边缘计算不再只是网络的延伸,而正在成为智能的前沿阵地。谁还停留在旧叙事中,谁又真正拿到了通往下一个十年的船票,答案正在迅速分化。

      基于这样的行业背景,边缘计算社区正式启动「2026 中国边缘计算企业 20 强」榜单评选。这不仅是一份年度名单,更是一场在技术代际更迭下的行业校准。

      image.png

      榜单背景

      自 2019 年起,边缘计算社区已连续六年发布「中国边缘计算企业 20 强」榜单,累计吸引 800 余家产业链企业参与评选,覆盖边缘云、边缘一体机、边缘 AI、5G MEC 等核心领域。

      过去六年中,该榜单全网累计传播曝光量突破 3500 万次(清博大数据舆情统计),不仅持续为行业树立技术与商业标杆,也逐步成为企业扩大市场影响力、获取生态与产业资源的重要入口。

      当边缘计算进入 “边缘 × AI × 智能体” 的新阶段,我们认为:这份榜单,也必须随技术代际一起升级。

      从“连接”到“智算”

      回望过去两年,边缘计算的演进速度远超预期。

      如果说 2024 年行业仍在聚焦边缘盒子、网关与连接能力,那么到了 2025 年底,只谈连接、不谈推理的产品,已经很难再获得市场认可。

      大模型正在以前所未有的速度“瘦身”并下沉至边缘侧:从手机、PC,到工业控制器与现场设备,越来越多的终端被要求具备本地推理与自主决策能力。

      边缘计算正在从“管道”,演进为 AI 的“触角”。当然,这并不意味着所有传统边缘计算企业都会被淘汰。但可以确定的是:

      以“连接能力”为核心竞争力的边缘产品,正在快速失去议价权。

      智能体爆发,边缘侧的“寒武纪时刻”

      2026 年,或将成为边缘智能体(Edge Agents)走向规模化应用的起点。所谓边缘智能体,并非简单的模型端侧部署,而是指在受限算力、弱网络甚至离线条件下,仍具备自主感知、规划与执行能力的边缘决策单元。

      未来的边缘计算竞争,将不再取决于硬件参数,而在于:

      • 谁能让大模型在边缘侧稳定运行
      • 谁能在毫秒级延迟内完成复杂决策
      • 谁能在算力、算法与网络之间实现系统级优化

      这不仅是技术升级,更是一轮生态重构。

      寻找 2026 年的“边缘脊梁”

      正是在这样的行业变局之下,我们启动「2026 中国边缘计算企业 20 强」评选。

      我们要寻找的,不是停留在历史成绩上的老牌玩家,也不是只会包装概念的“PPT 公司”,而是那些真正进入 “边缘 × AI”深水区 的企业:

      • 成功将 7B、14B 等模型量化并部署到边缘端的技术实践者
      • 用边缘智能体解决真实、碎片化场景问题的实干团队
      • 在算力、算法与网络协同中实现突破的破局者

      他们,才是真正决定边缘计算下一个十年走向的力量。


      评选标准与参选要求

      参选条件

      • 在边缘计算领域具备成熟的技术解决方案与商业化落地案例;
      • 拥有核心技术壁垒(如边缘芯片、算法优化、异构计算等)或独特生态资源;
      • 2026 年新增重点:展示边缘计算与 AI 大模型的融合实践(如优化 AI 推理效率、隐私计算、联邦学习等),以及算力。
        image.png

        评分机制

      • 线上投票(30%):公众通过官方渠道为心仪企业投票;
      • 专家评审(70%):从以下四大维度综合打分:

        • 技术领先性(35%)
        • 商业落地(30%)
        • 边缘×AI创新(25%)
        • 生态贡献(10%)

      上榜权益

      • 品牌升维:通过头部合作伙伴渠道全域曝光,覆盖 10 万+ 开发者社区;
      • 商机裂变:优先对接甲方订单资源,2024 年某上榜企业通过生态合作斩获 800 万项目订单;
      • 权威认证:榜单企业客户咨询量平均提升 120%(历史数据);
      • 生态赋能:优先加入“边缘计算产业图谱”。

      特别提醒

      独行者快,众行者远:在 AI 巨头定义规则的战场上,边缘计算企业唯有被看见,才有机会被选择。技术不应被埋没,真正的能力值得被记录。边缘计算的下一个十年,不属于参数最多的人,而属于最懂场景、最懂约束、也最懂 AI 如何落地的人。

      边缘计算社区
      2026年1月21日