2025-08-02 13:00:00
或许你曾经有过这样的经历,你想要把自己的屏幕分享给自己的好友或者是工作伙伴,你会发现自己可能需要打开 Microsoft Teams 或者是 Google Meet,然后使用它内建的屏幕分享的功能来分享自己的屏幕。但是这些工具的话,他们要不就是需要你们共同拥有账号,并且打开可能会有几秒钟的延迟,要不就是他们分享的质量会很差,甚至都无法看清自己的屏幕上的文字或者代码。
这就是 Screego 的作者编写这样的一款屏幕分享工具的初衷,作者想要创建一个解决方案,让用户可以通过低延迟的方式轻松地分享自己的屏幕。并且这个工具也只仅仅做一件事情,可以不依赖于任何的其他应用。
Scree Go 是一款使用 Go 语言和 TypeScript 语言编写的开源屏幕分享应用,兼顾高质量、低延迟和易部署,适用于远程协作、在线演示及代码评审等多种场景。
Screego 主打“简单”、“高效”、“安全”三大核心理念:
相比于企业级视频会议工具,Screego 专注于屏幕共享,不含多余功能,减小了运行体量,降低了部署与运维成本,非常适合技术场景下的轻量级协作。
下面我们以 Docker 为例介绍一下最简单的部署流程。
可以参考我的 docker compose 配置文件。
cp env .env
docker compose up -d
等待服务启动访问本地的 5050 端口即可。
如需开启强制登录,可将 SCREEGO_AUTH_MODE=all
写入配置,并通过 ./screego hash -h
生成用户凭据文件。
更多的配置选项可以参考官网的 Config。
这种极简操作流程,免除繁琐注册及安装,大幅降低协作门槛,非常适合远程 Pair-Programming、在线 Code-Review 及技术培训场景。
2025-07-27 13:00:00
昨天,花了半天的时间去听了 Andrew Huberman 的一个 YouTube 视频 —- The Science of Making & Breaking Habits,主要讲的是从神经科学结合心理学的角度,探讨了习惯的形成和破除机制,并且 Huberman 教授提供了多项实用的工具来帮助我们培养习惯以及破除我们不希望的习惯。
Andrew Huberman 是斯坦福大学医学院神经生物学和眼科学教授,同时兼任神经病学和行为科学客座教授,他著有大量关于视觉神经和神经可塑性的研究论文。
2021 年,Huberman 创办并主持了 Huberman Lab 的博客, 聚焦科学驱动的健康和性能优化, 探讨睡眠、压力管理、注意力、神经可塑性等话题, 节目的订阅量常年位居科学与健康类排行榜的前列。 他同时还担任多家健康科技公司的科学顾问, 将实验室研究成果应用于运动员、 军队、普通人群的性能提升和心理健康管理。
习惯源于神经的可塑性,即神经元的连接随着行为的重复而强化。习惯是通过神经可塑性形成的,是行为从有意识到自动执行的过程。 在大脑的基底节区域形成神经回路,使行为成为「反射」而非持续思考的结果。
NMDA 受体,当神经元强烈激活时,NMDA 受体启动机制,使对应突触更易再次被激活。
基底节(basal ganglia)中的背外侧纹状体(dorsolateral striatum, DLS)负责“任务划框”(task-bracketing),在习惯开始和结束时分别标记,为自动化执行搭建神经框架。
为了让下面的论述更容易,我们先来了解一下 Huberman 教授提出的几个核心概念。
Limbic Friction 边缘阻力,它是用来描述参加某种特定的行为,你需要付出多少的努力以及多少的激活能量。 我们可以把它理解成我们去实行某一个习惯的阻力。
Huberman 教授在视频当中提到了两种状态。 一种是过度焦虑,无法平静。 另外一种状态是太疲惫。 这两种状态都会去阻碍我们实施某项习惯。
Task bracketing ,任务边框,约定了我们的习惯是否依赖于环境。 神经学当中,有一个背外侧纹状体, 它负责在习惯的前后建立神经标记。
约伟曼教授在视频当中提到了一个叫做 Habit Strength 的概念, 也就是说我们的一些习惯是和环境无关的, 比如说刷牙, 无论你在什么地方, 你在旅行的途中, 你都会一直在做的事情。 但是有一些习惯,比如说我们正在培养的习惯, 那有可能会随着我们环境的变化而发生改变,那这样的一些习惯就是环境有关的。
为了去形成长期稳定的习惯, 我们就需要去建立跨环境、跨情绪的稳定执行习惯的方法。
情境依赖指的是行为在稳定的时间、环境当中更容易触发。 可以把情境依赖和 Limbic Friction 两者用来理解成为评估新习惯的难度。
程序化记忆可视化 Procedural Memory Visualization 闭眼或在脑中进行演习 习惯的步骤 从开始到完成 逐一细化 ,这个动作的目的是为了降低边缘阻力(limbic friction)。
Huberman 教授在视频当中提到了两种不同的记忆方法。 一种叫做 absurdic memory,情景记忆。 它是对发生的一组特定事件的记忆。 另外一个叫做 procedural memory,程序记忆。 它是为了记住实现特定的结果, 而需要发生事件的特定顺序。 比如说我们拿食谱来做比喻。 那 procedural memory 它就是记住做一个食物的顺序。
当我们会做某一道菜的时候, 那其实我们自然而然的就会去做我们的行为, 而不需要特意的进行一个记忆。
我们去强化每一个步骤的具体实施过程, 可以帮我们更好的提高养成习惯的可能性。
从神经学的角度讲,我们的大脑里面有海马体。 我们去记忆菜谱的烹制方法的这一个流程, 大脑会首先存储在海马体里面。 当我们知道怎么去做这一道菜之后, 就会从海马体中迁移到大脑皮层的神经回路里面。 当迁移发生之后, 它就成为了 context-independent 的行为,我们无论在什么环境中都可以游刃有余地做出这道菜。
Newberman 教授提供了一种方式, 让我们去可以构建我们自己的 Task Bracketing。 也就是说,将我们的一天分成三个不同的阶段。 每一个阶段,人的身体状况,多巴胺,肾上腺素,皮质醇等都不太一样。 所以教授推荐了三个不同的阶段, 分别可以去进行不同的养成习惯的行为。
Huberman 给我们了一个具体的习惯养成的计划。 也就是说,在 21 天的时间里面, 我们制定 6 项新的习惯。 我们需要每天完成 4 到 5 项。我们可以允许自己不做某一项。 通过长期的重复, 我们可以形成稳定的习惯, 同时容错机制降低失败的压力。
养成习惯的方法并不完全取决于你试图养成的习惯, 而是在于每天做一定数量事情的习惯。 有一些事情可能我们并不需要每天都进行。
有一些坏习惯,我们可能养成得非常快, 但是我们可能并不意识到。 比如说,我们可能拿起手机之后长期地刷社交媒体,或者玩游戏。我们可能尝试过很多方式去修正自己的坏习惯,比如不做某事时,或者奖励,或者是做某些事情的时候,惩罚自己。 Huberman 教授提出了一个坏习惯的积极补偿机制。 就是当我们去想要修正某一个坏习惯的时候, 当我们意识到我们做出坏习惯时, 就立即在坏习惯之后紧接着补上一个好的行为。 通过这种方式去打断坏习惯的神经模式, 重新连接有益的回路。
比如说我们意识到自己频繁的在工作学习环境拿起手机,那么我们可以在意识到的时候,立即补偿一个「好的习惯」,比如背诵一个单元的 Duolingo 学习语言,或者去喝一杯水,看看远处放松一下眼睛等等。
实话说,看完这个视频,对我自己的触动还是挺大的,其实我在好几年前就开始过 21 天习惯养成的计划,在这个计划当中,我也去学习了 [[Laravel]],[[Flutter]] 等等好几个我感兴趣的内容的学习,但是事情发展和 Huberman 教授说的一样,当我们完成我们的 21 天计划之后,实际上并没有形成一个长期稳定的「习惯」。一方面是当我们去完成一组 21 天计划的时候,通常会伴随着一个阶段的拖延,当我再次想起时,却又会被其他的事情打断。另外一个让我耳目一新的就是 Huberman 教授提出了坏习惯补偿的机制。 我从来没有想过我们去改正一个坏习惯的时候 可以通过这样的方式, Huberman 教授在视频当中也提到了 我们通过坏习惯补偿的机制 我们极有可能会形成一个坏习惯 同时也培养出一个好习惯,形成一个双习惯的一个模式。当然,我这篇文章的寥寥数语是没有办法完全的概括整个视频长达 90 分钟的内容的。果大家感兴趣的话,还是推荐去 YouTube 上或者是说去 Spotify,苹果 Podcast 去收听一下 Huberman 教授的这一期 Podcast。
2025-07-22 13:00:00
在之前的文章中遗留下来一些没有解决的问题,当时只是记录了一下, 后来因为只使用了 local 集群就没有继续调查,现在想要创建 K3s 集群的时候再次遇到了类似的问题。
在 Rancher 中创建新的 K3s 集群时,在节点上运行注册脚本的时候抛出如下的错误。
[FATAL] Aborting system-agent installation due to requested strict CA verification with no CA checksum provided
原因是 agent-tls-mode 处于严格(strict)模式,并且命令行中缺少了 --ca-checksum
的参数,所以脚本会直接终止并抛出以上的错误。
Rancher >= 2.9 之后默认开启 strict 模式,解决该问题有如下的三条对策
--ca-checksum hash
,安全级别最高,后续需要更新证书CATTLE_AGENT_STRICT_VERIFY=false
最简单绕过检查,但是不建议在生产环境使用,违背零信任原则。注册的命令类似
curl -fL https://<RANCHER_HOST>/system-agent-install.sh | \
sudo sh -s - \
--server https://<RANCHER_HOST> \
--token <TOKEN> \
--etcd --controlplane --worker
当 strict + 空 CATTLE_CA_CHECKSUM 同时满足时,脚本第 224 行直接 fatal 退出。其目的在于防止 MITM 将节点导向伪造的 Rancher 站点。
计算并附加正确的 --ca-checksum
下载 Rancher CA 链
curl -sSL https://<RANCHER_HOST>/cacerts -o cacerts.pem
返回的是 PEM 格式证书链。
生成 SHA256
sha256sum cacerts.pem | awk '{print $1}'
在注册命令中携带
curl -fL https://<RANCHER_HOST>/system-agent-install.sh | \
sudo CATTLE_AGENT_FALLBACK_PATH="/usr/local/bin" \
sh -s - \
--server https://<RANCHER_HOST> \
--token <TOKEN> \
--ca-checksum 4f7975c796XXXXX \
--worker
验证节点
kubectl get nodes -o wide | grep <NEW_NODE>
状态从 Registering 变成 Active,并且 system-agent Pod 运行。
但是该方案需要自行配置 CA 证书,如果没有自己的 CA 证书,那么可以采用方案 2.
自 Rancher 2.9 开始,新安装默认 strict;从旧版本升级者仍保持 system-store。
在 侧边栏,Global Settings 中找到 agent-tls-mode。然后点击 Edit,选择 system-mode ,保存。
本地以及下游集群条件 AgentTlsStrictCheck=True
如果是 Helm 安装的 Rancher 也可以通过命令
helm upgrade rancher rancher-stable/rancher \
--namespace cattle-system \
--set hostname=rancher.yourdomain.com
--set agentTLSMode=system-store
修改 Helm 后须保持以 Helm 为准;后续请勿再在 UI 里篡改该值。
可以在注册命令中指定
curl -fL https://<RANCHER_HOST>/system-agent-install.sh | \
sudo CATTLE_AGENT_STRICT_VERIFY=false sh -s - \
--server https://<RANCHER_HOST> \
--token <TOKEN> \
--worker
脚本逻辑:若 CATTLE_AGENT_STRICT_VERIFY 明确设置为 false,即便 agent-tls-mode 是 strict 也会跳过 fatal 分支。
不可在生产使用,以免遭中间人攻击。
2025-07-18 13:00:00
之前有写过一篇文章,大致地总结了一下自己关于Duolingo的一些想法,前段时间在打卡了 800 天之后,把 Duolingo 中的英语韩语和日语全部通关到了最后只能每天重复,所以发了一个推特帖子想要寻找一下比 Duolingo 更深度一些,每天可以坚持记忆一些语言支持的「工具」。我个人非常不喜欢直接拿一个背单词应用就开始背诵的方式,虽然我承认只要长期坚持还是会有一定的效果,但是一方面是效率很低,背过的单词不容易被想起来,另外一方面也是单纯的背单词非常的无聊。我也尝试过在浏览网页的时候将生词存放到 Anki 中,然后定期回顾,但是单词脱离了上下文,总是感觉还是像是在一个个过单词,我在之前的文章中介绍过 Comprehensible Input (可理解输入),但实际上自己一直没有好好地践行,看过一些日剧,日综,但是现在还是韩剧/韩综看得更多,在日常生活中英文的材料看得更多,日文的内容输入相对就比较少,也尝试过找一些日语的播客,但是以我现在的水平,最基础的都有一些费力的情况下,还是没有达到可以收听日语播客的程度。所以,这段时间我就是一直在没有找到比 Duolingo 更好的,又能够随时随地可以拿出来打个卡的服务,直到我看到了 LingQ,第一次注意到 LingQ 还是在 GitHub 中看到一个仓库是将 NHK Easy News 导入到 LingQ,隔天我就又看到一位朋友也在推荐 LingQ 作为沉浸式阅读工具,所以我就决定好好来研究一个这个工具。
LingQ 是由知名多语言学习者 Steve Kaufmann 创立的多语种线上语言学习平台,主打“沉浸式输入”。和传统死记硬背、枯燥课本不同,LingQ 强调通过真实、有趣的内容——比如新闻、播客、小说、YouTube、Netflix 等材料——来帮助用户自然习得多国语言。Steve Kaufmann 本人精通 20 种语言,通过 45 年传统方法学会了 9 种语言,但仅用了 10 年时间就学会了另外 7 种语言。LingQ 的学习方法基于语言学家 Stephen Krashen 的 [[Comprehensible Input]] (可理解输入理论),即通过接触略高于当前水平的语言材料来实现自然语言习得。
LingQ 的功能可以简化成三个步骤,导入材料,阅读中标记生词,间隔重复记忆,在完成一轮阅读之后,会有两个步骤进行巩固,间隔重复记忆的时候 LingQ 会自动追踪学习进度。
用户可以安装 LingQ 的浏览器插件,在任意的网页将内容导入 LingQ。
推荐可以从自己感兴趣的新闻、小说、视频等,将内容导入,在阅读时如果遇到生词,添加到生词本,然后利用 SRS 间隔重复工具,记忆单词和短语。也可以设定目标和社区中的成员互动,保持学习的热情。
LingQ 提供免费基础版(有学习上限/部分功能受限)和付费高级版,高级版才支持导入内容、无限量词汇学习、离线等功能。实际价格因地区而异,大致月费在 12–15 美元,年付更划算。
免费版本
Premium 计划
根据最新定价信息(2024 年): 月付:12.99/ 月 年付:$8.99/月(按年计费 $107.88) 两年计划:$7.99/月(按两年计费 $191.76)
Premium 功能包括:
Premium Plus 计划
月付:$39.99/月 年付:$35.99/月(按年计费 $431.88)
Premium Plus 额外功能:
特点 | LingQ | Duolingo |
---|---|---|
学习方法 | 大量输入(阅读、听力、真实内容),重点培养语感 | 游戏化设计,句型/词汇小练习为主 |
内容来源 | 新闻、小说、播客、YouTube、可自定义导入 | 系统内预设课程,无法导入材料 |
单词复习模式 | 间隔重复系统(SRS),基于真实内容 | 题组重复,填空/选择题形式 |
支持语言种类 | 40+ 种语言,包含冷门语种 | 40+ 种语言,部分为测试版或基础 |
语境真实性 | 原汁原味真实素材,输入量大 | 教材化语句,语境有限 |
适合人群 | 希望通过输入快速进阶/有基础的学习者 | 零基础入门,轻度娱乐式学习者 |
自由度 | 极高,可导入任何外部材料 | 受系统内容限制 |
付费情况 | 付费高级版才解锁全部功能,部分功能限制较严 | 免费广告版/付费去广告进阶功能 |
建议可以先用 Duolingo 建立基础学习习惯和基本词汇,转向 LingQ 进行深入的沉浸式学习。
2025-07-15 13:00:00
在 AI 辅助代码生成领域,从来不缺竞争者,现在 Amazon 正式加入了战争推出 Kiro AI IDE,Amazon 在之前就推出过智能助手 Amazon Q,以及代码补全插件 CodeWhisperer,但是在激烈的代码生成领域依然没有竞争过 Cursor,Windsurf,Claude Code 等一众的领跑者,甚至声量都没超过 Gemini CLI。现在推出的 Kiro 是一个集成的开发环境,至此互联网巨头中除了苹果没有推出 AI 辅助编码的工具之外所有的公司都已经有了对应的产品。
Kiro 的核心在于 Spec Driven Development,设计驱动开发,其他的 AI 编程工具虽然能快速生成代码,但是往往缺乏系统性的设计和思考,Kiro 通过将开发过程结构化,确保每个功能都是经过完整的需求分析,设计规划的。
“Vibe Coding” 指通过自然语言提示迅速生成可运行 Demo 的开发风潮,但随之产生的技术债务与文档缺失让企业难以直接上线。AWS 发现,开发者需要一种工具,既保留快速迭代的愉悦,又强制输出可审计的需求、设计与测试工件。Kiro 正是在此诉求下诞生,目标是把“vibe”转化为“viable code”,并同 Cursor、Windsurf 等新兴 IDE 形成差异化竞争。
Vibe Coding 过程的痛点
在 Kiro 中,“Spec” 是由三份 Markdown 文件组成的规范集合:requirements.md 承载 EARS 需求条目,design.md 记录技术架构与序列图,tasks.md 拆解可跟踪任务。通过把自然语言提示转译为结构化规格,Kiro 使 AI 代理具备可验证的实施边界,降低多轮对话歧义。
Specs 是 Kiro 的核心功能,它将开发者的简单提示转化为结构化的规格文档,包括:
标准流程分四步:
任何修改都会触发差异视图与回滚选项,确保文档与实现一致。
Hooks 功能提供事件驱动的自动化任务,类似于经验丰富的开发者在后台协助:
Hooks 是一组事件驱动自动化,可在保存、创建、删除文件或手动触发时启动代理执行任务。典型场景包括保存 React 组件时同步生成测试、提交前扫描敏感信息。
Steering 文件存放于 .kiro/steering/
,为代理注入持久上下文,如技术栈、命名规范。
通过创建 steering 文件,开发者可以为项目提供上下文信息,包括架构、技术栈和编码规范,确保 AI 智能体始终按照项目特定的要求工作。
Kiro 支持 MCP 本地或远程服务调用,可以在 mcp.json
文件中声明。
预览版本 Kiro 完全免费,正式版本规划
Kiro 集成多模型对话,支持 Claude Sonnet 4/3.7 及其他 Bedrock 模型,具备上下文感知的代码补全、重构与测试生成能力。
Kiro 支持多种输入格式,包括文件、代码库、文档、图像、Git 差异、终端输出等,构建全面的项目理解能力。
Kiro 作为一个预览版的产品,个人感觉目前还有很多不足的地方,虽然 Specs 的概念很好,但是生成规范文档和约束非常慢,
另外也经常出现用着用着就不能用的情况。
还有这个错落有致的图标是怎么回事,发布都没有对齐。
2025-07-10 13:00:00
SuperClaude 是一个 开源的 Claude Code 增强工具,提供了额外的命令,人物角色(Personas),以及更好的 MCP 服务集成。
本文将系统性介绍 SuperClaude 是什么,如何安装和使用,以及如何使用增强的命令,如果还没有安装 Claude Code,可以先阅读之前的文章。
尽管 Claude Code 拥有 200K 的上下文和自主执行能力,但是在大型项目中仍然存在上下文漂移,指令重复,输出冗长以及巨大的成本(Token)消耗等问题。
SuperClaude 并不是二次开发 CLI,而是通过配置增强,将 CLAUDE.md / RULES.md / PERSONAS.md / MCP.md 等等内容配置到 ~/.claude
中,开箱即用,并不需要额外的依赖。
SuperClaude 尝试给 Claude Code 提供更好的命令
SuperClaude 通过家配置安装到 ~/.claude
目录下,指导 Claude Code 更好的响应用户的需求。
新增加了如下的命令
/sc:implement
、 /sc:build
、 /sc:design
/sc:analyze
、 /sc:troubleshoot
、 /sc:explain
/sc:improve
、 /sc:test
、 /sc:cleanup
/sc:document
、 /sc:git
、 /sc:estimate
、 /sc:task
、 /sc:index
、 /sc:load
、 /sc:spawn
SuperClaude 增加了如下的角色,当发现用户的输入符合这些领域的时候,会尝试介入
但是需要注意,SuperClaude 并不能保证每次都能完美匹配上这些角色。
内置了 MCP 集成
claude mcp add --transport http context7 https://mcp.context7.com/mcp
claude mcp add sequential-thinking npx @modelcontextprotocol/server-sequential-thinking
# https://21st.dev/magic/console
claude mcp add magic npx @21st-dev/magic@latest --env API_KEY=XX
claude mcp add playwright npx @playwright/mcp@latest
确保本地有 Python 执行环境
# Clone the repo
git clone [email protected]:NomenAK/SuperClaude.git
cd SuperClaude
# Install with our unified CLI
python3 SuperClaude.py install --quick
安装完成之后,可以到 ~/.claude
目录中查看到新追加的配置。
可以运行 claude
进入 Claude Code,然后可以在其中验证,比如说执行 /analyze
命令,就可能看到有显示 /sc:analyze
这样的内容,表示安装成功。
/design
给出步骤,人工确认之后使用 /build
降低误改风险。/git --checkpoint
来暂存修改无误的内容,小步快跑,防止上下文污染以及 AI 修改错误后的回滚/cost
实时监控用量