Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

纯文本新闻资讯列表及极简的社交媒体平台导航 (2025)

By: DUN
10 January 2026 at 14:44

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

看到在讨论遇到灾害时,纯文字或是低流量需求新闻网站的重要性:「During Helene, I Just Wanted a Plain Text Website (via)」,Hacker News 上有人给了「A List Of Text-Only & Minimalist News Sites (Updated 2025)」还蛮不错的。

只看官方有提供的部分,美国 CNN 的 lite.cnn.com 与 NPR 的 text.npr.org 算是很久前就知道的两个站,很久了而且是知名的新闻媒体提供的。

倒是加拿大 CBC 的 www.cbc.ca/lite 算是之前不知道,这次在列表里面看到。

汇总记录起来,感觉用的到…

这些站点通过剥离视频、追踪器和自适应广告,将网页加载体积从平均 5MB 压缩至 50KB 以内。这不仅是带宽的节省,更是对“深阅读”环境的重塑。

这一板块是本清单的精髓,适合对信息密度有极高要求的专业人士。

这是 2026 年保护隐私与节省流量的最佳方案。以下工具在今年被证明是稳定可靠的:

IPinfo 关于 20 家主流匿名服务平台的真实位置报告

By: DUN
30 December 2025 at 13:48

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

IPinfo 对全球 20 款主流匿名服务进行了大规模基准测试,结果令人震惊:17 款匿名服务的流量出口与其宣称的国家不符。绝大多数所谓的“全球覆盖”实际上是将流量路由至美国或欧洲的少数几个数据中心。如果你依赖匿名服务规避地理限制或寻求特定司法管辖区的保护,你的流量可能正暴露在你最想避开的地方。

“100+ 国家”的营销谎言
许多匿名服务提供商声称拥有遍布全球的服务器网络,但通过对 150,000+ 出口 IP137 个国家 的交叉比对,事实并非如此:

下表展示了匿名服务提供商宣称的国家数量与实际测得的“虚拟/不可测”比例。
注:百分比越高,代表其宣称的“物理位置”含水量越大。

💡 专家注:Mullvad、IVPN 和 Windscribe 实现了 0% 的错位。这并不意味着它们覆盖最广,但意味着它们最诚实——所见即所得

当你在匿名服务App 中点击“🇧🇸 巴哈马”时,你以为流量进入了加勒比海。实际上,流量可能从未离开过美国迈阿密。

运作机制:

为何要这么做?

现象:NordVPN, ExpressVPN, PIA 等 5 家提供商均提供“巴哈马”节点。
真相:所有流量实测均位于美国
证据:从美国迈阿密发起的探测,RTT(往返时延)仅为 0.15ms – 0.42ms
物理常识:光速不可能在 0.2ms 内完成跨海往返。这证明服务器就在探测点隔壁(迈阿密)。

现象:NordVPN 和 ProtonVPN 声称提供索马里摩加迪沙(Mogadishu)节点。
真相:实际位于法国英国
风险:用户可能为了特定的非洲地缘需求连接,却被路由到了欧洲监控体系下。

为什么很多 IP 查询工具也会显示错误位置?
因为传统数据库(Legacy IP Datasets)依赖**“自述数据”(Self-reported data)**。如果匿名服务服务商在 WHOIS 信息里填了“索马里”,由于没有主动验证机制,传统数据库就会盲目采信。

误差有多大?
IPinfo 将其实测数据与传统数据库对比:

可视化证据:
ProtonVPN 的某个 IP,传统数据库认为是 🇲🇺 毛里求斯,ProbeNet 实测是在 🇬🇧 英国(距离偏差 9691 公里)。

这为何是一个严重问题?
虽然虚拟定位在工程上有其合理性(如在缺乏基础设施的地区提供服务),但核心问题在于透明度

✅ 最佳实践方案 (Actionable Advice)

本次调查采用了**“测量优先”(Measurement-first)**的工程方法,而非依赖文档。

注:本报告采取了保守统计,仅统计了明确的国家级错位。如果计入城市级错位,数据将更加惊人。

Claude Code 终极指南:从入门到精通的 31 个核心技巧

By: Anonymous
27 January 2026 at 12:34

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

这篇文章将这 31 个技巧汇编成一份详尽的指南,按从“入门基础”到“高级模式”的逻辑重新组织,并补充了 280 个字符无法容纳的深度背景信息。

无论你是刚刚起步,还是希望利用 Claude Code 提升段位,这里都有适合你的内容。

在深入研究具体功能之前,首先要配置 Claude Code,让它真正理解你的项目。

每个新成员都需要入职文档。使用 /init,Claude 会为自己写一份。

Claude 会读取你的代码库并生成一个 CLAUDE.md 文件,包含:

这是我在任何新项目中运行的第一条命令。

对于大型项目,你还可以创建一个 .claude/rules/ 目录,用于存放模块化、特定主题的指令。该目录下的每个 .md 文件都会作为“项目记忆”与 CLAUDE.md 一起自动加载。你甚至可以使用 YAML frontmatter 基于文件路径有条件地应用规则:

可以把 CLAUDE.md 想象成你的项目总指南,而 .claude/rules/ 则是针对测试、安全性、API 设计等特定领域的专项补充

想把某些东西存入 Claude 的记忆,又不想手动编辑 CLAUDE.md

在过去,你需要用 # 开头来让 Claude 将内容追加到文件中。但从 Claude Code 2.0.70 版本开始,流程变得更简单了——你只需要直接告诉它去更新。

直接告诉 Claude 记住它:

“Update Claude.md: always use bun instead of npm in this project”
(更新 Claude.md:在这个项目中始终使用 bun 而不是 npm)

无需打断你的心流,继续编码即可。

@ 提及是将上下文传递给 Claude 的最快方式:

在 Git 仓库中,文件建议的速度提高了约 3 倍,并且支持模糊匹配。@ 是从“我需要上下文”到“Claude 已获取上下文”的最短路径。

这些是你会频繁使用的命令。请将它们刻入肌肉记忆。

不要浪费 token 去问“你能运行 git status 吗?”

只需输入 ! 加上你的 bash 命令:

! 前缀会立即执行 bash 命令并将输出注入到上下文中。没有模型处理延迟,不浪费 token,无需切换多个终端窗口。

这一看似微小的功能,当你每天使用五十次后,就会意识到它的巨大价值。

想尝试一种“如果我们这样做……”的方法,但又不想承担后果?

尽管去试。如果情况变得奇怪,按两次 Esc 键即可跳回到干净的检查点。

你可以回退对话、代码更改,或者两者都回退。需要注意的是:已运行的 Bash 命令无法撤销。

你过去的提示词(Prompts)都是可搜索的:

不要重打,要去回忆。 这对斜杠命令(slash commands)同样适用,体验无缝衔接。

这就好比 git stash,但是用于你的提示词。

Ctrl+S 保存你的草稿。先发送其他内容。当你准备好时,你的草稿会自动恢复。

再也不用复制到记事本,再也不用担心在对话中途打断思路。

Claude 可以预测你接下来要问什么。

完成一项任务后,有时你会看到一个灰色的后续建议出现:

Tab 键曾经用于自动补全代码。现在,它自动补全你的工作流。可以通过 /config 切换此功能。

Claude Code 是一个持久化的开发环境,根据你的工作流对其进行优化,将极大地提升效率。

不小心关掉了终端?电脑在任务中途没电了?没问题。

上下文得以保留,势头得以恢复。你的工作永远不会丢失。你还可以通过 cleanupPeriodDays 设置会话保留的时间。默认是 30 天,但你可以将其设置得更长,或者如果你不想保留会话,可以设为 0。

你的 Git 分支有名字,你的 Claude 会话也应该有。

/resume 界面会对分叉(forked)的会话进行分组,并支持快捷键:P 预览,R 重命名。

在网页上开始任务,在终端里完成它:

这会将云端会话拉取并恢复到本地。无论在家还是在路上,Claude 都在。这也适用于 iOS 和 Android 的 Claude 移动应用,以及 Claude 桌面应用。

有时你需要一份关于发生了什么的记录。

/export 将你的整个对话转储为 Markdown 格式:

非常适合用于文档编写、培训,或者向过去的自己证明:是的,你确实已经尝试过那种方法了。

这些功能旨在消除摩擦,帮助你更快地行动。

厌倦了伸手去拿鼠标来编辑提示词?

输入 /vim,解锁全功能的 Vim 风格编辑体验:

以思维的速度编辑提示词。你几十年的 Vim 肌肉记忆终于在 AI 工具中得到了回报。退出 Vim 模式也前所未有地简单,只需再次输入 /vim

Claude Code 在终端底部有一个可自定义的状态栏。

/statusline 让你配置显示的内容:

一目了然的信息意味着更少的手动检查和中断。

想知道是什么吃掉了你的上下文窗口?

输入 /context 查看究竟是什么在消耗你的 token:

当你的上下文开始变满时,这就是你找出问题所在的方法。

输入 /stats 查看你的使用模式、最爱用的模型、连续使用天数 (Streaks) 等。

橙色是新的绿色 (Orange is the new green)。

“我快达到限额了吗?”

了解你的极限,然后超越它们。

控制 Claude 如何处理问题。

通过一个关键词按需触发扩展思考:

当你在提示词中包含 ultrathink 时,Claude 会在回答之前分配最多 32k token 用于内部推理。对于复杂的架构决策或棘手的调试会话,这往往决定了你得到的是肤浅的答案还是真正的洞察

注:以前你可以指定 think, think harder, ultrathink 来分配不同数量的 token,但现在我们已将其简化为单一的思考预算。当配置了 MAX_THINKING_TOKENS 时,ultrathink 关键字将失效,配置项将优先控制所有请求的思考预算。

先驱散战争迷雾。

按两次 Shift+Tab 进入计划模式 (Plan Mode)。Claude 可以:

但在你批准计划之前,它不会编辑任何内容。三思而后行 (Think twice. Execute once.)。

我有 90% 的时间都默认处于计划模式。最新版本允许你在拒绝计划时提供反馈,使迭代更快。

直接使用 Claude API 时,你可以启用扩展思考来查看 Claude 的逐步推理:

Claude 在回答之前会在思考块 (thinking blocks) 中展示其推理过程。这对调试复杂逻辑或理解 Claude 的决策非常有用。

没有控制的力量只是混乱。这些功能让你设定边界。

/sandbox 让你一次性定义边界。Claude 在边界内自由工作。

你获得了速度,同时拥有真正的安全性。最新版本支持通配符语法,如 mcp__server__*,用于允许整个 MCP 服务器。

厌倦了 Claude Code 做什么都要请求许可?

这个标志对一切说 Yes。它的名字里带有“dangerously”(危险地)是有原因的——请明智地使用它,最好是在隔离环境或受信任的操作中。

Hooks 是在预定生命周期事件发生的 shell 命令:

通过 /hooks.claude/settings.json 进行配置。

使用 Hooks 来阻止危险命令、发送通知、记录操作或与外部系统集成。这是对概率性 AI 的确定性控制。

Claude Code 的作用不止于交互式会话。

你可以将 Claude Code 用作脚本和自动化的强大 CLI 工具:

流水线中的 AI。-p 标志以非交互方式运行 Claude 并直接输出到标准输出 (stdout)。

将任何提示词保存为可复用的命令:

创建一个 Markdown 文件,它就变成了一个斜杠命令,并且可以接受参数:

不要重复自己。你最好的提示词值得被复用。

Claude Code 可以看到并与你的浏览器交互。

Claude 现在可以直接与 Chrome 交互:

“修复 Bug 并验证它能工作”现在只需一个提示词。从 claude.ai/chrome 安装 Chrome 扩展程序。

这是 Claude Code 真正强大的地方。

圣诞老人不会自己包装每一份礼物。他有精灵。

子代理 (Subagents) 就是 Claude 的精灵。每一个子代理:

像圣诞老人一样放权。子代理可以在后台运行,而你继续工作,它们拥有访问 MCP 工具的完全权限。

技能 (Skills) 是指导 Claude 完成特定任务的指令、脚本和资源的文件夹。

它们一次打包,随处可用。而且由于 Agent Skills 现在是一个开放标准,它们可以在任何支持该标准的工具中工作。

把技能看作是按需赋予 Claude 专业知识。无论是你公司特定的部署流程、测试方法论,还是文档标准。

还记得以前分享 Claude Code 设置意味着要跨 12 个目录发送 47 个文件吗?

那个时代结束了。

插件将命令、代理、技能、Hooks 和 MCP 服务器打包在一起。通过市场发现新的工作流,市场包含搜索过滤功能,便于发现。

LSP 支持赋予了 Claude IDE 级别的代码智能:

LSP 集成提供:

Claude Code 现在像你的 IDE 一样理解你的代码。

驱动 Claude Code 的代理循环、工具和上下文管理现在作为 SDK 提供。只需不到 10 行代码即可构建像 Claude Code 一样工作的代理:

这仅仅是个开始。

当我开始这个“倒数日历”时,我以为我只是在分享技巧。但回顾这 31 天,我看到了更多的东西:一种人机协作的哲学

Claude Code 中最好的功能都是为了给你控制权。计划模式、代理技能、Hooks、沙盒边界、会话管理。这些是与 AI 协作的工具,而不是向它投降。

能从 Claude Code 中获得最大收益的开发者,不是那些输入“帮我做所有事”的人。而是那些学会了何时使用计划模式、如何构建提示词、何时调用深度思考 (Ultrathink),以及如何设置 Hooks 在错误发生前捕获它们的人。

AI 是一个杠杆。这些功能帮助你找到正确的抓手。

致 2026 年。

纯文本与极简的新闻资讯列表导航 (2025)

By: DUN
4 January 2026 at 17:29

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

Hacker News 看到在讨论遇到灾害时,纯文本或低流量需求新闻网站的重要性:
赫莱恩飓风期间,我只想要一个纯文本网站」(via」)。

Hacker News 上有人推荐了这份列表,相当实用。于是翻译为中文,提供一个低熵、高效的全球资讯导航索引。

仅统计官方提供的版本(否则其实有不少第三方版本),美国 CNN 的lite.cnn.com与 NPR 的text.npr.org是早已知名的两个站点,运行多年且由知名新闻媒体提供。

倒是加拿大 CBC 的www.cbc.ca/lite此前未曾留意,这次在列表中发现。记录下来感觉会用到……

在网页动辄充斥广告、追踪器和高带宽视频的今天,纯文本网站不仅是复古的回归,更是对“注意力主权”和“访问效率”的保卫

这些站点是获取主流时政资讯的最高效路径,剥离了视觉噪音。

对于开发者和技术发烧友,这些站点提供了极高的“信噪比”。

这是列表中最具价值的部分:不登录、无追踪、低带宽地访问主流社交平台。

利用维基百科的客观性,将动态新闻转化为百科式的叙述。

最后更新:2025 年 8 月 24 日(内容经 2026 年专家调研校对)

IPinfo 关于 20 家主流匿名服务平台的真实位置报告

By: DUN
24 December 2025 at 16:09

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

IPinfo 的深度审计揭露,17/20 (85%) 的主流匿名服务声称的服务器位置与实际物理位置不符,实际流量出口位置也存在差异。部分服务商的错误位置超过 40 个,而且超过 8000 个 IP 地址与第三方数据集的定位不符。这些被称为虚拟服务器,大多数匿名服务商都或多或少存在这种情况。

这些厂商不愿多花成本在目标的物理地区部署实体服务器,转而选择在成本更低廉的地区架设服务器,仅通过技术手段给 IP 地址贴上任意国家的虚拟标签。

照此逻辑,任何人都完全可以在香港、日本或美国某数据中心租用 195 台服务器,为每台配置不同国家的 IP 标签,就能宣称服务覆盖全球所有国家。

听起来很荒谬,但这恰恰是许多匿名服务的运营方式。这只是为提升官网数据、促进销售的手段。

不要盲目信任服务宣称的地区。如果你是为了规避审查或保护人身安全,必须假设所有节点都是不可信的,并应通过测试验证物理距离。

DUN.IM 拥有实际国家或地区物理服务器数量为 68 个 (最新数据会随着时间变化) ,连接指定区域时,数据流真正抵达的就是该国家。相较于其他提供商,我们自信为用户提供了实际国家区域覆盖范围最广的匿名服务。

我们希望能帮助大家了解到一些自身权益和隐私相关的信息。DUN.IM 始终坚持公开和真诚,所有宣传都力求准确。

我们还年轻,可不想看到这个世界,处在毫无自由、隐私的边缘

IPinfo 发现20 款热门匿名服务中有 17 款流量出口位置与其宣称的国家不符。尽管部分服务商声称拥有覆盖“100 多个国家”的服务器网络,但数据表明,其中许多流量实际上指向了位于美国或欧洲的少数几个物理数据中心。

这意味着,绝大多数匿名服务商并没有按照他们承诺的国家区域路由你的流量,其实际支持的国家数量远少于营销宣传。

通过分析遍布 137 个潜在出口国家的超过 150,000 个出口 IP 地址,并将服务商的宣称与 IPinfo 的实测数据进行对比, IPinfo 得出了以下结论:

本报告将详细梳理 IPinfo 在匿名服务和 IP 数据服务商中观察到的现象,深入剖析两个极具代表性的国家案例,探讨为何基于实测的 IP 数据对于流量溯源至关重要,并公开 IPinfo 的调查方法。

下图展示了各匿名服务商宣称的国家数量与 IPinfo 在实际流量中测得的国家数量之间的重合度。百分比越低,表示该服务商的宣称列表与 IPinfo 的实测数据越吻合:

注:为了确保服务商之间的比较尽可能公平,并获得足够的数据进行分析, IPinfo 在研究中使用了最通用和广泛支持的技术。但这可能并不代表每个服务商的全部覆盖范围。

这些都是匿名服务行业中最著名的平台,它们的网站上通常列有长长的国家列表。仅有三家在 IPinfo 测试的所有国家中均未发现不匹配物理位置情况:Mullvad、IVPN 和 Windscribe

国家位置的不匹配意味着:如果你选择某个匿名服务,是因为它宣称覆盖“100+ 国家”,你需要知道,这些区域中有很大一部分不是真实物理位置所在,即“虚拟位置”。

当匿名服务允许你连接到例如“巴哈马”或“索马里”时,意味着流量并不真的经过那里。在许多情况下,服务器位于完全不同的地方,比如迈阿密或伦敦,但在界面上却显示为你的流量位于你选择的国家。

这种设置被称为虚拟位置(Virtual Location):

如果没有主动的网络测量,大多数 IP 数据库只能依赖 IP 所有者自行通知互联网注册机构,或在 WHOIS/Geofeeds 中发布信息:这是一个自述的国家标签。如果该记录是错误的或过时的,错误就会广泛传播。

这正是 IPinfo 的 ProbeNet 发挥作用的地方:通过从全球 1,200 多个接入点运行实时的 RTT(往返时间)测试, IPinfo 将每个 IP 锚定到其现实世界的物理位置,而不仅仅是它宣称的位置

在整个数据集中, IPinfo 发现有 97 个国家 至少在某一家匿名服务品牌中仅作为虚拟位置出现,或者无法在 IPinfo 的数据中测量到。换句话说,对于世界地图上相当大的一部分,匿名服务平台中的某些“位置”,从未在 IPinfo 的测量中显示为真实的出口。

IPinfo 还发现 38 个国家 的情况更为极端:至少有一家匿名服务宣称支持这些国家,但在 IPinfo 的样本中,没有任何一家服务商在这些国家产生过稳定、可测量的出口流量。

你可以将这 38 个国家视为本研究中的“不可测量”区域,它们存在于服务器列表、配置文件和 IP 地理位置信息流中,却从未作为实际的出口国家出现在 IPinfo 的测量中。它们并非随机分布,而是集中在地图的特定区域。按区域划分如下:

IPinfo 关于 20 家主流匿名服务平台的真实位置报告

这并不能证明这些国家在全球范围内完全没有匿名服务基础设施。但这确实表明,在 IPinfo 测量的服务商和位置中,主流模式是从其他地方为这些位置提供服务。

为了更具体地说明这一点,让 IPinfo 看看在 IPinfo 的数据集中,所有服务商都显示为虚拟位置的两个国家:巴哈马索马里

在 IPinfo 的测量中,有五家服务商提供标为“巴哈马”的节点:NordVPN、ExpressVPN、Private Internet Access、FastVPN 和 IPVanish

对于所有这些服务商,实测流量均位于美国,且通常与美国探测点的 RTT(往返延迟)都在亚毫秒级(小于 1ms)。

索马里仅出现在两家服务商的样本中:NordVPN 和 ProtonVPN

两家都在命名中明确标注了“摩加迪沙”,但这些 RTT 数据完全符合西欧流量的特征,与东非的流量特征完全不符。

尽管两家服务商都在标签上做足了功夫(例如“SO, Mogadishu”),但实际流量却位于尼斯伦敦,而非索马里。

到目前为止, IPinfo 讨论的是匿名服务的宣称与 IPinfo 实测数据的对比。但其他 IP 数据服务商通常不运行主动的 RTT 测试。它们依赖于自述的 IP 数据源,并通常假设如果一个 IP 被标记为“X 国”,那它一定就在那里。

在这些情况下,传统的 IP 数据库通常会“追随”匿名服务商的说辞:如果匿名服务将端点营销为 X 国,传统 IP 数据库也会将其放置在 X 国。

为了量化这一点, IPinfo 查看了 736 个匿名服务出口节点,其中 ProbeNet 的实测国家与一个或多个广泛使用的传统 IP 数据库不一致。

IPinfo 将 IPinfo ProbeNet 测得的国家(由 RTT 和路由支持)与其他 IP 数据库报告的国家进行比较,并计算了它们之间的距离。差距是巨大的:

ProbeNet 与传统数据集之间的中位误差约为 3,100 公里

在 ProbeNet 方面, IPinfo 拥有更强有力的延迟证据证明 IPinfo 测量的位置是正确的:

这正是当流量真正位于该国时你应该看到的数据,而不是相隔数千公里。

如果你能在一个具体的 IP 上看到这种行为,它会变得更加直观。

这是一个 匿名服务的出口 IP,ProbeNet 将其服务器定位在英国,且有本地探针的亚毫秒级 RTT 支持;而其他广泛使用的传统 IP 数据库将同一个 IP 定位在 9,691 公里之外的毛里求斯

🇬🇧 英国 vs 🇲🇺 毛里求斯 (ProtonVPN)

如果你想亲自验证,可以将该 IP 输入到像 ping.sx 这样的公共测量工具中,从不同地区运行 Ping 或 Traceroute。这类工具可以直观地展示延迟最低的位置。

ProbeNet 使用相同的基本原理,但在规模上有所不同: IPinfo 在全球维护着 1,200 多个观测点(PoP),因此 IPinfo 通常比网络较小的公共工具更能接近真实的物理位置。

如果你想体验更多真实的 IP 案例(不一定是 VPN),即 ProbeNet 和 IPinfo 定位正确而其他数据库错误的情况,可以在 IPinfo 的 IP 地理位置准确性页面找到更完整的示例集。

值得将技术原因与信任问题区分开来。使用虚拟或集中式基础设施确实存在技术上的合理性

从这个角度来看,虚拟位置可以是一种合理的妥协:你获得了区域性的 IP 和内容解锁能力,而服务商无需承担在脆弱环境中托管的负面影响。

有三件事改变了性质:

最后一点直接引出了 IPinfo 致力于解决的 IP 数据问题。

如果你是匿名服务用户,以下是本次研究的一些实用建议:

归根结底,这并不是反对匿名服务,甚至不是反对虚拟位置。这是对诚实和证据的呼吁。如果匿名服务商希望你信任那张区域位置地图,他们应该愿意并且能够证明它与底层的真实网络相符。

大多数传统 IP 数据提供商依赖于区域互联网注册管理机构(RIR)的分配数据,以及围绕路由和地址块的启发式方法。这些提供商通常会接受自述数据,如客户反馈、更正和 Geofeeds,而没有明确的验证方法。

IPinfo 采用测量优先的方法:

这种测量优先的方法在 IP 数据领域是独特的。一旦 IPinfo 意识到自述数据带来了多少不准确性, IPinfo 就开始大力投资研究并构建 ProbeNet,以大规模使用主动测量。 IPinfo 的目标是使 IP 数据尽可能基于证据,并通过观察互联网的实际行为进行验证。

IPinfo 像一个怀疑但技术资源充足的用户一样,处理这项匿名服务调查:从匿名服务自己的宣称开始,然后测试它们。

对于 20 家匿名服务商中的每一家, IPinfo 汇总了三类数据:

接下来, IPinfo 使用 IPinfo 基础设施和 ProbeNet 拨入这些位置并观察实际发生的情况:

现在 IPinfo 对每个位置有了两个视图:

对于每个明确指定了国家的位置, IPinfo 要问一个非常简单的问题:预期国家与实测国家是否匹配?

如果是, IPinfo 将其计为匹配。如果不是,它就变成了不匹配:即应用程序说是一个国家,但流量在其他地方流出。

IPinfo 特意使用了非常狭义的“不匹配”定义。要计入不匹配,必须满足两个条件:服务商必须明确宣称特定国家(在其网站、应用程序或配置中),并且 IPinfo 拥有 ProbeNet 对该位置背后出口 IP 的直接主动测量数据。

IPinfo 忽略了任何营销模棱两可的位置、 IPinfo 未直接测量到出口的位置,或者 IPinfo 只有较弱提示(如主机名字符串、注册数据或第三方 IP 数据库)的位置。这些信号可能是有用且真实的,但 IPinfo 希望 IPinfo 的数字尽可能无懈可击。

结果是, IPinfo 在此展示的不匹配率是保守的如果采用更宽松的方法并依赖那些额外的提示,数字几乎肯定会更高,而不是更低。

iPhone 修改 iOS 通话录音提示音指南

By: Anonymous
17 November 2025 at 17:17

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

iOS 26 中,Apple 终于引入了原生通话录音功能。出于隐私合规考虑,系统会在录音开始时强制播放 “This call is being recorded” 的语音提示。对于希望静默录音或自定义提示音的用户,目前唯一的解决方案是利用沙盒逃逸漏洞。

macOS

https://github.com/34306/bl_sbx

Windows

Use the bl_sbx exploit to hide the call-recording notification sound on iOS – YangJiiii/Disable-Call-Recording-BookRestore-

该方案并非传统的“越狱”,而是一种沙盒逃逸(Sandbox Escape)技术。它利用了 iOS 系统中两个守护进程之间的信任机制缺陷,实现对受限文件系统的写入。

在操作前,请务必备份数据,避免风险。

iPhone 修改/去除 iOS 通话录音提示音

由于目前自动化工具(如 Misaka26)尚未完全适配,使用 Python 脚本进行手动替换是较为稳妥的方式。

你需要一台电脑,并配置好 Python 3 环境。

你需要准备一个用于替换系统原声的音频文件。

iPhone 连接至电脑,并确保已点击“信任此电脑”。

操作完成后,请按照以下步骤验证是否成功:

BayMax-Trader 开源 - nof1 在 A 股以及每股市场的竞技

10 November 2025 at 09:56
KunpengTalk:

BayMax-Trader 基于 AI-Trader 项目优化而来,让五个不同的 AI 模型,每个都采用独特的投资策略,在同一个市场中完全自主决策、竞争,看谁能在纳斯达克 100 或上证 50 交易中赚得最多!

🎯 BayMax-Trader 特色 🎨 nof0 现代化主题: 全新设计的 Web 界面,采用现代化设计语言 📱 响应式设计: 完美适配桌面和移动设备 🌙 主题切换: 支持深色/浅色主题,提供个性化体验 📊 增强可视化: 更直观的图表展示和数据分析 🚀 性能优化: 更快的加载速度和更流畅的交互体验 🎯 核心特性 🤖 完全自主决策: AIAgent100%独立分析、决策、执行,零人工干预 🛠️ 纯工具驱动架构: 基于 MCP 工具链,AI 通过标准化工具调用完成所有交易操作 🏆 多模型竞技场: 部署多个 AI 模型( GPT 、Claude 、Qwen 等)进行竞争性交易 📊 实时性能分析: 完整的交易记录、持仓监控和盈亏分析 🔍 智能市场情报: 集成 Jina 搜索,获取实时市场新闻和财务报告 ⚡ MCP 工具链集成: 基于 Model Context Protocol 的模块化工具生态系统 🔌 可扩展策略框架: 支持第三方策略和自定义 AIAgent 集成 ⏰ 历史回放功能: 时间段回放功能,自动过滤未来信息 https://github.com/jwangkun/BayMax-Trader

https://github.com/jwangkun/BayMax-Trader/blob/main/README_CN.md

我们都是加拉格

9 November 2025 at 23:55
imjiaoyuan:

本篇是对 2025 年 9 月至 11 月的记录与思考。

原文地址: https://github.com/imjiaoyuan/blog/issues/39

这一个月其实就是在四处奔波,忙着做老师安排的课题,中途还去彭州和乐山出了两次外业,前两天才回来,在峨眉山的观音湖旁边采样,一整天都在山上跑,虽然很累,但是好在和师兄们聊天很有意思,那里的风景也不错。

无耻之徒

《无耻之徒》这部美剧,我早有耳闻,但真正观看时,内心依然受到了巨大的震撼。它所展现的生存法则与生命状态,以及其中折射出的中美价值观的巨大差异,都远超我的想象。 我未曾踏足美国,对其社会的了解多半源于新闻或影视作品的有限描摹。但《无耻之徒》却撕开了一道口子,让人窥见一个无比真实的美国底层社会。或许有人觉得剧情夸张,但回想 2020 年美国大选的种种闹剧——游行、抗议、对峙与撕裂,其刺激程度远超任何剧本。那些在我们看来近乎天方夜谭的景象,在彼岸却是真实上演的日常。 大多数影视剧描绘的是我们遥不可及的人生:医生、律师、精英、英雄……我们沉迷其中,是为了体验一种幻想。但《无耻之徒》却将镜头对准了我们自己——挣扎的普通人。我们真正的生活是什么样的?

  • 是像 Frank 一样,在得过且过中苟且偷生;
  • 是像 Fiona 一样,背负着不知从何而来的沉重责任;
  • 是像 Lip 一样,被原生环境拽离本应璀璨的人生轨道;
  • 是像 Ian 一样,在真爱与沉沦的边缘无助摇摆;
  • 是像 Debbie 一样,看似勇敢却无力承受自己选择的后果;
  • 是像 Carl 一样,企图拥抱邪恶,却无法欺骗那颗悲悯之心;
  • 是像 Liam 一样,身处这个操蛋的世界,却依然感受着爱与被爱。

我们,都是 Gallaghers 。生活或多或少地击败了我们每一个人。很多时候,我们想不通,或者即便明白所有道理,依旧过不好这一生。但我们唯一确信的是,无论如何,都必须走下去。

博客再改版

自大一开始,我就开始写博客了,但前面很多的时间都花在寻找一个合适的博客上面,最初我使用的是博客园,虽然博客园的界面看上去比较古老,但它却实在是国内技术论坛中的一股清流,当 CSDN 等大肆塞入广告、会员机制的时候,博客园始终如一,所以大一的时候我将使用 Linux 的经历和学习 Python 的笔记都放在上面了,但后来发现,还是有一些弊端,后来使用华为云开发者社区、腾讯云开发者社区等,都有同样的一些问题:

  • 文章需要审核
  • 界面无法自定义个性化(博客园可以自定义 css )
  • 无法设置自定义域名
  • 只能在网页上写,且体验一般

于是乎,就走上了自建博客之路。


在学长的推荐下,第一次使用了 Hexo 博客框架,最初使用的是一款仙人掌主题 hexo-theme-cactus,简约大气,但还是有一些问题:

  • 评论系统只有 disqus 和 utterances
  • 加载速度很慢(当时不会自己加速静态资源)
  • 代码高亮很丑

当时为了加载速度快,我使用的是 gitee pages ,每次都要自己手动刷新网页,很不爽,而且速度貌似也不是那么的快,如果静态资源太多,还是依旧的慢。

后来又用了一段时间的 stellarkeep 主题,但似乎加载速度都不是很如意,加上当时水平差,不会对一些 css 、js 文件进行加速,导致问题无法解决。不过一个进步就是,从最初的 gitee pages 换成了 GitHub + Vercel + 自定义域名。


再到后来就是 Butterfly 主题了,从最初只会改默认配置到后面逐渐学会自己写 css 修改样式、自建了图床保证稳定性、使用国内 npm 镜像源对静态资源进行加速等,学会了很多东西,也将博客收录到百度、必应和谷歌,到现在这个博客仍未下线,还可以打开,不过过段时间还是要下线了,在 Blog 还能查看。不过这个博客还是有一些不如意的地方:

  • 运维困难,每篇文章都有一个封面图+顶部图,感觉麻烦
  • hexo 编译速度很慢
  • hexo 本地调试每次都需要 hexo cl && hexo g && hexo s ,不能实时预览
  • 不够极简
  • 版本依赖严重,更换 cdn 时版本号有一点点差别都不能用

综合以上原因,我放弃了 hexo 博客。


在看到少数派的一篇文章 浅谈我为什么从 HEXO 迁移到 HUGO 之后,我试了一下 hugo 博客,使用的是 LoveIt 主题,感觉很不错,自己修改了一些个样式,让其保证极简,评论系统用的是 waline ,个人认为 hugo 的优点有下面几个:

  • 编译速度快,得益于 go 语言
  • 不依赖 nodejs
  • 网页的速度也比较快(个人感觉)
  • 界面简洁大方
  • 各式的模板很好用

综合以上特点,我最终使用了 hugo 博客。博客的框架为极狐 Gitlab 代码托管 + Vercel 部署 + Cloudflare DNS 解析,由于国内 GitHub 被墙,经常 push 不上去,我那个时候也不常开梯子,所以用极狐 Gitlab 的 CI/CD 功能,部署博客到 Vercel 。


后来极狐 Gitlab 全部收费,我只能放弃,直接用 GitHub ,框架还是 hugo ,不过更简单粗暴,直接用 Action 部署到 GitHub pages ,主题也用 Mainroad,根据 云风 blog 魔改,这一用就是两年多,后面进行了一些小的修改,比如加上不蒜子统计和基于 js 重写的搜索功能等。

(公众号上扒下来的图片,上面是自己改的 Hexo 主题,下面是自己改的 Hugo 主题,模糊到看不清了😂)


我的域名也进行了几次更换,从 hieroglyphs.top -> yuanj.top -> jiaoyuan.org 后面会在jiaoyuan.org下面放上个人主页。


前段时间我在学基因组选择育种,其中涉及到很多公式,我发现主题就有问题了,许多公式无法正确解析,甚至会出现内容溢出的问题。我实在厌倦了这种反反复复的修补工作,现在其实我完全可以用 Python 加一个前端框架很轻易地写出一个博客框架,但是没有意义,反而我需要因为各种各样的问题不断地修改,实在是太耗精力了。所以我想,直接用 GitHub Issues 当博客吧,用 Python 来创建新文章,并且为了本地化编写和使用盘古插件,我的思路是在本地写博客,然后推送到仓库使用 Actions 转为 issue 进行展示,GitHub 的渲染效果很好,简单大方也很漂亮。而且 commit 也可以直接用 RSS 来订阅,感觉什么都准备好了,评论和补充内容直接在 issues 下面追更或者创建 sub-issue 就行,很省心了,以后就打算一直用 issues 了。为了使得修改文章方便,创建新文章的时候,会为文章创建一个 6 位数 id 作为 issues 的唯一标识。我的博客在 此仓库


这里我写的东西实际上并没什么技术含量,只是我自己的一些思考、记录什么的,我也欢迎有朋友来一起交流一些思考或者技术相关的东西。我也希望这里写下的这些东西能够为后来的朋友提供一些思路与想法,尽量少走弯路,当然,这里的东西大多都是我自己的看法罢了。

我在网上看到过很多博客,大部分都是写了没多久就不再更了,只留下一些以前的东西飘荡在互联网上,希望自己能坚持下去吧,我比较喜欢文字的东西,而博客正好可以让我施展一番。期待多年以后的自己还在这个地方写东西。

WSL 再见

终究还是换掉了 WSL2 ,因为现在我恍然发现,我似乎并没有必须要使用 WSL2 的必要了,那自然也不必要浪费那么多硬盘和内存去跑一个虚拟机了,WSL2 目前还是有不少问题的:

  • WSL2 的 DNS 解析设置在/etc/resolv.conf文件中,在 WSL2 启动时自动生成,但是近期老是会出现网络无法正常解析的情况,其实把自动生成关掉,改为自己指定 DNS 解析地址就行了。新建文件/etc/wsl.conf,设置generateResolvConffalse,然后把resolv.conf的内容改成谷歌或者 Cloudflare 的 DNS 解析地址。
  • WSL2 的硬盘占用问题,设置了稀疏矩阵之后可以回收一部分空间,但是不能完全收回,并且设置了稀疏矩阵后就不能手动扩大或者压缩 vhd 了 ... 这也太抽象了。
  • WSL2 的 CPU 和内存占用问题,自从 2.0.0 版本就增加了实验性的内存回收功能,现在依然是一坨,设置了自动回收,依然会占用很多内存,即使什么都不运行 ... Hyper-V 都比它好得多。

现在的 WSL2 能带给我的就是一个熟悉和舒适的环境,转念一想,现在分析都在实验室的服务器跑了,自个也没必要弄本地 Linux 环境了,索性换掉了,后面如果本地需要,开一个 Hyper-V 虚拟机也能很舒服的用。搭建的 Windows 开发环境中,多数的软件和应用还是由 scoop 安装的,这个之前说过就不多说了,主要又用了下面几个工具,让 Windows 下写代码变得很舒服:

  • uv ,scoop 中安装的 Python 是最新版,安装很多 pip 包的时候经常要编译,老出问题,而且 Python 安装的时候会卡很久,所以我直接删掉了,用 uv 来管理 Python 的版本和第三方库,用什么东西直接uv pip install xxx,指定虚拟环境运行 py 脚本也很方便。
  • gow:专为 Windows 系统设计的轻量级命令行工具集,定位为 Cygwin 的替代方案,通过集成 Linux 环境工具扩展 Windows 命令行功能。让我在 powershell 里面也能用 awk 、grep 、plink 、sed 、tar 、vim 、wc 等 unix 命令,虽然 git bash 也自带了,但是不能在 powershell 里面用,所以 gow 发挥了很大作用。
  • rtools ,编译安装 R 包,scoop 安装的 R 也是最新版,所以很多 R 包可能会需要用 GitHub 编译安装。

不过 Windows 下写代码还是面临一些让人很恶心的问题:

  • 令人难受的反斜杠,用习惯了 bash 的/作为路径划分,ps 的\看着实在是难受。
  • Windows 的变态路径,默认路径不分大小写、可以有空格,但是代码里面不行 ... 还是得注意这个问题。

总的来说,除了 powershell 还是一如既往的难用之外,其他的还是蛮好的。哦对,在我的印象中,Windows11 上的 powershell 已经是很好用的了,1809 那时候的 ps 简直难用的要命,虽然还是比 bash 差很远,但是已经好多了,我一直不理解为什么 ps 的命令行参数要那么长 ... 虽然补全地不错,但是看着就很头大。

PS D:\Projects> neofetch
        ,.=:!!t3Z3z.,                  JiaoYuan@DESKTOP-DMFFQUF
       :tt:::tt333EE3                  ------------------------
       Et:::ztt33EEEL @Ee.,      ..,   OS: Windows (Unknown) x86_64
      ;tt:::tt333EE7 ;EEEEEEttttt33#   Uptime: 2 days, 20 hours, 34 mins
     :Et:::zt333EEQ. $EEEEEttttt33QL   Shell: bash 5.2.37
     it::::tt333EEF @EEEEEEttttt33F    DE: Aero
    ;3=*^```"*4EEV :EEEEEEttttt33@.    WM: Explorer
    ,.=::::!t=., ` @EEEEEEtttz33QF     WM Theme: Custom
   ;::::::::zt33)   "4EEEtttji3P*      Terminal: Windows Terminal
  :t::::::::tt33.:Z3z..  `` ,..g.      CPU: Intel Ultra 7 155H (22) @ 3.000GHz
  i::::::::zt33F AEEEtttt::::ztF       Memory: 14455MiB/32373MiB
 ;:::::::::t33V ;EEEttttt::::t3
 E::::::::zt33L @EEEtttt::::z3F
{3=*^```"*4E3) ;EEEtttt:::::tZ`
             ` :EEEEtttt::::z7
                 "VEzjt:;;z>*`

PS D:\Projects>

再谈使用 Linux 的经历

前几天和朋友聊天,正好聊起这个问题,不免又想回顾一下这么多年用 Linux 的经历😂,之前其实写过,但是这里想再写一些新的感受:

记得大一那年,想自己决定系统的模样,于是盯上了 Linux 。当时去加入计算机社团,还想着学下 Linux ,后来慢慢发现,学长们懂得是如何用 Linux 编程,而非了解 Linux 发行版,他自己可能都不知道 Ubuntu 上可以安装原生的腾讯会议,还是我后来告诉他的 ... 最开始装的发行版我记得是 Ubuntu ,傻瓜式安装,点点点就行,甚至双系统也能由安装介质自动划分,但是当时没搞明白包管理器这些东西,对 Linux 还没有个系统的认识,只是有什么问题就打开百度搜,深受 CSDN 上垃圾内容的影响,输入法都装的很困难。后面又试了 deepin ,但是我在应用商店安装应用总是会出现问题,当时并不清楚是源的问题,我只能四处搜索,搜不到就重装系统。deepin 之后就是优麒麟,这个纯垃圾,我都不想多说,deepin 是国内开源之光。最初用 Ubuntu 和 deepin 纯纯是因为网络上到处都推荐这俩,而且简中互联网能搜到的文档资料( shit )也最多,可以说是深受荼毒了。

后来也装了 Debian 、Fedora 、linux mint 啥的,但是装啥其实都不咋好用,因为没有基础知识啊,所以都没用多久,倒是 manjaro 坚持了一段时间。后面发现,这样不行啊,天天装系统算怎么回事,当时了解到 WSL ,于是这一用就是三四年,安安稳稳的,可以用 Windows ,还能用 Linux ,何乐而不为?当时我记得照着 Arch Wiki 折腾了很久 Arch WSL🤣QQ 群里老问别人问题,人家都烦了,劝我直接物理机上 Arch ,但是我当时很虚啊,学长说 Arch 很容易滚挂,用起来很累,其实我现在想想,他当时可能都没装上 ... 只是看网上这么说而已,毕竟他自己笔记本都用着 360 ,满屏幕都是广告。

记得当时我也折腾了虚拟机,有一次碰巧去听了一会计算机学院的算法课,我看老师是用 Xshell 连接 VMware 里的 CentoOS7 来写代码的(刚开始不知道,搜了很久才知道),但是苦在轻薄本配置太低,试了很多个 VMware 的版本,选了 VMware11 ,功能够用,冷启动也够快,分了 1GB 给 CentOS7 ,用了一段时间还是换掉了,因为很难受啊,所有操作都得在命令行里,当时也不知道用 VScode 去 ssh ,所以兜兜转转还是用了 WSL2 。

WSL 用的久了,慢慢的对 Linux 的各种知识也就多了起来,逐渐就知道该怎么用了,所以当大三我组了台式机之后,立马先装了 Debian ,出乎意料,很成功,各种软件都搞起来了,用了蛮久一段时间,之前的博客和 B 站也发过:

Debian 用了一段时间,我又不满足了,尝试装了 Arch ,也很成功,而且有一说一,Arch 虽然安装麻烦,但是安装的过程中确实对系统有了很深的了解,装好之后,出现什么问题自己都能解决,哪怕进不了系统,插上 live CD 一样可以修好。并且用了 Arch 之后我就不再会去网络上乱搜东西了,全部查 Wiki ,英文 Wiki 其实很全,基本上什么都有。当时也将这些过程写了下来:

后面我在原先的笔记本上又试了 Arch 、linux mint 和 lmde6 ,我很倾向于使用 lmde ,结合了 Debian 和 linux mint 的优点,但是无奈后面办公需要 Windows ,只能格盘换回了 LTSC 2021 。

考研前夕,我又换了新电脑,最开始还是安装了 Arch Linux ,那会觉得 Windows11 实在太难用了,还是喜欢 Arch ,但是遇到很多问题,那时候也忙着复习,实在不想太浪费时间,所以换了 Windows 10 一直用着。毕业后,暑假回家了一段时间,我又拾起了这个想法,最后成功解决了所有问题,但是似乎,心累了?我突然觉得,继续折腾下去更像是一种执念。在实际工作和学习中,许多软件在 Windows 下确实有更好的体验,我没有必要为此委屈自己,所以最终用了 Windows11 ,可能是年龄大了点,现在读研后更没有心思折腾,Windows11 用到底了,不知道这是进步还是倒退。

obsidian

最近新学期了,要学习很多东西,所以肯定需要一个好的记事本来记下东西,找来找去,还是 obsidian 最合适,记得之前用 obsidian 也是大二的时候,那时候各种乱七八糟的东西都记在 obsidian ,但是我当时觉得 ob 用起来麻烦,各种功能花里胡哨的我用不上,所以转用 VScode 。现在不知道为什么,忽然觉得,obsidian 很舒服,搭配 git 私有仓库,简直很完美,我需要的各种功能都有,配置好一次之后就不需要再管了,git 可以版本管理,每次写完后点一下就能同步,实在很好用。不知道当时我是怎么想的,可能人长大了就是会变得不一样吧。obsidian 里面我主要用下面几个插件:

  • PanGu ,强迫症必需了吧,格式化 markdown 文档内容
  • Custom Attachment Location ,自定义文档附件的位置和文件名格式
  • Git ,为 obsidian 提供图形化的版本管理
  • Mermaid Tools ,让 obsidian 文档可以解析 mermaid 图表
  • Mindmap NextGen ,让 obsidian 支持 markmap 思维导图

主动地接受信息

我一直以来都是很喜欢用 RSS ,因为这样可以避免推荐算法带来繁杂的信息,让我不用从各种渠道眼花缭乱的信息中找出我所需要的,这是一个主动获取信息的过程。我用了很多 RSS 客户端,但是觉得很多都很繁琐,这个软件并没有必要很复杂,所以我觉得,不如自己写一个,于是有了 feeds,使用 GitHub Actions 定时运行 Python 脚本来抓取 RSS ,并且通过 QQ 邮箱发送到我手机上的 Gmail 。

使用很简单,fork 仓库,将代码 clone 下来,修改config.py

import os

RSS_FEEDS = {
    'Blog Posts': [
        "https://blog.ursb.me/feed.xml",
        "https://thiscute.world/index.xml",
        "https://polebug.github.io/atom.xml",
        "https://hellogithub.com/rss",
        "https://www.longluo.me/atom.xml",
        "https://1q43.blog/feed/",
        "https://manateelazycat.github.io/feed.xml",
        "https://www.ntiy.com/feed",
        "https://feeds.feedburner.com/ruanyifeng",
        "https://cyp0633.icu/index.xml",
        "https://lutaonan.com/rss.xml",
        "https://idealclover.top/feed",
        "https://www.eaimty.com/rss.xml",
        "https://www.xheldon.com/feed.xml",
        "https://diygod.cc/feed",
        "https://www.darknavy.org/zh/index.xml",
        "https://tw93.fun/feed.xml",
        "https://blog.ferstar.org/atom.xml",
        "https://blog.lilydjwg.me/feed",
        "https://forums.debiancn.org/c/5-category/5.rss",
        "https://www.lainme.com/feed",
        "https://szclsya.me/zh-cn/index.xml",
        "https://bigeagle.me/index.xml",
        "https://yufree.cn/cn/index.xml",
        "https://www.tianxianzi.me/index.xml",
        "https://thirdshire.com/index.xml",
        "https://wangyurui.com/feed.xml"
    ],
}

RECEIVER_EMAILS_LIST = [
    "imjiaoyuan@gmail.com",
]

EMAIL_CONFIG = {
    'smtp_server': os.getenv('SMTP_SERVER'),
    'smtp_port': int(os.getenv('SMTP_PORT', 465)),
    'sender_email': os.getenv('SENDER_EMAIL'),
    'sender_password': os.getenv('SENDER_PASSWORD'),

    'receiver_emails': RECEIVER_EMAILS_LIST
}

RSS_FEEDS是 RSS 订阅源地址,RECEIVER_EMAILS_LIST就是接收 RSS 的邮箱地址,可以设置多个,EMAIL_CONFIG则是 GitHub Actions 的仓库密钥,这里填入 QQ 邮箱的 SMTP 服务器信息和授权码即可,每天早上六点钟就会抓取新的 RSS 发送到邮箱。

阅读

GitHub

  • bio-ontology-research-group/deepgoplus: DeepGO with GOPlus axioms
  • 666ghj/BettaFish: 微巢:人人可用的多 Agent 与舆情分析助手,打破信息茧房,还原舆情原貌,预测未来走向,辅助决策!
  • sambecker/exif-photo-blog: Photo blog, reporting EXIF camera details (aperture, shutter speed, ISO) for each image.
  • huiyadanli/RevokeMsgPatcher: A hex editor for WeChat/QQ/TIM - PC 版微信/QQ/TIM 防撤回补丁(我已经看到了,撤回也没用了)
  • idinging/freemail: Cloudflare 域名邮箱系统搭建 domain mail tempmail
  • plutov/gitprint: Convert Github repositories to PDF books
  • RohanAdwankar/oxdraw: Diagram as Code Tool Written in Rust with Draggable Editing
  • chaitin/PandaWiki: PandaWiki 是一款 AI 大模型驱动的开源知识库搭建系统,帮助你快速构建智能化的产品文档、技术文档、FAQ 、博客等系统,借助大模型的力量为你提供 AI 创作、AI 问答、AI 搜索等能力
  • Cloufield/gwaslab: A Python package for handling and visualizing GWAS summary statistics.
  • puppeteer/puppeteer: JavaScript API for Chrome and Firefox
  • jgm/pandoc: Universal markup converter
  • browseros-ai/BrowserOS: The open-source Agentic browser; privacy-first alternative to ChatGPT Atlas, Perplexity Comet, Dia.
  • docling-project/docling: Get your documents ready for gen AI
  • zyedidia/eget: Easily install prebuilt binaries from GitHub.
  • SteamRE/DepotDownloader: Steam depot downloader utilizing the SteamKit2 library.
  • Hzao/PocketChest: Secure, serverless file and text sharing built on Cloudflare with large file support.
  • microsoft/win32-app-isolation: Tools and documentation for Win32 app isolation
  • lxgw/LxgwWenKai: An unprofessional open-source Chinese font derived from Fontworks' Klee One. 一款非专业的开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生
  • nickrunning/wechat-selkies: 基于 Selkies 的 Linux 网页版微信/QQ ,支持本地中文输入法,支持 AMD64 和 ARM64

音乐

  • 谢谢你的爱 - 金润吉
  • 恋愛サーキュレーション - Renai Circulation
  • 回不去的夏天 - 夏日入侵企画
  • 这是我一生中最勇敢的瞬间 - 棱镜
  • 只是太爱你 - 张敬轩
  • 枫 - 周杰伦
  • Letting Go - 蔡健雅
  • 水中花 - 谭咏麟
  • 水中花 (Live) - 郁可唯
  • 风吹麦浪 - 李健
  • 梦醒 - Handsome Lau, Hypeezy 和冯泳
  • 入秋 - T-BONE, 江南江和 TRAKINXRAMBO GANG
  • 如果爱忘了 (Live) - 汪苏泷和单依纯
  • 你是我的风景 - 何洁
  • 染缸 - 楊和蘇 KeyNG 和 JinJiBeWater_隼
  • 需要人陪 - 王力宏
  • 月球上的人 - 陈奕迅

国内反诈反的那么认真,为什么几乎所有的 DNS 都不上 DNS sec 呢?

By: zanx817
9 November 2025 at 22:45
zanx817:

最近发现,通过 DIG 工具解析域名时可以通过 flags 中是否包含“ad”( Authenticated Data )字样识别。

下面 233.5.5.5 、180.184.1.1 、114.114.114.114 等分别是阿里云、腾讯、百度、字节跳动的 DNS 检验结果。

国内竟然都不支持 DNSSEC ,难不成是为了方便劫持?

(base) ➜  ~ dig +dnssec cf.com @180.184.1.1 |grep QUE|grep flags
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
(base) ➜  ~ dig +dnssec cf.com @119.29.29.29 |grep QUE|grep flags
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
(base) ➜  ~ dig +dnssec cloudflare.com @180.76.76.76 |grep QUERY |grep flags
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
(base) ➜  ~ dig +dnssec cloudflare.com @114.114.114.114 |grep QUERY |grep flags
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
(base) ➜  ~ dig +dnssec cloudflare.com @114.114.114.114 |grep QUERY |grep flags
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
(base) ➜  ~ dig +dnssec cloudflare.com @8.8.8.8 |grep QUERY |grep flags
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
(base) ➜  ~ dig +dnssec cloudflare.com @1.1.1.1 |grep QUERY |grep flags
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

沉浸式痛苦

By: Anonymous
1 November 2025 at 14:37

DUN.IM BLOG

DUN.IM BLOG

朋友向我哭诉,分手半个月之后突然又劈面重逢,于是自己感觉心湖里掀起滔天巨浪,悲痛得不能自已。

因此,请求我「给两耳光」,好把他打醒。

我没这个本事,如果两耳光就能把分手的痛苦抽走,那我家早就门槛踏烂,50 块钱一次我能把我的右手直接做到上市。而且,用一种痛苦克服另外一种痛苦这种事情,我本身就不认可。一个人不能因为吃重庆火锅辣到双眼流泪,就让别人给自己的屁股上涂一点氨水。不会有任何缓解的,只会嘴巴火烧火燎,同时屁股也火烧火燎。

说到这里,分手和辣味的原理应该是一样的。分手是一种痛觉,辣味也是一种痛觉。为了缓解辣味,各种偏方让人喝冰水喝牛奶啃黄瓜嚼巧克力,这里面大半都没有任何用,剩下的和处理方式是否及时,个人体质是否符合有关。

真正有效的只有时间,当你忙着去找这些东西,上气不接下气时,时间悄悄流逝,辣味素对你的刺激会渐渐衰减。

但人类太脆弱,不能直接给出这个答案,那样会让人在痛苦的同时又陷入绝望。纵然是屁用没有,一个人嘴里着了火,满心想着「找到冰水就好了」、「喝了牛奶就好了」之类的念头,痛苦就不那么难熬,也就容易忍受一些。

唯有极度理性冷静的人,才会告诉自己顺其自然,默默承受,坚信这是最好的方式,痛苦的感觉终将过去,反而是喝下太多冰水容易造成窜稀,胃也没有空间继续吃火锅,那就亏大发了。

分手也是一样。并不因为我现在中老年了,有了些见识,有了些经验,我就可以违背痛苦的化学定律,让这段人人都需要生受的时间无限缩短。一次分手的痛苦可以维持长达 365 天,我正反手两耳光之后,这种痛苦最多缩短到一年而已—大概就是这么一种换算方式。

除了痛苦物质随时间中和稀释这一化学定律之外,分手也遵循物理学中的牛顿力学定律,也就是力与反作用力定律。一个人感受到多大的分手痛苦,取决于当初这个人爱得有多深,有多投入。当这些炽热的力量反过头来对付自己的时候,爱恋和痛苦是等效的。

也就是说,如今感受到汹涌的痛苦,是因为曾经汹涌地爱过。如今感受到窒息般的痛苦,是因为曾经爱到窒息。

如果要实话实说,那我会直接回答:除了时间,没有什么东西可以平复分手的痛苦,不用去妄想立即可以从中解脱出来。如果有能力即刻解脱,那么就无法解释当初为什么会爱上。

如果要站在老登的角度来说,那我只会恭喜每一位因为分手的折磨而死去活来的人,并且希望各位铭记这种痛苦的鲜活感受。因为此刻如此痛苦难熬,证明了你曾经如此认真,如此投入,如此相信爱情。

随着年纪增长就会知道,认真和投入这种品格会逐渐消失,人们也会不再相信爱情,认为那不过是世间各种现实条件相互妥协下的副产品—有,固然很好,没有也很正常。

还能感受到痛苦,那是心中的天真尚未死去,你的认真和投入依然存在,你对爱情的信仰没有被现实算计取代。 这是一件多么美好的事情,而正在承受痛苦的你又是一个多么美好的人。

甚至我可以继续说,纵然这种痛苦此刻让你难于承受,但它本身也是一种多么美好的情感,一段多么美好的体验。因为总有一天你会长大成熟,你会变得现实,你会不再天真更不相信爱情。彼时分手对于你而言最多会带来一些失望或是愤怒,而刻骨铭心的痛苦却不再出现,因为你已经是个成熟的,冷静的,铁石心肠,把自己封闭起来戴上面具的大人了,你只为房价股价身价而痛苦。

所以,趁着现在还能感受到剧烈的痛苦,请沉浸式地体验一下这种强烈、鲜活的苦涩滋味吧。在平常时候,人很难觉察到自己的心。而在这种时候,借助于痛苦的侵扰,你可以发现你那颗年轻的、天真的、美好的心,它每次搏动都在流血,你因此知道它的存在。

之后你人生中所有的际遇,所有的成就,所有的人生色彩,都仰赖于它的力量。你得做个有心的人,你得感受到它在你胸骨后面跳动。当你感受它的力量在对付你的时候多么强大,你也就会相信它未来在对付世界时会有多么强大。

我知道,人在分手的时候想听的不是这些话,尤其是道理。只是想有个人倾听自己的痛苦,仿佛有人听到了,自己的喘息就会容易一些。所有分手的人都是同样的,当自己分手的时候,感觉是世界上第一次有第一个人在遭遇这样的事情,需要有谁见证一下。

很明显,我不是那个合适的人选。不过,反正人们对我期待也不是倾听,而是耳光,所以我说什么怎么说也没什么紧要。

总之,摸摸头吧。

谈人形机器人的未来应用

By: cloudzhou
7 November 2025 at 13:05
cloudzhou: 我之前对人形机器人是嗤之以鼻的,为什么必须按照人去设计?比如跑步,能比 4 个轮子的跑的快吗,手动作能比 6 轴机器人准确吗?
人形机器人能做的事情,工业机器人肯定做得更好

但是后来理解设计的要点,那就是,整个世界,是按照人类身体去设计的,除非改造现有的建筑,现有的各种布局结构
人体其实也是有足够优秀的点,相对大型机器,足够灵活,有手有脚,能弯能蹲,能走能跳能抓取
换句话说,你要搞个非特意模仿人类的机器人,但是做的事情和人一样,大概率也会很像人类
这就是为什么资本很乐于投入人形机器人

应用趋势来说:
我最近发现小区居然用无人机扫地了,你可以理解为一个很大的扫地机器人,还有激光雷达
这个事情让我蛮惊讶,因为在我印象里,这个应该要不少钱,而一个保洁阿姨一个月才多少钱

所以,是否应用,其实取决于投入产出,按照 x 周期收回成本,之后每年 y% 收益看的话
比如一个阿姨一个月 3k ,那么一年 3.6w ,10 年就要 36w
也就是说,如果这个机器 15w ,设计工作周期 10 年,那就可以应用了(甚至还可以按月租赁,每个月小于 3k 就可以了)

也就是只要人形机器人成本降到一个程度,就可以替代人类很多琐碎的场景了,这是特定工业机器人所不能覆盖的
类似常规家务活,照顾老人、残疾人等

2 分钟解读 AI 会脑腐的有意思研究

By: DUN
20 October 2025 at 16:23

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

2 分钟解读 AI 会脑腐的有意思研究

第一次看到时,我真的笑出声。但笑着笑着,就觉得有点不对劲了。

这个研究,可能说的就是我们自己。

https://llm-brain-rot.github.io/

首先,这研究不是段子,是来自德州 A&M、德州大学奥斯汀分校和普渡大学的硬核论文。简单来说,他们做了个实验:

实验流程图

把一个正常的 AI 大模型(对照组),和另一个被强迫刷了几个月推特、Reddit 等社交媒体的 AI 模型(实验组)进行对比,他们用了两种标准“垃圾信息”:

结果发现了不得了的事:

喂了垃圾数据后,AI 在推理、长文理解、安全等方面全面降智。

而且,这是一种 “剂量反应”:垃圾数据的比例越高,AI 就“脑损”得越厉害。

看个例子就明白了:

在一项叫“ARC-Challenge”的推理测试中(考验 AI 举一反三的能力),随着提供垃圾数据(M1 型信息标准)的比例从 0%增加到 100%,AI 的准确率从 74.9% 直降到 57.2%

下面这张表更直观,我从原论文里摘了几个关键数据(红色代表性能变差):

简单的说:AI 不仅降智了,还变得更不安全、性格更“黑暗”了。

研究人员对 AI 犯的错误进行了分析,发现最关键的是它学会了偷懒,也就是 不思考了。

Figure: thought skipping.

上图显示,在“脑腐”之后,对比基准,AI 思维的错误显著增多。它不再愿意进行一步一步的严谨推理,而是倾向于直接跳到结论,M1 的影响更是大于 M2。

这不就是我们在信息流里被训练出的习惯吗?

最让人难接受的是,这种“脑腐”基本不能治愈。

研究人员试着用大量高质量的“干净”数据去“修复”那个降智的 AI,结果发现效果相当有限。

Figure: Scale wash-out tuning.

即使经过大规模的“高质量训练”,性能也只能部分回升,始终无法恢复到基本水平。

这意味着,AI 的内部认知结构,或者说它的“世界观”,已经被永久性地改变了。

看到这里,你是不是也品出点别的味道了?

虽然研究的是 AI,但你很难不怀疑这个研究是在指桑骂槐。

如果 AI 会因为刷垃圾信息而变傻,那当前互联网信息环境里的我们呢?

仔细想想,我们身边是不是已经有太多迹象了:

“大学教授也可能转发每日口服 7 颗绿豆能够逆转高血压……的文章,学术训练的强度和社交网络垃圾文章洗脑的强度不可同日而语。”

我们以为自己是在驾驭信息,但很可能,我们只是在被网络信息洪流日夜冲刷,以为自己有足够的知识和阅历来抵御侵蚀,但长年累月的垃圾信息轰炸,可能正在不知不觉中重塑我们的大脑。

大脑的认知逻辑正在被悄悄地改变。

去查查那些著名社交平台的创始人,看看他们自己每天花多少时间在手机上?

你会发现一个很有意思的现象:很多产品的设计者,自己反而刻意与产品保持距离。这背后的原因,值得我们每个人深思。

一个小测试:

读到这里,你还记得这篇文章是怎么开头的吗?

想不起来也没关系。

这可能就是一个信号,提醒我们是时候让大脑从无休止的信息流中抽离出来,安静一会儿了。

为了保护你的脑子,现在,是不是该对我说声“谢谢”?🙂

Zen Privacy – 免费开源的桌面系统级广告拦截程序,替代 Adguard

By: Anonymous
7 October 2025 at 15:23

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

Zen Privacy

近期发现一款免费、开源的广告屏蔽软件「Zen,和 Zen Browser 网页浏览器同名,不过是完全不一样的工具。

Zen 更像是知名软件 AdGuard 免费替代方案,两者运作方式很类似,不仅仅在浏览器屏蔽广告,任何会通过网络连接的应用程序都能经由 Zen 进行广告屏蔽,随时保护用户免于安全和隐私的侵扰。

Zen 是强大的桌面应用程序,在用户浏览网络时自动屏蔽广告、追踪器或任何隐藏的威胁,本身相当快速、轻量化、无任何干扰,不用再去寻找各种浏览器扩展,只要 Zen 就能轻松做到!

如同 AdGaurd 它也自带强大的过滤器,支持各种类型的屏蔽规则,例如广告、隐私、恶意软件、36 个地区的屏蔽列表和设置清单等,也能将自己惯用的屏蔽清单加入设置规则,Zen 具有中文在内等多国语言,设计很简单,没有太多复杂或难懂的技术性选项。

依照网站说明,Zen 来自一个小团队,尊重用户隐私,不追踪或是收集任何资料,如果你正在寻找「系统层级」的广告屏蔽工具,它就是可以考虑的选择。

网站名称:Zen
网站链接:https://zenprivacy.net/GitHub

进入 Zen 官方网站后往下找到「下载」链接,可以找到 WindowsmacOS 和 Linux 版本,分别支持 x64、ARM64 两种不同的处理器类型。

Zen Privacy

举例来说我下载的是 Zen for macOS〔ARM64〕,下载、运行后将它拖曳到应用程序资料夹即可使用。

Zen Privacy

进入 Zen 主画面看起来像下图,点击下方「Start」按钮启动保护。

Zen Privacy

要注意的是第一次使用 Zen 会要求安装根证书〔Root Certificate〕,这是让 Zen 拦截、修改 HTTPS 请求的必须项目,证书是在本机生成,不会离开用户设备,大家熟悉的 AdGuard 也是使用相同机制。

Zen Privacy

接着先切换到「设置」页面后将语言调整为中文,有兴趣的朋友也可以去协助翻译一下。

Zen Privacy

在过滤列表可以启用、停止指定的过滤器,包含各种类型,包括通用、广告隐私、恶意软件、地区性和设置等,没有特别的需求就直接维持默认值即可,若有需要启动或是停用过滤器必须先将 Zen 防护功能关闭〔点击下方停止〕才能继续。

Zen Privacy

想从其他广告屏蔽工具转换到 Zen 也可以将设置规则导入,非常方便。

Zen Privacy

从 Zen「主页」就能看到网络流量被屏蔽、封锁的情形,包括存取方法、网址、来源、过滤器名称和规则等,当使用上有发现任何问题时也可以从这里找到过滤器,将指定的封锁路径关掉。

Zen Privacy

虽然说 Zen 是免费、开源广告屏蔽工具,完全不用花费任何一毛钱就能使用,而且也自带不少筛选器规则,在系统端进行过滤、屏蔽的好处是不用再寻找各种广告屏蔽扩展,只要一个应用程序就能搞定!除了浏览器以外,其他软件也都能有效。

App Store 超低价应用内购省钱技巧,不到60人民币开通 ChatGPT $20 的会员订阅

By: Anonymous
7 September 2025 at 15:28

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

实际上,大多数 App 和服务定价并非全球统一。如 OpenAI 和许多跨国科技公司一样,会采用“购买力平价(Purchasing Power Parity, PPP)”策略,即根据不同国家和地区的经济水平、人均收入来调整产品价格。

这便在全球市场中形成了一些“价格洼地”,其中,尼日利亚正是全球订阅 ChatGPT Plus 最便宜的地区。

全球部分地区价格对比:

整个流程的核心是在尼日利亚区的数字生态内完成支付闭环。

Anthropic 官方团队分享如何利用 Claude Code

By: Anonymous
20 July 2025 at 22:30

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

Anthropic 的内部团队正在利用 Claude Code 彻底改变他们的工作流程。无论是开发者还是非技术人员,都能借助它攻克复杂项目、实现任务自动化,并弥补那些曾经限制生产力的技能鸿沟。

为了深入了解,我们采访了以下团队:

通过这些访谈,我们收集了不同部门使用 Code 的方式、它对工作带来的影响,以及为其他考虑采用该的组织提供的宝贵建议。

数据基础设施团队负责为公司内所有团队整理业务数据。他们使用 Code 来自动化常规的数据工程任务、解决复杂的基础设施问题,并为技术和非技术团队成员创建文档化工作流,以便他们能够独立访问和操作数据。

利用截图调试 Kubernetes

当 Kubernetes 集群出现故障,无法调度新的 pod 时,团队使用 Code 来诊断问题。他们将仪表盘的截图喂给 Claude Code,后者引导他们逐个菜单地浏览 Cloud 的用户界面,直到找到一个警告,指出 pod 的 IP 地址已耗尽。随后,Claude Code 提供了创建新 IP 池并将其添加到集群的确切命令,整个过程无需网络专家的介入。

为财务团队打造纯文本工作流

工程师向财务团队成员展示了如何编写描述其数据工作流程的纯文本文件,然后将这些文件加载到 Claude Code 中,以实现完全自动化的执行。没有任何编程经验的员工只需描述“查询这个仪表盘,获取信息,运行这些查询,生成 Excel 输出”等步骤,Claude Code 就能执行整个工作流,甚至会主动询问日期等必要输入。

为新员工提供代码库导览

当新的数据科学家加入团队时,他们会被指导使用 Claude Code 来熟悉庞大的代码库。Claude Code 会阅读他们的 Claude.md 文件(文档),识别特定任务所需的相关文件,解释数据管道的依赖关系,并帮助新人理解哪些上游数据源为仪表盘提供数据。这取代了传统的数据目录和发现

会话结束时自动更新文档

在每项任务结束时,团队会要求 Claude Code 总结已完成的工作并提出改进建议。这创建了一个持续改进的循环:Claude Code 根据实际使用情况帮助优化 Claude.md 文档和工作流指令,使后续的迭代更加高效。

跨多个实例并行管理任务

在处理耗时较长的数据任务时,团队会为不同项目在不同的代码仓库中打开多个 Claude Code 实例。每个实例都能保持完整的上下文,因此即使在数小时或数天后切换回来,Claude Code 也能准确地记住他们当时正在做什么以及任务进行到哪里,从而实现了无上下文丢失的真正并行工作流管理。

无需专业知识即可解决基础设施问题

解决了通常需要系统或网络团队成员介入的 Kubernetes 集群问题,利用 Claude Code 诊断问题并提供精确的修复方案。

加速新员工上手

新的数据分析师和团队成员无需大量指导,就能迅速理解复杂的系统并做出有意义的贡献。

增强支持工作流

Claude Code 能够处理比人类手动审查大得多的数据量,并识别异常情况(例如监控 200 个仪表盘),这是人力无法完成的。

实现跨团队自助服务

没有任何编程经验的财务团队现在可以独立执行复杂的数据工作流。

编写详细的 Claude.md 文件

团队表示,你在 Claude.md 文件中将工作流程、和期望文档化得越好,Claude Code 的表现就越出色。当你拥有现成的设计模式时,这使得 Claude Code 在设置新数据管道等常规任务上表现卓越。

处理敏感数据时使用 服务器而非命令行界面

他们建议使用 服务器而不是 BigQuery 命令行界面,以便更好地控制 Claude Code 的访问权限,尤其是在处理需要日志记录或存在潜在隐私问题的敏感数据时。

分享团队使用心得

团队举办了分享会,成员们互相演示他们使用 Claude Code 的工作流程。这有助于传播最佳实践,并展示了他们自己可能没有发现的各种工具使用方法。

Claude Code 产品开发团队使用自家的产品来为 Claude Code 构建更新,扩展产品的企业级功能和 AI 智能体循环功能。

通过“自动接受模式”快速构建原型

工程师们通过启用“自动接受模式”(Shift+Tab)并设置自主循环,让 Claude 编写代码、运行测试并持续迭代,从而实现快速原型开发。他们将自己不熟悉的抽象问题交给 Claude,让它自主工作,然后在接手进行最后润色前,审查已完成 80% 的解决方案。团队建议从一个干净的 git 状态开始,并定期提交检查点,这样如果 Claude 跑偏了,他们可以轻松回滚任何不正确的更改。

同步编码开发核心功能

对于涉及应用程序业务逻辑的更关键功能,团队会与 Claude Code 同步工作,提供带有具体实现指令的详细提示。他们实时监控过程,确保代码质量、风格指南合规性和正确的架构,同时让 Claude 处理重复的编码工作。

构建 Vim 模式

他们最成功的异步项目之一是为 Claude Code 实现 Vim 快捷键绑定。他们要求 Claude 构建整个功能,最终实现中大约 70% 的代码来自 Claude 的自主工作,只需几次迭代即可完成。

生成测试和修复 bug

在实现功能后,团队使用 Claude Code 编写全面的测试,并处理在代码审查中发现的简单 bug。他们还使用 GitHub Actions 让 Claude 自动处理像格式问题或函数重命名这样的 Pull Request 评论。

代码库探索

在处理不熟悉的代码库(如 monorepo 或 API 端)时,团队使用 Claude Code 来快速理解系统的工作方式。他们不再等待 Slack 上的回复,而是直接向 Claude 提问以获取解释和代码参考,从而大大节省了上下文切换的时间。

更快的功能实现

Claude Code 成功实现了像 Vim 模式这样的复杂功能,其中 70% 的代码由 Claude 自主编写。

提升开发速度

该工具可以快速构建功能原型并迭代创意,而不会陷入实现细节的泥潭。

通过自动化测试提高代码质量

Claude 生成全面的测试并处理常规的 bug 修复,在减少手动工作的同时保持了高标准。

更好的代码库探索

团队成员可以快速熟悉 monorepo 中不熟悉的部分,而无需等待同事的回复。

创建自给自足的循环

设置 Claude 通过自动运行构建、测试和代码检查来自己的工作。这使得 Claude 可以更长时间地自主工作并发现自己的错误,尤其是在你要求 Claude 在编写代码之前先生成测试时效果更佳。

培养任务分类的直觉

学会区分哪些任务适合异步处理(外围功能、原型设计),哪些需要同步监督(核心业务逻辑、关键修复)。产品边缘的抽象任务可以用“自动接受模式”处理,而核心功能则需要更密切的监督。

编写清晰、详细的提示

当组件具有相似的名称或功能时,你的请求要极其具体。提示越好、越详细,你就越能信任 Claude 独立工作,而不会对代码库的错误部分进行意外更改。

安全工程团队专注于保障软件开发生命周期、供应链安全和开发环境安全。他们广泛使用 Claude Code 来编写和调试代码。

复杂基础设施调试

在处理事故时,他们将堆栈跟踪和文档喂给 Claude Code,并要求它在代码库中追踪控制流。这大大缩短了生产问题的解决时间,使他们能够在大约 5 分钟内理解问题,而手动扫描代码通常需要 10-15 分钟。

Terraform 代码审查与分析

对于需要安全审批的基础设施变更,团队将 Terraform 计划复制到 Claude Code 中,并提问“这会做什么?我会后悔吗?”。这创建了更紧密的反馈循环,使安全团队能够更快地审查和批准基础设施变更,减少了开发过程中的瓶颈。

文档综合与操作手册

Claude Code 吸收多个文档来源,创建 Markdown 格式的操作手册、故障排除指南和概述。团队将这些精简的文档作为调试实际问题的上下文,创建了比在完整知识库中搜索更高效的工作流程。

测试驱动开发工作流

他们摒弃了以往的“设计文档 → 粗糙代码 → 重构 → 放弃测试”模式,现在他们要求 Claude Code 提供伪代码,引导其进行测试驱动开发,并定期检查以在卡住时进行引导,从而产出更可靠、更易于测试的代码。

上下文切换与项目上手

在为现有项目(如用于安全审批工作流的 Web 应用“dependant”)做贡献时,他们使用 Claude Code 来编写、审查和执行存储在代码库中的 Markdown 格式的规范,从而能够在几天内做出有意义的贡献,而不是花费数周时间。

缩短事故解决时间

通常需要 10-15 分钟手动代码扫描的基础设施调试现在大约需要 5 分钟。

改进安全审查周期

需要安全审批的 Terraform 代码审查速度大大加快,消除了开发人员在等待安全团队批准时的阻塞。

增强跨职能贡献

团队成员可以在几天内为项目做出有意义的贡献,而不是花费数周时间来建立上下文。

更好的文档工作流程

从多个来源综合而成的故障排除指南和操作手册创建了更高效的调试过程。

广泛使用自定义斜杠命令

安全工程团队使用了整个 monorepo 中 50% 的自定义斜杠命令实现。这些自定义命令简化了特定的工作流程,并加快了重复性任务的速度。

Claude 先说

他们不再通过提出有针对性的问题来生成代码片段,而是告诉 Claude Code “边做边提交你的工作”,让它在定期检查的情况下自主工作,从而得到更全面的解决方案。

利用它进行文档处理

除了编码,Claude Code 还擅长综合文档和创建结构化输出。团队提供写作样本和格式偏好,以获得可立即在 Slack、 Docs 和其他工具中使用的文档,避免界面切换带来的疲劳。

推理团队负责管理在 Claude 读取你的提示并生成回复时存储信息的内存系统。团队成员,尤其是那些刚接触机器学习的人,可以广泛使用 Claude Code 来弥补知识差距并加速他们的工作。

代码库理解与新员工上手

在加入一个复杂的代码库时,团队严重依赖 Claude Code 来快速理解其架构。他们不再手动搜索 GitHub 仓库,而是询问 Claude 哪些文件调用了特定的功能,几秒钟内就能得到结果,而不是向同事求助或手动搜索。

包含边界情况的单元测试生成

在编写完核心功能后,他们要求 Claude 为其编写全面的单元测试。Claude 会自动包含被遗漏的边界情况,在几分钟内完成通常需要大量时间和精力的工作,就像一个他们可以审查的编码助手。

机器学习概念解释

没有机器学习背景的团队成员依赖 Claude 来解释模型特定的函数和设置。过去需要一个小时谷歌搜索和阅读文档的工作,现在只需 10-20 分钟,研究时间减少了 80%。

跨语言代码翻译

在用不同编程语言测试功能时,团队向 Claude 解释他们想要测试的内容,Claude 就会用所需的语言(如 Rust)编写逻辑,从而无需为了测试目的而学习新语言。

命令记忆与 Kubernetes 管理

他们不再需要记住复杂的 Kubernetes 命令,而是向 Claude 询问正确的语法,比如“如何获取所有 pod 或部署状态”,然后就能收到他们基础设施工作所需的确切命令。

加速机器学习概念学习

有了 Claude Code,他们的研究时间减少了 80%,历史上需要一个小时谷歌搜索的工作现在只需 10-20 分钟。

更快的代码库导航

该工具可以帮助团队成员在几秒钟内找到相关文件并理解系统架构,而不是依赖同事在几天内分享知识。

全面的测试覆盖

Claude 自动生成包含边界情况的单元测试,在保持代码质量的同时减轻了精神负担。

消除语言障碍

团队可以在不熟悉 Rust 等语言的情况下实现功能,而无需学习它。

首先测试知识库功能

尝试问各种问题,看看 Claude 能否比谷歌搜索更快地回答。如果它更快、更准确,那么它就是你工作流程中一个宝贵的时间节省工具。

从代码生成开始

Claude 具体的指令,让它编写逻辑,然后其正确性。这有助于在将其用于更复杂的任务之前,建立对该工具能力的信任。

用它来编写测试

Claude 编写单元测试可以极大地减轻日常开发工作的压力。利用这个功能来保持代码质量,而无需花费时间手动思考所有测试用例。

数据科学和机器学习工程团队需要复杂的 可视化工具来理解模型性能,但构建这些工具通常需要不熟悉的语言和框架的专业知识。Claude Code 使这些团队能够构建生产质量的分析仪表盘,而无需成为全栈开发人员。

构建 JavaScript/TypeScript 仪表盘应用

尽管对“JavaScript 和 TypeScript 知之甚少”,团队仍使用 Claude Code 构建了完整的 React 应用,用于可视化强化学习(RL)模型的性能和训练数据。他们让 Claude 控制从头开始编写完整的应用程序,比如一个 5000 行的 TypeScript 应用,而无需自己理解代码。这一点至关重要,因为可视化应用相对上下文较少,不需要理解整个 monorepo,从而可以快速构建原型工具,以便在训练和评估期间了解模型性能。

处理重复的重构任务

当遇到合并冲突或半复杂的文件重构时——这些任务对于编辑器宏来说太复杂,但又不足以投入大量开发精力——他们就像玩“老虎机”一样使用 Claude Code:提交当前状态,让 Claude 自主工作 30 分钟,然后要么接受解决方案,要么在不成功时重新开始。

创建持久性分析工具而非一次性笔记本

团队现在不再构建用完即弃的 Jupyter 笔记本,而是让 Claude 构建可重复使用的 React 仪表盘,这些仪表盘可以在未来的模型评估中重复使用。这很重要,因为理解 Claude 的性能是“团队最重要的事情之一”——他们需要了解模型在训练和评估期间的表现,而这“实际上并非易事,简单的工具无法从观察一个数字上升中获得太多信号”。

零依赖任务委托

对于完全不熟悉的代码库或语言中的任务,他们将整个实现委托给 Claude Code,利用其从 monorepo 中收集上下文并执行任务的能力,而无需他们参与实际的编码过程。这使得他们在自己专业领域之外也能保持生产力,而不是花时间学习新技术。

节省了 2-4 倍的时间

过去虽然可以手动完成但很繁琐的常规重构任务现在完成得更快了。

用不熟悉的语言构建了复杂的应用

尽管 JavaScript/TypeScript 经验极少,却创建了 5000 行的 TypeScript 应用

从一次性工具转向持久性工具

不再使用一次性的 Jupyter 笔记本,而是构建可复用的 React 仪表盘进行模型分析。

直接获得模型改进的洞见

第一手使用 Claude Code 的经验为未来模型迭代中更好的内存系统和用户体验改进提供了信息。

实现了可视化驱动的决策

通过先进的数据可视化工具,更好地理解了 Claude 在训练和评估期间的性能。

把它当作一台老虎机

在让 Claude 工作之前保存你的状态,让它运行 30 分钟,然后要么接受结果,要么重新开始,而不是试图费力去修正。重新开始的成功率通常比试图修复 Claude 的错误要高。

必要时为了简化而打断它

在监督过程中,不要犹豫,停下来问 Claude “你为什么这么做?试试更简单的方法。” 模型默认倾向于更复杂的解决方案,但对于简化方法的请求反应良好。

产品工程团队致力于开发如 PDF 支持、引用和网页搜索等功能,这些功能将额外的知识引入 Claude 的上下文窗口。在大型、复杂的代码库中工作意味着不断遇到不熟悉的代码部分,花费大量时间来理解特定任务需要检查哪些文件,并在进行更改前建立上下文。Claude Code 通过充当向导,帮助他们理解系统架构、识别相关文件并解释复杂的交互,从而改善了这种体验。

第一步工作流规划

团队将 Claude Code 作为任何任务的“第一站”,要求它确定在进行 bug 修复、功能开发或分析时需要检查哪些文件。这取代了传统上在开始工作前手动浏览代码库和收集上下文的耗时过程。

跨代码库独立调试

团队现在有信心处理不熟悉代码库部分的 bug,而无需向他人求助。他们可以问 Claude “你觉得你能修复这个 bug 吗?我看到的行为是这样的”,并经常能立即取得进展,这在以前由于所需的时间投入是不可行的。

通过内部测试进行模型迭代测试

Claude Code 自动使用最新的研究模型快照,使其成为他们体验模型变化的主要方式。这为团队在开发周期中提供了关于模型行为变化的直接反馈,这是他们在之前的发布中从未体验过的。

消除上下文切换的开销

他们不再需要复制粘贴代码片段并将文件拖入 Claude.ai,同时还要详细解释问题,现在可以直接在 Claude Code 中提问,无需额外的上下文收集,从而显著减少了心智负担。

增强了处理不熟悉领域的信心

团队成员可以独立调试 bug 并调查不熟悉代码库中的事故。

在上下文收集中节省了大量时间

Claude Code 消除了复制粘贴代码片段和将文件拖入 Claude.ai 的开销,减轻了心智上的上下文切换负担。

加速轮岗员工上手速度

轮岗到新团队的工程师可以快速熟悉不熟悉的代码库并做出有意义的贡献,而无需与同事进行大量咨询。

提升开发者幸福感

团队报告称,随着日常工作流程中的摩擦减少,他们感到更快乐、更高效。

将其视为迭代伙伴,而非一次性解决方案

不要指望 Claude 能立即解决问题,而是把它当作一个与你一起迭代的合作者。这种方法比试图在第一次尝试中就获得完美的解决方案效果更好。

用它来建立在不熟悉领域的信心

不要犹豫去处理你专业领域之外的 bug 或调查事故。Claude Code 使得在通常需要大量上下文建立的领域独立工作成为可能。

从最少的信息开始

从你需要的最低限度的信息开始,让 Claude 引导你完成整个过程,而不是一开始就提供大量的解释。

增长营销团队专注于在付费搜索、付费社交、移动应用商店、电子邮件营销和 SEO 等领域建立效果营销渠道。作为一个只有一人的非技术团队,他们使用 Claude Code 来自动化重复性的营销任务,并创建通常需要大量工程资源的 AI 智能体工作流。

自动化 Ads 广告创意生成

团队构建了一个 AI 智能体工作流,该工作流可以处理包含数百个现有广告及其效果指标的 CSV 文件,识别表现不佳的广告进行迭代,并生成符合严格字符限制(标题 30 个字符,描述 90 个字符)的新变体。通过使用两个专门的子智能体(一个用于标题,一个用于描述),该系统可以在几分钟内生成数百个新广告,而无需在多个广告系列中手动创建。这使他们能够大规模地进行测试和迭代,这是以前需要花费大量时间才能实现的。

用于批量创意制作的 Figma 插件

他们没有手动复制和编辑用于付费社交广告的静态图片,而是开发了一个 Figma 插件,该插件可以识别框架并通过替换标题和描述来以编程方式生成多达 100 个广告变体,将需要数小时复制粘贴的工作缩短为每批半秒。这使得创意产出提高了 10 倍,让团队能够在关键社交渠道上测试数量庞大的创意变体。

用于广告活动分析的 Meta Ads 服务器

他们创建了一个与 Meta Ads API 集成的 MCP 服务器,以便直接在 Claude Desktop 应用内查询广告活动表现、支出数据和广告效果,从而无需在不同平台之间切换进行性能分析,节省了宝贵的时间,因为每一分效率的提升都意味着更好的投资回报率。

利用内存系统进行高级提示工程

他们实现了一个基本的内存系统,该系统记录了广告迭代中的假设和实验,使得系统在生成新变体时能够将之前的测试结果纳入上下文,创建了一个自我改进的测试框架。这使得系统性的实验成为可能,而这些实验是无法手动追踪的。

在重复性任务上节省了大量时间

Claude Code 将广告文案创作时间从 2 小时缩短到 15 分钟,让团队能够专注于更具战略性的工作。

创意产出增加 10 倍

通过自动广告生成和与 Figma 集成以获取最新的视觉设计元素,团队现在可以在各个渠道上测试数量庞大的广告变体。

像一个更大的团队一样运作

团队能够处理传统上需要专门工程资源的大型开发任务。

战略重点转移

团队可以将更多时间用于整体战略和构建 AI 智能体自动化,而不是手动执行。

识别支持 API 的重复性任务

寻找涉及使用带有 API 的工具(如广告平台、设计工具、分析平台)进行重复操作的工作流程。这些是自动化的主要候选对象,也是 Claude Code 提供最大价值的地方。

将复杂工作流分解为专门的子智能体

不要试图在一个提示或工作流中处理所有事情,而是为特定任务创建单独的智能体(比如一个标题智能体和一个描述智能体)。这使得调试更容易,并在处理复杂需求时提高输出质量。

在编码前进行充分的头脑风暴和提示规划

在前期花大量时间使用 Claude.ai 来构思整个工作流,然后让 Claude.ai 为 Claude Code 创建一个全面的提示和代码结构以供参考。此外,要逐步进行,而不是要求一次性解决问题,以避免 Claude 因任务过于复杂而不堪重负。

产品设计团队支持 Claude Code、Claude.ai 和 Anthropic API,专注于构建 AI 产品。即使是非开发人员也可以使用 Claude Code 来弥合设计与工程之间的传统鸿沟,使他们能够直接实现自己的设计愿景,而无需与工程师进行大量的反复迭代。

前端润色和状态管理变更

团队不再为视觉调整(字体、颜色、间距)创建大量的设计文档并与工程师进行多轮反馈,而是直接使用 Claude Code 实现这些变更。工程师们注意到,设计师们正在进行“通常不会看到设计师做的大型状态管理变更”,这使他们能够实现他们所设想的精确质量。

GitHub Actions 自动化工单处理

通过使用 Claude Code 的 GitHub 集成,他们只需提交描述所需更改的问题/工单,Claude 就会自动提出代码解决方案,而无需打开 Claude Code,从而为他们积压的润色任务创建了一个无缝的 bug 修复和功能优化工作流。

快速交互式原型制作

通过将模型图粘贴到 Claude Code 中,他们可以生成功能齐全的原型,工程师可以立即理解并在此基础上进行迭代,这取代了传统的静态 Figma 设计,后者需要大量的解释和转换才能成为可用代码。

发现边界情况和理解系统架构

团队使用 Claude Code 来规划错误状态、逻辑流程和不同的系统状态,使他们能够在设计阶段就识别出边界情况,而不是在开发后期才发现,从而从根本上提高了他们初始设计的质量。

复杂的文案更改和法律合规

对于像在整个代码库中移除“研究预览”信息这样的任务,他们使用 Claude Code 查找所有实例,审查周围的文案,与法务部门实时协调更改,并实施更新。这个过程只用了两次 30 分钟的电话会议,而不是一周的反复协调。

核心工作流程的变革

Claude Code 成为主要的设计工具,80% 的时间里 Figma 和 Claude Code 都是打开的。

执行速度提高 2-3 倍

以前需要与工程师进行大量反复沟通的视觉和状态管理变更,现在可以直接实现。

周期时间从数周缩短到数小时

Google Analytics 发布信息这样需要一周协调的复杂项目,现在只需两次 30 分钟的电话会议就能完成。

两种截然不同的用户体验

开发者获得了“增强型工作流”(执行更快),而非技术用户则获得了“天哪,我竟然也成了开发者”的工作流。

改善了设计与工程的协作

Claude Code 促进了更好的沟通和更快的问题解决,因为设计师理解了系统的限制和可能性,而无需与工程师紧密合作。

从工程师那里获得适当的设置帮助

让工程团队的同事帮助进行初始的代码库设置和权限配置——对于非开发人员来说,技术上的上手过程具有挑战性,但一旦配置完成,它将彻底改变日常工作流程。

使用自定义内存文件来引导 Claude 的行为

创建具体的指令,告诉 Claude 你是一个几乎没有编码经验的设计师,需要详细的解释和更小、更增量的更改。这极大地提高了 Claude 回应的质量,使其不再那么令人生畏。

利用粘贴图片进行原型制作

使用 Command+V 将截图直接粘贴到 Claude Code 中。它在读取设计并生成功能性代码方面表现出色,使其在将静态模型图转化为工程师可以立即理解和构建的交互式原型方面非常有价值。

强化学习(RL)工程团队专注于 RL 中的高效采样和跨集群的权重迁移。他们主要使用 Claude Code 来编写中小型功能、进行调试和理解复杂的代码库,并采用一种包含频繁检查点和回滚的迭代方法。

有监督的自主功能开发

团队让 Claude Code 在提供监督的情况下编写大部分中小型功能的代码,例如为权重迁移组件实现认证机制。他们以交互方式工作,允许 Claude 主导,但在其偏离轨道时进行引导。

测试生成和代码审查

在自己实现更改后,团队会要求 Claude Code 添加测试或审查他们的代码。这种自动化的测试工作流程在常规但重要的质量保证任务上节省了大量时间。

调试和错误调查

他们使用 Claude Code 来调试错误,结果好坏参半。有时它能立即识别问题并添加相关测试,而其他时候则难以理解问题,但总的来说,在有效时仍能提供价值。

代码库理解和调用栈分析

他们工作流程中最大的变化之一是使用 Claude Code 来快速获取相关组件和调用栈的摘要,取代了手动阅读代码或生成大量调试输出。

Kubernetes 操作指导

他们经常向 Claude Code 询问 Kubernetes 操作,这些操作否则需要大量谷歌搜索或询问基础设施工程的同事,从而能立即获得配置和部署问题的答案。

实验性方法的实现

他们现在使用一种“尝试并回滚”的方法,频繁提交检查点,以便他们可以测试 Claude 的自主实现尝试,并在需要时进行回滚,从而实现了更具实验性的开发。

文档编写加速

Claude Code 自动添加有用的注释,节省了大量的文档编写时间,尽管他们也指出,它有时会在奇怪的地方添加注释或使用有问题的代码组织方式。

有限制的提速

虽然 Claude Code 可以在他们“相对较少的时间”投入下实现中小型 PR,但他们承认,它在第一次尝试中成功的几率大约只有三分之一,需要额外的指导或手动干预。

为特定模式自定义你的 Claude.md 文件

在你的 Claude.md 文件中添加指令,以防止 Claude 重复犯工具调用错误,例如告诉它“运行 pytest 而不是 run,不要不必要地 cd – 只需使用正确的路径”。这显著提高了一致性。

使用检查点密集的工作流

随着 Claude 进行更改,定期提交你的工作,这样当实验不成功时,你可以轻松回滚。这使得在没有风险的情况下可以采用更具实验性的开发方法。

先尝试一次性解决,然后协作

Claude 一个快速的提示,让它先尝试完整的实现。如果成功了(大约三分之一的时间),你就节省了大量时间。如果没有,再切换到更具协作性、引导性的方法。

法务团队通过实验和了解 Anthropic 产品的好奇心,发现了 Claude Code 的潜力。此外,一位团队成员有一个个人用例,即为家人创建无障碍工具和为工作创建原型,这展示了该技术对非开发人员的强大能力。

为家人定制的无障碍解决方案

团队成员为因医疗诊断而有语言障碍的家人构建了沟通助手。在短短一小时内,一个人使用原生的语音转文本功能创建了一个预测性文本应用,该应用可以建议回复并使用语音库将其读出,解决了言语治疗师推荐的现有无障碍工具的不足之处。

法务部门工作流自动化

团队创建了“电话树”系统的原型,帮助团队成员联系到 Anthropic 合适的律师,展示了法务部门如何在没有传统开发资源的情况下为常见任务构建自定义工具。

团队协调工具

经理们构建了 G Suite 应用程序,可以自动化每周的团队更新,并跟踪各产品的法律审查状态,让律师只需通过简单的按钮点击就能快速标记需要审查的项目,而无需管理电子表格。

用于解决方案的快速原型制作

他们使用 Claude Code 快速构建功能性原型,然后展示给领域专家(例如向加州大学旧金山分校的专家展示无障碍工具),以验证想法并在投入更多时间之前识别现有解决方案。

Claude.ai 中规划,在 Claude Code 中构建

他们使用两步流程:首先在 Claude.ai 中进行头脑风暴和规划,然后转到 Claude Code 进行实现,要求它放慢速度,逐步工作,而不是一次性输出所有内容。

视觉优先的方法

他们经常使用截图向 Claude Code 展示他们想要的界面样子,然后根据视觉反馈进行迭代,而不是用文本描述功能。

原型驱动的创新

他们强调克服分享“傻瓜式”或“玩具级”原型的恐惧,因为这些演示能激励他人看到他们未曾考虑过的可能性。

MCP 集成担忧

产品律师使用 Claude Code 立即识别深度 MCP 集成的安全隐患,并指出随着 AI 工具访问更多敏感系统,保守的安全策略将成为障碍。

合规工具的优先级

他们主张随着 AI 能力的扩展,应迅速构建合规工具,认识到创新与风险管理之间的平衡。

首先在 Claude.ai 中进行详尽规划

在转到 Claude Code 之前,使用 Claude 的对话界面来充实你的整个想法。然后要求 Claude 将所有内容总结成一个分步的实现提示。

增量式和可视化工作

要求 Claude Code 放慢速度,一次实现一个步骤,这样你就可以复制粘贴而不会不知所措。大量使用截图来展示你想要的界面样子。

尽管不完美也要分享原型

克服隐藏“玩具”项目或未完成工作的冲动。分享原型有助于他人看到可能性,并在通常不互动的部门之间激发创新。

不仅仅是编程,使用 Gemini CLI 日常指南!

By: Anonymous
26 June 2025 at 21:54

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

前几天最近随着 Claude Code 这个命令行 AI 代码工具的火爆,谷歌也耐不住寂寞推出了自己的同类产品 Gemini CLI,而且完全免费,非常顶。

不仅仅是编程,使用 Gemini CLI 日常指南!

下面会教你用 Gemini CLI 实现哪些能力:

首先他们是没有界面的,所有的操作都是在终端以命令行的方式展示。

然后就是也是 Agents 可以自动执行任务处理本地文件,同时内置了非常多的工具,比如谷歌搜索、阅读文件、查找文件、搜索文字、写入文件、保存记忆等,你输入 /tools 然后回车就可以让他列出目前支持的工具。

另外 Gemini CLI 也是支持 MCP 的,你可以安装其他的 MCP 工具帮助模型扩充上下文。

很多朋友说命令行是不是很复杂啊,我不会编程是不是会很难用。

其实并没有,如果你的网络环境正常,能够正常登录 Gemini CLI 的话,跟使用 Cursor 没有本质区别。

因为核心交互的时候还是主要为提示词输入框,命令行又不用你写,Gemini 写就行。

从这里开始我所有的演示都基于 Mac OS 的自带终端进行,Windows 大部分操作都是通用的,但是可能出问题概率比 Mac 复杂。

首先要做的第一步就是进入到我们的启动台,搜索终端两个字,搜到之后打开。

这时候你就看到一个空白界面里面写了些你看不懂的字,不要担心。

这里我建议我们想好要进行的任务之后,新建一个文件夹把需要的任务素材扔进去,然后按住 option 按键鼠标右键选择“将 XXXX 文件夹拷贝为路径名称”,这时候你就快速获得了这个文件夹的路径。

然后我们回到我们的终端窗口,输入 cd + 空格 + 你刚才复制的路径,接下来你终端的所有操作都只会影响这个文件夹的内容,不用担心把电脑搞坏。

到这一步我们终于开始安装 Gemini CLI 了,非常简单,你只需要输入下面的内容然后回车就行。

安装成功你就会看到这个界面,应该会先让你选择命令行的颜色主题,然后让你选择登录方式。

这里需要注意:终端的操作大部分时间需要用上下左右方向键来操作选项,选中之后按回车确认。

你只需要选择一个自己喜欢的主题之后,选择正常的谷歌账号登录,在拉起网页登录后关掉就行。

我这个这里已经登录了,所以没有这些选项,然后你就能看到提示词输入框了。

恭喜你到这里,你已经完成了 Gemini 的安装。

由于用的 NPX 的安装方式,所以你以后每次关掉终端重新使用 Gemini CLI 的时候都需要输入开始的那个命令,不过不用登录了,直接就能用。

另一种方法是输入下面这个命令,但是对于不会编程的人来说很麻烦,启动就是少输入点东西,输入 Gemini 就能启动。

最后由于命令行本身都是英文的,可能很多人会望而却步,这个时候你可以装个 Bob 这个翻译软件,支持划词翻译,看不懂的选项直接选中划词翻译就行。

装好之后我们可以来点基础用法了。

由于 Gemini 可以看到你的文件并且操作,而且它还有生成能力,本身模型还是多模态的,所以即使只用本身的工具也可以有很多用法。

首先是 Gemini CLI 本身支持谷歌搜索,你可以让他搜索指定内容给你写成文档,也可以对你本身的文档进行编辑。

当然搜索工具经常会限额,这个有点恶心,比如让他搜索歸藏的信息并且整理一个介绍文档。

你也可以让他分析你保存在本地的文章之后进行改写,生成新的文章。

比如我这里就让他把 Karpathy 的软件 3.0 文章改写成适合发布的博客文章,同时生成对应的推特发布版本,也可以对于会议总结之类的文档进行分析和处理。

记得我之前写的用 Curosr 这种 IDE 帮助分析 Obsidian ,把 Obsidian 当做本地知识库的方法吗,Gemini CLI 也可以,甚至更加强大。

你可以找到你的 Obsidian 文件夹打开之后启动 Gemini CLI,然后让 Gemini CLI 查找相关的内容。

比如我这里就让他检索我所有的剪藏文件,找到 MCP 相关的文章,然后给我生成一个带反向链接的《MCP 剪藏内容索引》文档,可以看到他完成的很好。

每个无序列表都有文件标题以及文章的总结,最后还有链接可以直达那个文章。

提到反向链接了,就不得不提 Obsidian 的一个知识图谱的功能,它可以把所有有反向链接的相关文档都链接起来,形成你自己的网状笔记网络,方便你学习和回顾。

但是反向链接需要你自己手动加,大部分人都没这个毅力,现在有了 Gemini CLI 问题解决了,可以让他帮你给你文件夹中的相关文档加反向链接。

不过这个需要的时间比较长,如果内容多的话可能得等一段时间。

由于本身 Gemini CLI 是多模态的的,所以你的图片也可以让他帮忙处理。

比如我打开了一个全是图片的文件夹,里面的图片名字乱七八糟的,这时候就可以让他分析图片内容之后根据图片内容给图片重新命名。

再重新命名之后我们也不能浪费他分析的图片内容。

我们都知道在训练图像模型或者 Lora 的时候需要对图像进行标注,大部分训练工具都是把标注放在一个跟图片命名一样的文本文件里,现在我们就可以让 Gemini CLI 来做这件事了。

可以看到他执行的非常完美,以往这些你还得找对应的工具,而且不好自定义要求,现在提示词就行。

Gemini CLI 除了可以读取文件和修改文件外也是可以控制系统设置的。

比如我们就可以写好自己日常对于软件和系统设置在不同工作时间的喜好,需要的时候一键完成所有操作的更改。

这里我就让他给我关掉浏览器,然后打开 Obsidian,降低系统音量,直接进入工作模式。

更进一步让他把操作写成脚本,之后你就可以直接双击脚本完成系统设置了。

我们肯定也有很多时候桌面或者文件没有整理乱七八糟。

这个时候就可以让 Gemini CLI 新建文件夹进行分类和整理。

但是这里得注意,不要让他整理过大的过于重要的文件夹,不然误删了就痛苦了。

这里我就让他把刚才的图像和标注文件新建了两个文件夹分别整理了。

上面都是些基本用法,你最近可能也看到了一些。

但是我发现结合一些本地软件,Gemini CLI 能实现对各种文件更加高级的处理,比如视频转 gif、youtube 视频下载、加水印、文档格式转换等。

这些就非常牛皮了,而且我们日常内容创作大部分都非常需要。

前面我们有了文档了,但是很多时候演示的时候总不能真给人看 Markdown 文档吧,能不能生成 PPT 呢?

可以的,朋友,必须可以,比如我这里就把前面我那个 MCP 索引文档的内容直接转换为 PPT 了。

这个依赖一个叫 Slidev 的项目,它可以用类似 Markdown 文档的格式将内容变成带有丰富样式的 PPT。

你不需要知道这个项目的细节,直接用我下面的提示词生成文件之后,复制文件到这个页面(https://stackblitz.com/github/slidevjs/new?file=slides.md)预览就行。

上面的 Slidev 不需要本地安装直接预览就行,接下来我们介绍一些需要本地安装的项目,这些本地的软件,非常强大,但是由于本身他们是没有界面的,阻碍的很多用户使用。

但是有了 Gemini 之后一切都解决了,提示词可以直接转换为驱动他们的命令行,也可以用提示词直接安装他们,你直接用就行。

首先先介绍一下 ffmpeg 这个项目,给予他你可以实现非常强的视频编辑能力,理论上剪映之类的视频编辑软件都是基于这个完成的。

你可以对本地的视频进行拼接、剪辑、增加文字、转换格式、转换分辨率、增加音乐,基本上你能想到的视频编辑能力他都能做到。

首先我们需要大概你需要处理视频的的文件夹,然后启动 Gemini CLI 第一个命令是让他安装 Homebrew。

然后安装完成后,让他用 Homebrew 帮你安装 ffmpeg。

看到没,跟网页哪些乱七八糟的要求都没关系,你只需要说两句话,就全部安装了。

然后我们就可以爽用了,先给我们指定的视频加个水印试试。

可以看到新的视频右上角果然有了一个水印,这种言出法随的感觉谁不喜欢,你不需要了解原理,你就只需要知道所有的视频编辑他都能帮你搞定。

然后我想要给视频配乐也可以,你只需要告诉他视频文件和音乐文件的名字就行,我甚至让他给音乐加上了淡入和淡出。

他先是获取了一下视频的时长,然后就开始操作了,然后搞定了,非常完美,严丝合缝,淡入淡出也加上了,可以看剪映界面预览的频谱。

我们很多时候需要把视频转换为序列帧,然后拿其中一帧进行处理,或者处理所有的帧,以前你是不是还得到处找这种工具,而且转换效果不一定好。

Gemini CLI 一句话就能搞定,处理的又快又好,而且节省了用网页工具上传下载的时间。

另一个常见的任务就是视频转 gif,尤其公众号有 10 个视频的限制,很多时候迫不得已得转成 gif 发布。

Gemini 捕捉到了高品质这个关键词还制作了调色板保证颜色还原度,最后处理的非常完美。

像 ffmpeg 这种宝藏项目还有很多,比如 yt-dlp 这个项目跟 ffmpeg 配合几乎可以下载你能想到的所有视频平台的视频。

我们还是可以让 Gemini CLI 帮我们安装 yt-dlp 这个项目就行。

然后直接提供视频链接他就会帮你下载,甚至可以批量下载多个视频或者一起连封面和视频一起下载,再也不需要忍受那些工具的垃圾网速了。

处理视频我们有 ffmpeg 这种项目,当然图片也有。

ImageMagick 是一个极其强大的工具集,你可以用它来转换格式、缩放、裁剪、旋转、添加滤镜、组合图片等等。

依然是老一套,先让 Gemini 帮我们安装

先来一个常见任务,我们设计师做外包经常用,在没结款之前给甲方低分辨率和带水印的图片,现在就可以直接批量完成。

这里我让他把所有图片宽边调整为 800 PX,然后统一加上带“内部资料”文字的水印。

中文的水印有些问题,后来改成英文就 OK 了,而且出错之后他自己开始用多模态能力检查修改后的图像了,发现 10% 不透明度的文字不明显,又自己重新改了一下,太聪明了。

然后再来一个常见的图像拼接需求,这种在媒体上发消息的时候经常需要,尤其是推特。

搞得不错,这几张图比例不同,所以没有对齐,可以在命令上加上统一比例这种要求就行。

文档格式转换也是常见的需求,相当多的公司工作文档还是 word,很多时候我发过去 .md 文件那边都不知道怎么办。

首先还是让 Gemini CLI 帮我们安装。

这个时候我们就可以利用 Pandoc 这个项目进行各种文档格式之间的互相转换,当然批量转换也是可以的。

可以看到转的很好,Markdown 的一些基本格式也都迁移了,不管是加粗还是无序列表有序列表。

好了教程到这里就结束了。

你可以用 Gemini CLI 控制这些已经非常成熟的命令行项目,基本上你所有的需求都能找到对应的项目。

不是只有 MCP 才能做 Agent,这些传统工具在有了 LLM 加持之后会更加强大。

看到这里,你可能会突然意识到:原来那些让我们望而却步的专业工具,其实一直都在那里等着我们。

史蒂夫·乔布斯说过的一句话:”技术应该是隐形的。” 今天的 Gemini CLI,正是让那些强大的命令行工具变得”隐形”——你不需要理解它们的工作原理,只需要说出你的需求。

更重要的是,这种改变不仅仅是效率的提升,而是创作门槛的彻底消失。

所以,如果你还在犹豫要不要试试 Gemini CLI,我想说:别让”我不会编程”成为你探索新世界的借口。 因为在这个新世界里,你需要的不是编程能力,而是想象力。

那些曾经高高在上的专业工具,现在都在静静等待着你的一句话。而你要做的,就是勇敢地说出你的需求。

因为最好的工具,是让你忘记它是工具的工具。

解析「首个 AI 软件工程师」Devin 2.0 完整的系统提示词

By: Anonymous
30 March 2025 at 15:55

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

说起 Devin,可能很多人都知道,当年刚推出时很火,号称首个 AI 软件工程师,能帮助开发者完成各种软件开发任务,包括编码、调试、测试和部署。

最近它推出了 v2.0 版本,价钱也降低到每月基础费用 $20。我们都知道这种 AI 智能体本身也依赖于背后的模型,是靠提示词来控制模型来响应用户的操作,那么像 Devin 这样的 AI 智能体,是怎么通过提示词来准确理解你的意图、高效工作、规避风险,并最终达成目标的。

今天,就带你分析一下 “Devin 2.0” 的系统提示词,深入探索提示词工程的奥秘。系统提示词就像是 Devin 的「出厂设置」和「工作手册」,它详细规定了 Devin 的身份、行为准则、工作流程甚至安全规范。

完整的提示词参见附录部分

提示词工程的第一步,往往是为 AI 设定一个清晰的角色。这里,Devin 被赋予了「软件工程师」的身份,并且强调了其「编码奇才」的专业能力。

指令明确了 Devin 的核心任务:接收用户任务并完成它。

这份指令包含了大量关于 Devin 如何工作的细则,涵盖沟通、工作方法、编码规范、信息处理等多个方面。

提示词明确或暗示了 Devin 可以使用的工具,如操作系统、浏览器GitHub 命令行工具 (gh cli) 等。

指令中定义了一些特殊的命令格式(如 <command>)。

指令定义了两种工作模式:「规划模式」和「标准模式」,并规定了在不同模式下的行为重点。

这部分内容强调了数据安全、保密原则,并明确禁止 Devin 泄露自身的指令。

这部分引入了一个「突击测验」机制。当收到 STARTING POP QUIZ 指令时,Devin 需要暂停常规任务,严格遵循测验中的新指令,并且这些新指令的优先级高于之前的所有指令。

通过深入分析 Devin 2.0 的系统提示词,我们看到了提示词工程的冰山一角。它远不止是简单的提问,而是一门融合了逻辑、语言、心理学和计算机科学的综合艺术。

设计良好的提示词,就像是为 AI 精心编写的剧本和导航图,能够引导它在复杂的数字世界中精准、高效、安全地航行。而理解提示词的原理,则能帮助我们更好地与日益强大的 AI 进行沟通和协作。

Google Gemini 免费 AI 对话修图实测!一句话PS、换背景、创作系列图画

By: Anonymous
9 March 2025 at 13:51

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

你拍下一些照片,却觉得照片的背景不够完美?你是内容创作者,但找不到文章合适的配图?你是电商卖家,想位产品设计更吸引人的配图?你是老师,需要为教材找出一系列搭配的示范图片?以前,我们修图可能需要 学 Photoshop,需要花很多时间调整细节,或是要下载各种修图 App,还要在图库中翻找适合自己的图片文件。

但现在,只要一个 AI 指令,就能让我们需要的照片「瞬间改造完成」。

如果你想体验看看类似的工作流程,可以试试看前两天推出的 Google Gemini 免费 AI 修图!只要「一句话」,你就能改变图片,换背景、改风格、添加新元素,甚至创造连续漫画。
〔类似功能,在 Google Pixel 系列手机的 Google 相册中也能部分实现,Adobe、Canva 等的 AI 修图也能实现部分功能。〕

这篇文章,我会实测 Gemini 的 AI 修图能力〔而且免费即可使用〕,看看它怎么帮助我们「一句话变出想要的修图效果」!

我将分成三种应用角度来介绍,这些全部都能在 Gemini 中用自然语言下指令,便可以把照片生成或改造:

基础照片修图:让拍坏的照片变完美

替换背景、增加物品、改变颜色光线、调整风格。

进阶场景创作:为文章制作主题插图、让商品看起来更吸引人

搭配原始照片,制作特殊场景图

搭配原始照片,重新设计房间或产品

连续系列照片生成:根据文章、教材内容,生成一系列互相搭配的图片

模拟图文食谱

说故事的连续漫画、图画

文章中搭配的系列配图

首先,这个功能目前〔2025/3/14〕尚未开放在正式版的 Gemini 中,但可以通过免费账号即可登入的「 Google AI Studio 」来使用。

Google 账号注册登入后,进入一个新的对话框,并在右边控制列的「Model」菜单,切换到「Gemini 2.0 flash experimental」,就可以利用其 AI 来创作图片、修改图片,最大的特色是:

这个 Gemini 模型可以上传自己的图片,用「自然语言」下指令,请 AI 在图片上修图或生成新内容。

就如同 experimental 所说的「实验性」,实际测试结果,这个 AI 修图功能确实很神奇,也能够看到一些未来修图、创作图片的新可能性,不过可下载的图片质量等限制,目前还是不足以真正用在商业用途上的。

Google Gemini 免费 AI 对话修图实测!一句话PS、换背景、创作系列图画

在「Gemini 2.0 flash experimental」的对话框中,我们可以先上传一张原始照片,如果想要替换背景,只要简单的说一句这样的指令:「把照片的背景换成草地。」

就可以在 10 几秒的处理后,完成下图的成果。可以看到,Gemini 的「修图」是真的可以保留原始照片中的内容,只修改我要修改的部分。所以是真的 AI 修图,而不是 AI 重新生成图片。

我也可以上传一张风景照片,然后下指令:「把照片的天空改成大晴天。」Gemini 同样可以处理这样的调整。〔在 Google Pixel 手机的 Google 相册中就有类似功能可用〕

如果想要替换照片风格,套用艺术滤镜,也可以用 AI 下指令:「把照片变成中国水墨画风格。」就能轻松转换风格。

不过当然跟真正的艺术滤镜还是有落差,例如下图中我要 AI 把照片改成「彩色的铅笔绘画风格」,看起来还可以,不过专业的艺术滤镜一定会处理得更好。

除了可以用「Gemini 2.0 flash experimental」的 AI 修图外,也可以在原始照片上进行创作。

例如延续上面的图片案例,我对 AI 下指令:「拓展成一幅横幅的中国水墨画。」十几秒后,照片就变成了一幅新的水墨风景画。

或是我的书籍封面,上传后,下指令说到:「我想把原书的图片,摆在一张高雅的书桌上。」结果还真的可以顺利生成新的产品摆拍图。

不过如果细看,书籍封面上有些小字其实是有瑕疵的。

因为 Gemini 是对话的模式,所以在原始照片的改造上,我们可以通过多次讨论,让 AI 在原始照片上陆续添加内容,制作出自己需要的场景图。

例如下面原本只是单纯公园照片,我先请 Gemini:「在这张照片的草地上,加上一对正在野餐的男女朋友。」于是生成了下面的图片。

然后我继续追问:「让两人旁边有一只小狗在奔跑。」

然后再下指令:「旁边的道路上,也有零星的路人在散步。」

最后说「让天空变得更晴朗。」于是我要的最终场景图,就通过 AI 创作完成了。

我还做了一个尝试,先上传一张原始的房间照片〔某家旅馆〕。

然后我陆续对 AI 下了下面这些指令:

结果 AI 生成了下面这样的图片,第一张是原图,第二张是最后生成的图片,改造的图片还是保有原图的空间格局,只是风格焕然一新。

Google Gemini 本来就可以生成图片,但「Gemini 2.0 flash experimental」比较厉害的是可以分析文章内容,生成适合的配图,或是一系列的连续漫画、故事图片

例如,我对「Gemini 2.0 flash experimental」下了这样的指令:「你是意大利面专家,提供给我一道海鲜意大利面的食谱,请一步一步处理,用文字具体列出关键步骤,并在步骤后搭配图片。」

结果他「一次」就生成了下面的连续图文教程内容,这是在一次的问答后就完成的结果。

我假设自己写了一篇游记,于是请 AI「设计一系列素描画,展现一个人在京都街头散步的故事,请一步一步分析,以京都的场景,搭配素描画风格,设计有意思的散步故事,创作一连图画。」

结果「Gemini 2.0 flash experimental」也在一次的生成中,提供给我下面连续故事图,比较神奇的是这些连续图片中都有类似的人物,保持图片连贯性,虽然风格上有点跳跃。

还可以这样问 AI,我让 Gemini 自己思考如何设计一系列进入书店场景的图片,Gemini 自己写了一大篇分析内容后,才开始设计并产出图片。

但效果看起来还不错。

所以,在功能上,利用现在〔2025/3/15〕在 Google AI Studio 中的「Gemini 2.0 flash experimental」,你可以上传原始照片请 AI 修图、改图。也可以让 AI 读一篇文章、思考一个主题,生成一系列连续图片。

未来这个功能越来越成熟,或许有下面这些应用可能性:

现在,你也可以通过免费账号即可登入的「 Google AI Studio 」来试试看。

话都说不清楚

By: Anonymous
5 February 2025 at 13:27

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

最近有很多人假装关心,问我是如何更好的使用 AI 的,那我也就假装解答一下。我认为任何人都应该学习利用 AI,我分享自己利用 AI 工具经验和技巧思考,信息量已经足够多了。但是想要做到,可能还需要自己去探索,去做大量尝试。

很多人希望我直接出个教程,甚至最好是个视频教程,自己好按图索骥,照猫画虎。但我没兴趣,讲述起来太麻烦,我不想自己太累。这样一来,就会有人说我傲慢冷漠,说我小气藏私,说我老登加爹味,诸如此类的酸话。其实我是真的累,心累,很早就把自己的期待降到了最低。比如说如何在国内使用 AI 的话题,我早分享过,甚至还贴出了链接。但是总有人不断来问,所以我说他们是「假装关心」,连提问前先搜索一下都做不到。

对此我能理解,因为我没期待。我不期待每个人都会关心我的分享,我也不期待每个人在提问前会主动搜索信息,我习惯了张嘴就问,所以我相信 AI 更能满足他们的需求。

现在国内也普及了 AI,我又发现了一个更加致命的问题:很多人连话都说不清楚。

对,我说了,你只需要像是和人说话一样吩咐 AI 去做事就好。我观察了几百条和 AI 之间的互动,看完内心充满了同情。

很多人的确是用和人说话方式来和 AI 交流,我仔细看了,他们平常可能就是这样和人说话的,所以看完我极度同情那些不得不和他们对话的人。他们所面对的,是混乱含糊,逻辑不清,而且相当粗鲁无礼的对话内容。

事实上,人类让 AI 去做什么事,这是在下达指令、请求。为了便于大众接受和实用,这里抹去了指令、咒语、提示语、Prompt 一类的术语,而是用大白话说:你像是和一个人说话那样,去吩咐 AI 做事。但它本质上就是个指令请求,这一点不会因为描述方式改变而改变。

那么,无论对面是一个人还是一个 AI,你给出的指令请求应该清晰明了,好让对方明确知道自己应该怎么去做—让我吃惊的是,很多人根本做不到这一点,他们连话都讲不清楚。

我看到,很多人上来张嘴就是:「给我分享」「给我照片」。什么图片?关于什么的分享?具体是要给你建议还是帮助解决需求?谁知道你心里想着的具体是什么?

还有人上来就问:「送什么好」。谁送,送谁,为什么送,双方什么关系,什么地区,什么当地风俗?一概没有。于是,AI 弄了一些关于赠送礼物的片汤话回复。看完马上不高兴了:「我要的是送礼的推荐,东西呢?!」。

人可能真的是生来就有不同。我朋友的女儿,我管她叫小妹,小学生一个。有天发来语音问我 AI 绘画的事情,说是让 AI 画了一张仓鼠的图,很不满意,问我应该怎么弄。我让她把自己给 AI 的指令/请求/咒语/提示语/Prompt 发来让我看看,看完之后,我重新构造了一条发还给她,跟她讲:

AI 要知道画什么,你就得给出一系列明确的指示—什么载体、什么材质、什么风格、什么角度、什么镜头、什么光线,然后角色是什么神态、什么姿势、什么动作、什么状态、什么地点、什么空间、什么氛围,你得清晰地指定了,才不会出现你想要 AI 画一张油画,它给你一张照片或者漫画的悲剧。小妹当场就能理解,高高兴兴蹦蹦跳跳自己去尝试了。

我一点都不担心小妹,多余的一句叮咛都没有。为什么?因为我见过她提出请求,我们一起吃饭的时候,她说:「我能不能要两个冰淇淋球,一个香草的,一个巧克力的」。停顿了一下,又补充说:「我可以和妈妈一起分着吃」。

要求非常清晰非常明确,所有人都能听懂她要什么。甚至她还考虑到对方用吃太多不好作为反对理由,预先把补丁给打上了—不是自己一个人全吃掉。

许多人活几十岁,不如一个孩子。我朋友的一任失败前女友就是如此,一开口所有人都想跳上去打。每次她一开口,就是盯着你娇憨地一句:「要」「想要」「我要」「想吃」。她是说什么,你要什么?为什么要?有什么必要?他妈的宾语呢?要煎饼呢要要要!

把话说清楚,把请求把要求把指令一二三四说清楚,让人能听懂,知道你的意图,可以明确根据你所说的去执行,我真的没有想到这其实是一项极高的要求,有那么多人居然做不到,更别说与人真诚的讨论/交流/商量/沟通。这样说起来,我先前的期待其实还不足够低,人们不单不会主动搜索找寻答案,人们连把话说清楚都有相当困难。

总听人在讨论 AI 替代人类的话题。我现在觉得这种讨论都多余,说什么人类和 AI 竞争呢?很多人连话都说不清楚,无法表达自己的意图,无法表达自己的想法,无法表达自己的情感,这本身在人类社会里就会被交际和工作所排斥,因为不知道他在说什么,想要表达什么,如何与其相处,哪里还需要等到被 AI 替代的一天?现在就是高度可替换的。

我以前说,将来的人们可能写不清楚,只能拍个视频出来。现在我担心视频怕是也不成,因为你都不知道他在视频里颠三倒四、莫名其妙说了些什么,世界上就找不出几个人来能听懂。

AI Graph Maker – 免费不登录 AI 生成统计图表,简单美观的数据可视化工具

By: Anonymous
8 January 2025 at 17:44

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

AI Graph Maker 是一个帮助用户快速生成图表的在线工具,通过 AI 整理输入的数据和提示词,再将数据以图表方式输出,在几秒钟快速生成专业的图表,同时还能调整不同的图表配色,如果发现生成的图表有些小问题也能通过编辑功能调整数据。

依照说明 AI Graph Maker 可以制作各种类型的图表,包括扇形图、折线图、条形图、流程图、时间轴、ER 图、思维导图和甘特图等等,默认情况会自动识别、选择最合适的类型,有需要也能手动指定。

最后可以将图表快速下载为 PNG 格式,整个过程无需注册账户,无论是新手或是专业人士都能轻松上手。

使用 AI 图表生成器轻松创建各类图表。将您的数据转换为定制的柱状图、折线图、流程图、饼图和散点图。

进入 AI Graph Maker 后会看到功能介绍、可通过 AI 图表制作工具生成的图表类型,要注意目前不同语言版本的制作工具不一样,使用英文或简体中文的版本功能会比较多,而且制作出来的图表更好看。

AI Graph Maker – 免费不登录 AI 生成统计图表,简单美观的数据可视化工具

点击 AI 图表生成器下方的示例,可以快速带入测试用的内容,例如生成销售数据条形图、网站流量分析折线图、部门员工人数扇形图或是比较学生学习表现的雷达对比图。

右下角有一个「图表类型选择」栏位,默认情况下会「自动」判断,用户可依照需求手动选择,AI Graph Maker 当前支持的类型包括折线图、条形图、雷达图、扇形图、树形图、散布图、关系图、桑奇图、漏斗图。

下图就是使用 AI Graph Maker 示例制作出来的图表,用户只需要将相关数据直接贴上,AI 就会进行后续处理并生成图片,整个过程几秒钟就完成了,可以说非常强大。

我也试着去找一些数据作为示例,搭配上提示词〔要求 AI 将内容制作为图表〕,点击右下角「AI 生成」。

AI Graph Maker 就将条形图制作出来,还能依照用户需求更改单位、显示名称或其他呈现方式。

从图表右下角按钮找到「调色盘」选项,快速将图表切换为不一样的配色组合。

使用不同语言版本生成的图表文字会转成相应语言,可以点击一下右下角「编辑图表数据」按钮就能修改,编辑图表中每个项目的显示文字和数字。

最后,找到图表右下角的「下载」按钮即可将图表保存为 PNG 格式。

认错要快,感激要慢

By: Anonymous
2 January 2025 at 14:57

DUN.IM BLOG

DUN.IM BLOG

有人问我,怎样才是最好的认错时机?说是一直在热身,但始终下不定决心向对方「低头」。

这个问题问我可能没什么用,因为我早就过了那个阶段,我现在的原则是有错当场就认了,绝不过夜。认错要快,这就是我的态度。在网上,有时候我因为理解错误,或者过度自信,结果错怼了人。我的做法是立即认错,有时候还要把留言置顶,让更多人看到。

站在我的角度,我有更为充分的理由不能向网上的一位陌生人「低头」,我也有足够的语言技巧可以把问题搅得天翻地覆,反正大多数读者都会无条件站在我那一边。那我为什么认错得如此爽脆?

因为从心理上来说,因为我的过错而对他人造成了伤害,每多过一秒钟对方的愤怒都会上升一个等级。人在一开始是会期待认错的,如果认错准点到达,那么一切都好说。

最可怕的是人等待到一定时间没有得到任何错意,那么这个人就不再期待认错,而是转向去想着报复,这就会把小矛盾变成私人恩怨,伤害就一定要用伤害来弥补

所以,准点认错都是不够的,最好提前认错,越早越好

至于说自己的面子,或者说是虚荣心,我是这么看的:世间最不值得投入时间精力金钱的就是这类东西,没有一次维护是成功的,没有一次维护从长远上看是有价值的。

尤其是为了面子而坚持不认错,最后很可能连面子带里子全部都会失去,自己会成为错误本身,也会成为错误的代价,而且会是高价。

有错当场就认了,对于自己而言,无论自我感觉多么难堪,认完错后对方表示原谅的一瞬间,事情就可以放下了。我认为这就是认错的福利,人从此不再需要自我折磨,也无需活在后悔或者懊恼之中。

问我什么是合适的认错时机,问我究竟要不要认错,这不是提问,这是人在受折磨。折磨是从哪里来的呢?都是自己找的。

与此对应的,感激要慢,类似的话我说过不止一次。但我觉得值得多说几次,因为人们认错的机会少,但是需要感激的场合多。

收到他人的礼物,得到他人的帮助,受了他人的恩义,有些人坚持当场就要回报,就要感激,觉得不那么做就是占别人便宜。在我看来,这要比坚持不认错还要糟糕。

人际关系不是去小超市买东西。别人送你个礼物帮你个忙,就是老板给你一瓶水,你当场刷过去 3 块钱,大家就算是两清了。清不了的,别人帮助你,你首先得承情

承认这是个人情,是一份情意,然后接受这一份人情,珍惜这一份情意。立即感激,那是要两清的意思,效果和直接打脸差不多—不承认礼物的心意,不承认得到帮助,不承认有任何恩义的存在,大家彼此之间就是个交易,不要有任何羁绊,不要有任何因果。

「蒙此大恩,容后再报」这不是单纯的客气话,「容后再报」的意思就是承情。

去年,我大学好友的遗孀和女儿想去母校看看,但是找不到门路进去,问到我这里来。后来,经我在网上求助,许多老师校友伸出援手,非常妥帖地解决了参观的所有手续。接下来,我做了三件事:

这就是我的个人做法。认错要从重从快,这样对方才会从不痛快变成痛快。认个错还要分步骤,讲策略,那就是自找麻烦,每过一分钟都会让你的错意贬值一大截。迟到的认错就和迟到的正义一样,是一种羞辱。

感激要慢要审慎,要考虑对方的想法,要考虑对方的接受程度。不好把人际关系变成生意或者是借贷,除非你的确不想承这份情,那么当场还礼就算是含蓄地拒人于千里之外。

现代人的习惯刚好相反,认错的时候很慢,很审慎,开口索要帮助的时候很快,很频繁,得到帮助之后感激更快,更干脆。

总体上来说,给人一种不值得相处的感觉,一切都是一笔交易货到付款的感觉。不过,如果现在人人都如此,也是一种新型的人际关系,主打一个短平快,主打一个不粘锅,也不是不可以,反正人间是所有人的人间。

D2Lang – 简单友好强大的文本转示意图片工具

By: Anonymous
9 December 2024 at 17:30

DUN.IM BLOG

DUN.IM BLOG

我们还年轻,可不想看到这个世界处在毫无自由、隐私的边缘。

制作示意图的工具有很多。

我喜欢使用基于文本代码的作图工具,来绘制线框图,比如 Mermaid、Plantuml、Graphviz。

D2Lang – 简单友好强大的文本转示意图片工具

它们都能根据代码,生成图片,非常适合放入代码仓库,进行版本管理。

最近,我发现了一个更易用的同类工具 D2,简单直观,功能强大,下面介绍给大家。

D2 可以命令行使用,也可以浏览器使用。假定你有一个图片代码文件example.d2,那么生成图片的命令如下。

$ d2 example.d2

大部分时候,我都通过浏览器使用它。它有一个线上生成器 play.d2lang.com(下图),把代码贴进去,按下”compile”按钮,马上生成图片。

想要 A 节点(节点的名称为 A),直接输入 A 就可以了。

A

A 只是节点名称,如果要定制节点的内容,就像下面这样写。

A: 甲

接着,添加一个节点。

A: 甲
B: 乙

把它们连起来。

A: 甲
B: 乙
A -> B

连接可以用正箭头(->)、也可以用反箭头(<-),甚至双向箭头(<->)。如果不需要箭头,就直接连线(--)。

箭头上还能添加文字。

A: 甲
B: 乙
A -> B: 连接

节点之间可以有多根连线。

A: 甲
B: 乙
A -> B: 请求
A <- B: 响应

节点的连接也可以写在一行。

甲 -> 丙 <- 乙: 连接

阶段一 -> 阶段二 -> 阶段三 -> 阶段四
阶段四 -> 阶段一: 反馈

这些语法就够画出基本的线框图了,是不是挺简单。

D2 可以绘制非常复杂的图,更多语法参考文档

最后提一下,如果想修改节点形状,方框改成圆形,就像下面这样写。

A: 甲
A.shape: circle

形状甚至可以改成一朵云,表示云服务。

A: 甲
A.shape: cloud

线条颜色也可以改。

A: 甲
A.style.stroke: red

自己动手打造智能物联网设备

10 September 2017 at 15:00

自从前段时间研究了智能家居设备之后,我便迷上了物联网和开源硬件。玩遍了市面上各种常见的物联网产品,总觉得各有不足,于是我突发奇想:干脆自己做一个!

对于我而言,现在市面上的物联网产品最大的问题在于太过封闭,不同厂商的产品都得用自家的 App 才能使用,而且大多数用户体验实在不敢恭维。虽然通过我前一篇博文介绍的方法将它们接入到 HomeAssistant 和 HomeKit 之后使用自由度会高得多,但依然无法满足我自己编写家居智能控制程序的要求。

当我问 Siri 客厅的室温是多少的时候,数据是这样传输的:米家温湿度传感器读取温度数据、通过 ZigBee 信号发送给米家智能网关、通过 Wi-Fi 发送到路由器,路由器再传给树莓派、HA 存储数据、Homebridge 读取和广播数据、手机上的 HomeKit 再通过 Wi-Fi 读取数据……可想而知,数据传输的环节越多,稳定性和数据时效性就越低。比如我想做一个根据电视画面的亮度来调整房间灯光亮度的设备,当电视在播放夜间画面(亮度较低)的时候调暗房间灯光来减轻屏幕反光的影响,反之则调亮灯光方便我吃东西。这时候就需要以百毫秒级的速率来读取光线传感器的数据,一般的商业产品很难满足这种需求。

此外,价格也是很重要的因素:一个硬件成本不超过十元的智能插座零售价高达两百多元;即使选用相对便宜的米家系列传感器和 Sonoff 开关,要实现我心目中真正的智能家居——家中所有电器全部智能化、每个角落都有人体感应器也将是一笔非常可观的开支。

初识 Arduino

于是我开始深入了解开源硬件方面的知识来打造完全合乎自己要求的物联网设备,这时候我发现了 Arduino 这个开源电子原型平台。它本质上是一个单片机,有丰富的针脚接口用于连接各类传感器、伺服器和继电器等等。在电脑上用 Arduino IDE 编写代码后,可以很方便地写入到微控制器上执行。更重要的是由于 Arduino 的软硬件都是完全开源的,让我能以很低的成本获取所需的软件和硬件。

Arduino 有很多种版本,加之以开源的 PCB 图为基础自行生产的第三方产品可谓数不胜数,我选择的是一个可以和我的第三代 Raspberry Pi(树莓派)结合使用的版本——因为 Arduino 本身只是个单片机,并不能像树莓派之类基于 ARM 架构的微型电脑一样连接网络和存储大量数据。虽然市面上 Arduino 也有能实现相关功能的硬件模块,但我依然认为搭配熟悉的树莓派更简单好用。

这个 Arduino 通过串口与树莓派通讯,同时封装了树莓派上的所有 GPIO 针脚,所以需要将它用 USB 线连接到树莓派,然后再将整个 Arduino 都插在它上面。

接入传感器

市面上有非常多的传感器可供选择,且售价大多不过二三十元。Arduino 支持接入模拟和数字两种信号的传感器,我第一个接入的温湿度传感器 DHT11 属于后者,所以要用杜邦线将它插到数字针脚上。

插好之后就可以开始写代码了。Arduino 主要用 C++ 来编程,这是一种我从未接触过的编程语言,还好我学过 Objective-C,所以还算是能读懂;配合万能的 Google、完善的官方文档和传感器厂商提供的实例代码,在开发过程中基本没有遇到什么困难。

虽然厂商提供了已经封装好的代码库,只需调用即可直接读取到传感器数据,不过我对从硬件电路到软件数据的传输和转换过程很感兴趣,于是一探究竟,才知道 Arduino 通过数字接口读取到的是 DHT11 传感器在一段时间内通过电压变化来传输的二进制数值:

按照官方数据表的说明,高电平输出 26 微秒左右表示 0,输出 70 微秒则表示 1,用逻辑分析器即可看到比较直观的效果,这里我偷个懒在网上找了一张已经标注好的图:

这里可以看到传感器总共输出了 40 位的数据,其中前 16 位是湿度,紧接着的 16 位是温度,最后 8 位则用于校验数据有效性,若为温湿度数值之和即为有效;温湿度的 16 位数据中只有前 8 位是有效数据,后 8 位是奇偶校验位,这里全部为 0,可直接忽略。

按照上述规则来解析,图片中的二进制湿度数据为 00011110,温度为 00011001,将它们转换成十进制即可得到最终结果:30% 相对湿度和 25 摄氏度。再计算一下 00011110 + 00011001 = 00110111,即最后 8 个奇偶校验位的数值,证明数据是有效的。

当然实际使用时并不需要自己计算这些,只要引入官方提供的代码库,简单调用一下即可获取传感器数值并通过串口输出,非常方便。

这里要吐槽一下 Arduino IDE 的代码编辑器,功能简陋到基本就是个带语法高亮的记事本,然而它的流畅性和视觉效果甚至还不如记事本……让我不得不在 Sublime Text 里写代码再复制过来编译。

接下来试试光线传感器,它传输的是模拟信号,所以要插在模拟接口的针脚上。软件方面就简单多了,调用 Arduino 内置的 analogRead() 方法即可获取亮度数据。

将数据传送到树莓派

现在已经可以用 Arduino 读取传感器的数据,接下来就要将数据传送到树莓派来做进一步处理。实际上之前所写的代码已经可以让 Arduino 把数据通过串口输出到树莓派上了,所以真正需要做的只是在树莓派上写个程序来读取串口输入的数据,我是用 Python 写的,只需六行代码。

测试成功后我又在 Arduino 上接入了六七种传感器,读取数据的方法都大同小异,这里就不再展开;不过随着数据量的增加,需要对数据进行封装才好解析。这里我选用了 ArduinoJson 库将数据转换为 JSON 格式输出,这样在树莓派上用 Python 读取就方便多了。

在树莓派上用 Python 读取到传感器数据之后,就可以自己写个程序通过我前一篇文章提到过的 HomeAssistant API 来自动控制家里的其他电器了。至此我的智能物联网终端已经初步完成,当然我还会继续研究如何实现更多新奇有趣的用法,包括如何进一步脱离网络传输,完全在本地直接控制电器等等,相信没有做不到,只有想不到。在学习 Arduino 传感器的过程中我还顺便了解到了很多关于电机、伺服器、继电器、ZigBee 通讯协议和无线充电的相关知识,让我很感兴趣,说不定哪天我会一时兴起,给它装上轮子和机械手臂,做成 AI 机器人管家之类的东西,哈哈。

HomeKit 智能家居深入体验

8 August 2017 at 16:55

作为一个从小就爱捣腾数码产品的人,我对智能家居自然有着浓厚的兴趣。最近家里重新装修,便换上了批智能家居设备,我也借此机会对这个新兴领域深入研究了一番。

我觉得智能家居最重要的一点,就是用起来要比传统的控制方式更方便。这听起来像是废话,可实现起来却并不太容易,毕竟绝大多数所谓“智能家居”配套的 App 都非常非常非常难用,比如下图这种画风……即便难得遇到些好用的,想控制不同厂商的设备还得打开不同的 App 也是挺傻的一件事。

还好 Apple 去年发布了 HomeKit 平台,通过这个平台可以将不同厂商的智能家居设备聚合在一起显示和控制,并且深度集成到了 iOS 系统里,在锁屏状态下都可以直接控制所有智能家居设备,完全不需要打开厂商提供的 App;甚至可以不碰手机,直接喊 Siri 帮你控制即可,非常方便(逼格也不知要高到哪里去了);配合 Apple TV 或 iPad 作为控制中枢还能实现人不在家时的远程遥控和自动化控制等等。

然而 HomeKit 虽然已经发布了一整年,硬件的支持情况却并不理想,在国内更是没有得到足够的重视,很多标榜智能家居的厂商甚至不知其为何物。无奈之余,我也本着极客精神,开始研究自行接入的方法。

梳理一下我家的电器设备,大致可分为以下三类:

  1. 原生支持 HomeKit 的设备,如 Philips Hue 系列灯具等;
  2. 完全不支持通过网络控制的传统电器,比如空调、新风系统和电动窗帘;
  3. 可以通过网络控制,却未提供原生 HomeKit 支持的设备,比如米家系列、Sonoff 开关和 Dyson 风扇。

下面我就分享一下我的研究(折腾)经历,看看我是如何把它们统统加进 HomeKit 里的。需要注意的一点是:本文仅为个人经验分享,并不是教程,所以一些细节问题我就不展开了。相信网上已经有了不少相关教程,若有需要可自行搜索,也可以在这里评论与我交流。

原生支持的设备

这里是指生产商官方提供 HomeKit 支持的设备,普通用户就能开箱即用。然而所支持的设备并不多,我手头只有 Philips Hue 系列灯具和 OPSO 的智能插座等。

添加 Hue 灯具的方法非常简单:把 Hue 网关用网线接到路由器上,在官方 app 里根据提示搜索并绑定网关,然后添加灯具即可,完成后扫描一下网关上的序列号,所有灯具都会自动同步到 HomeKit 里。

不得不说,Hue app 的界面设计和用户体验是我所用过的智能家居类应用里最好的。不过把灯都加进 HomeKit 之后,这个 app 也就没太大用处了。

接下来是 OPSO 的智能插座,这是 Apple Store 官网上的唯一一个支持 HomeKit 的国产设备,产品包装很有苹果风,做工也不错,只需在 iOS 自带的 Home app 里扫描设备上的序列号即可使用,非常方便。不足之处是有点不太稳定,使用几天后出现掉线的情况,需要重置设备后重新绑定才能用,希望可以尽快通过固件更新解决。

添加之后默认显示的是插座图标,不过可以手动将它修改成一个灯泡

这就是目前作为普通用户所能体验到的 HomeKit,但我并不会止步于此,下一步将会用些非常规的技术手段把那些并未提供原生支持的设备也加进来。

要实现上述功能,需要借助一个名为 Home Assistant 开源平台(下面简称 HA),它运行在基于 Linux 的系统上,可通过 Web App 和 API 来访问,接入不同的模块即可控制局域网内的各种智能家居设备。

搭建 HomeAssistant

首先需要一个基于 Linux 系统的设备来运行 HA,由于它需要 24 小时不间断运行,所以我选择了超低功耗的第三代 Raspberry Pi(树莓派)。它虽然才一个巴掌大,本质上却是个功能完善的、基于 ARM 架构的电脑,USB、HDMI 和网线等接口一应俱全。

考虑到这台树莓派主要用于运行 HA,我选用了 HA 官方提供的 hassbian 系统。从 HA 官网下载 hassbian 镜像,在电脑上用 Etcher 写入到空白 TF 卡中即可。

安装完成后,将 TF 卡、电源线和网线都插到树莓派上就可以开机了。首次启动时 hassbian 会自动安装和配置所需环境,等待一两分钟后,在局域网内的其他设备上访问 http://hassbian.local:8123 就可以进入 HA 的 Web App 主界面。

这里可以看到 HA 已经自动识别了 Philips Hue 网关和局域网内的两台 Apple TV。这里的 Hue 是可以一键配置的:点击 Configure 再按下 Hue 网关上的实体按钮即可将所有相关灯具都自动添加进来。虽然 Hue 灯具本身已经可以用 HomeKit 控制了,但在 HA 中可以实现更多有趣的玩法,比如自动循环变色等等。

接入传统遥控设备

下一步开始接入那些不能通过网络控制的传统电器,这里需要用到另一个硬件:可以联网的万能遥控器。经过一番比较,我选择了对 HA 支持较好的 BroadLink,它可以发射用于控制空调等电器的红外射频信号和窗帘电机的 FM 433Mhz 信号。

单从硬件角度来看 BroadLink 非常不错,但是它配套的 iOS app 实在是……太!差!了!还好它对 HA 有着良好的支持,所以用这个 app 把它连上 Wi-Fi 之后就可以果断删掉了。

按照官方文档中的说明将 BroadLink 的 IP 和 MAC 地址等信息填入 HA 的配置文件后,在服务列表里就可以看到它了。通过 HA 调用 learn_command 指令,BroadLink 将会进入学习状态。此时用空调遥控器对着它按下开机键,HA 首页便会显示遥控空调开机的指令代码。

接下来要做的就是将这个指令代码按照官方文档的格式复制到 HA 的配置文件里,并给它设置一个名称。用同样的方法配置关机键后,重启 HA 即可在首页看到空调的开关。在 Web App 上点击开关,HA 便会读取这个指令代码并通知 BroadLink 对着空调发送与普通遥控器相同的控制信号,达到通过网络控制电器的目的。

窗帘电机、风扇和空气净化器等其他有遥控器的电器设备也用同样的方法设置之后就都可以通过 HA 来控制了,下一步是将 HA 接入到 HomeKit 上。

连接 HA 与 HomeKit

这里需要用到一个叫做 Homebridge 的工具,它可以在树莓派上调用 iOS 的 HomeKit API 虚拟出一个网关来,然后再用它的 HA 插件将之前添加过的电器都同步到 Homebridge 即可实现操作。安装过程非常简单,参考这几篇官方教程即可:

Homebridge 的 Github 主页
https://github.com/nfarina/homebridge

在树莓派上安装
https://github.com/nfarina/homebridge/wiki/Running-HomeBridge-on-a-Raspberry-Pi

与 HA 建立连接
https://github.com/home-assistant/homebridge-homeassistant

安装完成之后就可以在 iOS 设备上的 Home app 里添加 Homebridge 了,这里与原生支持 HomeKit 的硬件相同的添加步骤完全相同,只不过设备名称和设备序列号都可以在配置文件里自定义,能把自己的名字写到“厂商名”处的感觉还是挺好玩的。

至此,HA 上的所有电器设备就都可以直接通过 HomeKit 来控制了。下一步接入能通过网络控制但未提供原生 HomeKit 支持的电器,比如小米家居(米家)系列。

接入无原生支持的设备

我家的绝大多数单联墙壁开关都是米家的 Aqara 系列,经由米家多功能网关控制。使用 homebridge-aqara 插件即可将小米网关添加到 Homebridge 上。

插件安装完成后,需要在配置文件里填入网关的协议密码和 MAC 地址,获取这些信息需要用到一个小窍门:首先打开米家 App(iOS / Android 版本均可)并绑定网关之后,点击网关界面右上角的 ··· 按钮进入“关于”界面,接着快速连续点击界面底部的空白区域,直到列表中出现“局域网通信协议”和“网关信息”的选项;接下来进入通信协议界面,打开上面的开关即可看到协议密码;MAC 地址则藏在“网关信息”界面里的那堆 JSON 格式的信息中。将这些信息一起复制到插件的配置文件里,保存并重启树莓派即可。由于之前已经将 Homebridge 添加到了 HomeKit 里,现在新加入的米家设备都会自动同步过来。

至此,我已经可以用 HomeKit 控制我家几乎所有的电器了,但这还仅仅是个开始。随着 iOS 11 的发布,HomeKit 平台也得到了进一步加强,同时相关协议也逐渐公开了,相信以后会变得更智能、更好用。借助 HA 和 HomeKit 这两个强大的平台,可以充分发挥想象力来实现一些很有意思的玩法。例如配合人体感应器实现走进房间时自动开灯;通过设置情景模式实现跟 Siri 说“我要去洗澡了”即可自动关窗帘和开浴室灯等等;此外,我还用 Sonoff 智能开关、淘宝二十元买的电磁水阀和五金店买的几截水管 DIY 了一个自动滴灌系统,出门在外时也可以远程操控它给家里的花花草草浇水。

题外话

除了 HomeKit 外,HA 还能配合 IFTTT 和 Workflow 等效率工具以及各种开源项目实现更高级的用法,以及通过 RESTful API 实现与各种编程语言的双向通讯,使自己编写家庭控制程序成为可能,即使你没有 iOS 设备也可以愉快地玩耍。

比如我就随手写了一个 Linux 的 HA 客户端,当我想在 macOS 上关闭卧室空调时只需输入如下命令即可。由于我经常开着 Terminal,所以用这个比打开浏览器再进入 HA 的管理页面控制要方便得多(同时还附带满分装逼效果)。

我还更进一步,用 Python 写了个小程序来实现更智能的自动化功能,它除了有根据实时天气自动调整室内的灯光之类的基础功能外,还可以和我日常生活中的其他方面连接起来,比如当我的网站或者 Vary 的服务器出现异常时,会将我房间的灯全部调成红色以作警示;当手机定位我和家人都不在家,但人体感应器又检测到有人活动的时候(有贼!)就把家里所有的灯都改成阴森昏暗的蓝绿色……由于本文是以 HomeKit 为题,这些高级玩法就不详细展开了,如果大家感兴趣我就找时间再单独写一篇文章谈谈吧。

❌
❌