Picknplace.js: A Three-Step Alternative to Traditional Drag and Drop for Better Mobile Experience
Discover Picknplace.js, an innovative three-step interaction library that replaces traditional drag-and-drop for better mobile user experiences.
Discover Picknplace.js, an innovative three-step interaction library that replaces traditional drag-and-drop for better mobile user experiences.
开发者同时使用多个AI编程Agent(如Claude Code、Codex、Cursor、Gemini CLI等)时,常面临对话记录分散、难以检索的问题。GitHub用户iAmCorey开源的会话管理工具Wake针对这一痛点提供了解决方案。Wake原生支持20余款Agent工具,除主流的Claude Code、Codex、Cursor、Gemini CLI外,还包括Kimi、Devin、OpenCode等国内外产品。其核心功能包括:全文秒级检索,不仅可搜索会话标题,还能直接检索对话中的代码片段(如useEffect())和报错堆栈,并支持按当前项目过滤;一键恢复功能,即使终端已关闭,也能在iTerm、Ghostty或桌面客户端中一键还原会话现场;细节还原,支持查看Agent的思维链(Thinking)和工具调用的输入输出详情,甚至支持子Agent会话穿透查看。产品形态上,Wake提供桌面客户端GUI和命令行工具wake-cli两种使用方式,还可作为外挂让Agent查询历史会话记忆,或让一个Agent基于历史对话接手另一个Agent的任务。该工具完全只读,采用轻量索引,不影响系统性能,适合多Agent重度使用者。
核心观点:Coding Agent越繁荣,会话管理这类'卖铲人'工具越先受益,碎片化生态正在倒逼统一记忆层的诞生。
原文链接:Linux.do
Anthropic官方技术博客发布了一篇由Claude Code团队成员Thariq撰写的长文,专门解答开发者社区中频繁出现的问题:Claude Code中的effort档位(low/medium/high/xhigh/max)究竟应该如何选择。文章核心观点是,effort档位本质上控制的是模型工作的投入力度:它决定Claude在完成任务时会做多少验证、测试多少边界情况,以及在多大程度上深入探索问题的各个分支。档位越高,模型会进行更充分的自我检查和更全面的边界覆盖,相应消耗更多时间和token;档位越低则响应更快、成本更低,但验证深度随之下降。该文章发布后引发社区关注,Linux.do论坛用户借助Claude Opus 5.5将其转制为教学视频并上传至哔哩哔哩,视频按原文顺序逐段讲解官方观点,标题为《Anthropic官方长文解读:Claude Code的effort档位该怎么选》。视频制作者表示,相关的自动化制作skill仍在打磨中,后续会发布更多内容。Claude Code是Anthropic推出的AI编程工具,effort档位是其面向不同任务复杂度引入的关键参数,允许用户在速度、成本与输出质量之间自主权衡。官方此次专门撰文说明档位选择逻辑,意在帮助用户理解不同使用场景下的最佳配置,例如快速迭代任务可采用低档位,而复杂重构或关键逻辑编写则更适合高档位。
核心观点:effort档位的出现,标志着AI编程工具从比拼模型能力进入精细化算力调度时代,成本与质量的天平正式交还给开发者。
原文链接:Linux.do
一位开发者在 V2EX 分享发现节点发布了一个名为 l2tp2socks 的开源项目,功能是将 L2TP VPN 隧道转换为 SOCKS5 代理。该项目已托管在 GitHub 平台,采用 Go 语言编写,作者表示这再次印证了 Go 在网络编程方面的强大能力。据作者介绍,该项目属于个人自用性质,开发初衷是方便进行流量分流,具体使用场景因人而异。从技术原理上看,L2TP 是一种常见的二层隧道协议,通常与 IPsec 配合用于构建 VPN 连接,在企业网络、校园网以及部分路由器设备中支持较为广泛;而 SOCKS5 是一种通用的会话层代理协议,被各类应用和代理客户端广泛支持。两者之间的转换需求来源于现实环境的不匹配:某些网络环境只能建立 L2TP 隧道,而应用程序侧往往需要 SOCKS5 代理接口来实现更细粒度的流量控制。通过该项目,用户可以将 L2TP 隧道中的流量以 SOCKS5 协议形式提供给本地或其他应用,从而接入现有的分流规则体系,实现按需路由。项目代码已在 GitHub 开源,感兴趣的开发者可查看源码了解实现细节。需要说明的是,作者将其定位为自用工具,功能完整度与长期维护情况尚待观察,使用者需自行评估其稳定性与安全性。
核心观点:协议转换小工具折射真实痛点:隧道基建与应用代理生态之间的断层,正由开发者个体用代码补齐。
原文链接:V2EX 分享发现
Anthropic宣布,其AI模型Claude完成了平面N=4超杨-米尔斯理论中六粒子MHV散射振幅九圈项的计算,首次得到有限余项E₆⁽⁹⁾(u,v,w),将学界公开已知结果从八圈推进至九圈。计算沿用了振幅bootstrap、form factor、antipodal duality、pentagon OPE等既有方法,未引入新物理原理,但整个复杂计算流程由Claude自主搭建并执行,结果随后经斯坦福物理学家Lance Dixon等人验证;同期中国科学院何颂团队也独立计算出九圈symbol,形成交叉印证。N=4超杨-米尔斯理论是四维规范理论中对称性最强的模型之一,β函数严格为零,量子层面保持共形不变,虽不直接描述现实粒子,但该理论孵化的广义幺正性、symbol、bootstrap、有限域重构等技术已持续迁移至QCD及标准模型高阶计算。九圈系数E⁽⁹⁾是超越权重18的多重多对数函数,较八圈的权重16有明显跃升。此次核心产出为九圈weight-18 symbol及首个九圈三点form factor symbol,其中symbol经两套独立路线交叉验证,完整函数目前仅计算一次并引入额外假设,验证程度相对较低。该结果为检验antipodal duality等猜想、约束bootstrap程序提供了更深边界条件。
核心观点:当AI能独立攻克需专家数月推演的九圈振幅,科学前沿的瓶颈正从计算能力转向人机验证体系。
原文链接:Linux.do
英语里的 father,和拉丁语里的 pater,看起来像两位远亲:意思一样,拼法却隔着一层。英语的 three 和拉丁语的 tres 也是如此。再看 hound 和拉丁语 canis,差得更远,仍然都来自“狗”这个古老词根。
这些词没有随意变形。它们保留了同一场大规模语音变化留下的痕迹。十九世纪的学者把散落在英语、德语、拉丁语、希腊语和梵语里的线索拼在一起,发现日耳曼语的辅音曾经成批“换位”。今天说的格林法则(Grimm’s law),描述的就是这次变化。
它对日常英语学习有用,但用法和网上常见的“词根速记术”不太一样。格林法则不能帮人猜出所有陌生词,却能解释一批基础词为何长得既像又不像,也能让英语词汇从孤立拼写变成有历史关系的家族。
雅各布·格林(Jacob Grimm)和弟弟威廉·格林以《格林童话》闻名。雅各布的主业却是语言学、文献学和法律史研究。兄弟俩收集民间故事,也整理古老文本、方言和词汇。在他们生活的年代,德意志还没有统一。研究语言、传说和古代文献,也带有寻找共同文化来源的意味。
雅各布起初学法律,后来受到历史法学家萨维尼影响,开始相信制度和语言都要放进历史中理解。他研究古高地德语、哥特语、古英语和斯堪的纳维亚语言时,遇到一个无法绕开的现象:同源词的辅音差异反复出现,而且相当整齐。
发现这套对应关系并非雅各布一人的功劳。
p 和日耳曼语 f 的对应。“格林法则”是后人使用的名称,格林本人主要讨论的是 Lautverschiebung,也就是音变或辅音推移。它有时也被称为“拉斯克—格林规则”。历史常把系统化表达者留在名称里,而把先行观察者留在脚注中。
十八世纪末到十九世纪初,欧洲学者逐渐注意到,梵语、希腊语、拉丁语、波斯语以及许多欧洲语言之间存在大量稳定对应。
例如“父亲”一词:
pitṛpatērpaterfather如果只比较两个词,p 和 f 的差别可能只是巧合。可同样的对应在更多词里重复出现:
| 非日耳曼语言中的形式 | 英语形式 | 主要对应 |
|---|---|---|
拉丁语 pēs / pedis(脚) |
foot |
p → f |
拉丁语 tres(三) |
three |
t → th /θ/ |
拉丁语 canis(狗) |
hound |
k → h |
拉丁语 decem(十) |
ten |
d → t |
拉丁语 gelū(霜、寒冷) |
cold |
g → k |
拉丁语 frāter(兄弟) |
brother |
bʰ → b |
真正有说服力的地方,在于变化方向稳定。研究者面对的已经不是“两个单词有点像”,而是一张可以重复检验的对应表。现代历史语言学由此获得了一种接近自然科学的工作方式:提出音变规则,再用跨语言材料验证;遇到例外,继续寻找隐藏条件。
格林法则描述了原始印欧语(Proto-Indo-European,常写作 PIE)中的一组塞音,怎样在原始日耳曼语中发生系统变化。英语、德语、荷兰语、冰岛语等都属于日耳曼语族,因此还能看到这些变化的后代。
先把术语压到最低:
整套规则可以分成三组。
原始印欧语的清塞音在日耳曼语中变成清擦音:
p → f
t → þ /θ/(英语 thin 中的 th)
k → h /x/
kʷ → hw /xʷ/
最直观的例子:
pēs / pedis → foottres → threecanis → houndquod → 英语 whatwhat 和 quod 今天的读音已经继续变化,拼写却还留着 wh 与 qu 的历史呼应。
原始印欧语的浊塞音在日耳曼语中清化:
b → p
d → t
g → k
gʷ → kw
例如:
b,日耳曼语支中出现 p,后来有英语 appledecem 与英语 ten 对应,能看到 d → tgelū 与英语 cold 同源,能看到 g → k原始印欧语的送气浊塞音,在日耳曼语中变成浊塞音或浊擦音:
bʰ → b
dʰ → d
gʰ → g
例如拉丁语 frāter、梵语 bhrātṛ 与英语 brother 都来自同一个“兄弟”词根。各语言经历了各自的音变,英语这一支保留为 b 开头。
把三组连起来,会看到一条链:
bʰ → b → p → f
dʰ → d → t → th
gʰ → g → k → h
可以把它想成一排座位整体向旁边挪了一格。一个音的位置发生变化,其他音也跟着调整,原有区别才不会全部挤成同一个音。语言学家把这种现象称为“链式音变”。至于变化究竟从哪一端先开始,是前一个音“推”着后一个音走,还是空位“拉”着其他音补位,学界没有唯一结论。格林法则关心的是系统对应,未能复原每一个历史瞬间。
看到这里,细心的人会发现麻烦。
按第一组规则,原始印欧语 t 应该变成日耳曼语的 th /θ/。brother 符合预期,father 中间却读作浊音 /ð/。同样的 t,结果为什么不同?
雅各布知道规则有例外,却没能解释清楚。五十多年后,丹麦语言学家卡尔·维尔纳(Karl Verner)找到关键:原始重音的位置会影响音变结果。 相关思想在 1875 年已经形成,正式论文发表于 1877 年。
在特定条件下,格林法则产生的清擦音会进一步浊化:
f → v/β
th /θ/ → /ð/
s → z
h /x/ → /ɣ/
“父亲”和“兄弟”在原始印欧语里的重音位置不同。后来日耳曼语把重音逐渐固定到词首,早先触发变化的条件消失了,留下的结果看起来就像随机例外。维尔纳定律把这些“例外”重新纳入规则。
这段故事很能体现历史语言学的脾气:规则撞上反例时,研究没有结束。反例可能提示还有一个条件尚未被发现。格林法则和维尔纳定律放在一起看,比单背一张音变表更有意思。
这里采用的是常见教材中的顺序:格林音变先发生,维尔纳定律随后解释部分浊化。两者的相对年代在学术界仍有其他观点,大众入门先掌握这套标准模型就够了。
1066 年诺曼征服以后,大量法语词进入英语。法语来自拉丁语一支,没有经历日耳曼语的格林音变。于是现代英语里常能看到两层词汇:一层是继承自古英语的日耳曼词,一层是后来借入的拉丁—法语词。
例如:
| 日耳曼来源的英语词 | 拉丁/法语来源的英语词 | 关系 |
|---|---|---|
father |
paternal |
p ↔ f |
foot |
pedal, pedestrian |
p ↔ f |
three |
triple, tri- |
t ↔ th |
tooth |
dental, dentist |
d ↔ t(还叠加了其他历史变化) |
hound |
canine |
k/c ↔ h |
heart |
cardiac |
k/c ↔ h |
这张表对学习英语很实用。foot 和 pedal 表面不像,放进 p/f 对应后,关系就清楚了。three、triple、triangle 也能归到同一个“3”的家族。英语词汇中“日常短词”和“正式长词”经常并存,部分原因就藏在两条不同的历史输入路径里。
不过,表中的现代词经历过多轮变化和借词过程,不能机械地逐字母替换。格林法则谈的是古代语音,现代拼写只是残留证据。
遇到基础日耳曼词和拉丁、希腊词根时,可以主动检查这些对应:
f ↔ p
th ↔ t
h ↔ k/c
p ↔ b
t ↔ d
k ↔ g
比如看到 pedal、pedestrian,可以联想到 foot;看到 paternal,可以联想到 father;看到 cardiac,可以联想到 heart。联系一旦建立,单词会多一个可解释的记忆钩子。
初学词源时,人们容易把“长得像”当成同源证据,也容易因为拼写差异太大而否定关系。格林法则提供了更可靠的判断方式:同源关系看成组、稳定、可重复的音位对应,不能只看两三个相同字母。
同一个古老词根可能以两条路线进入英语:
这种“双胞胎词汇”能帮助理解英语的语体差异。日耳曼词往往更短、更日常,拉丁—法语词常见于医学、法律和正式写作。它是趋势,不能当成绝对规则。
格林法则最值得带进学习中的,是一套判断方法:
这套方法比背下九个箭头更耐用。
p → f 说的是原始印欧语到原始日耳曼语的历史变化。拿一个现代英语词,把所有 p 换成 f,并不会自动得到拉丁语同源词。
英语 much 和西班牙语 mucho 看起来很像,却没有英语学习者想象中的直接继承关系。判断同源需要完整的语音对应、早期文献和词义演变证据。
英语后来还经历了维尔纳定律、i-变音、元音大推移,以及大量借词和类推变化。格林法则只处理原始印欧语到原始日耳曼语的一组辅音变化。它很基础,覆盖范围仍然有限。
只想记住核心,可以留下这三行:
清塞音变擦音:p/t/k → f/th/h
浊塞音变清音:b/d/g → p/t/k
送气浊音去送气:bʰ/dʰ/gʰ → b/d/g
再加一句边界:现代英语词不能直接套公式,先确认同源关系和借入年代。
下次再看到 father / paternal、foot / pedal、three / triple,可以把它们当作两千多年前那场辅音迁移留下的化石。单词依旧要学,但它们终于不再是一堆互不相干的拼写。
开源论坛系统Discourse近期的一次界面更新将个人资料页的顶部横向Tab导航替换为侧边栏用户导航面板,引发部分社区用户不满。Linux.do论坛用户mtgpublic借助AI以Vibe Coding方式编写了一款油猴用户脚本,可恢复经典样式的个人页Tab菜单。该脚本(版本0.2.1)的实现原理是:Discourse上游PR #44050引入了实验性站点设置sidebar_user_navigation,开启后用户进入个人页时,UserNavSidebarStateManager服务会强制将侧边栏切换为用户导航面板,并通过body标签的CSS类隐藏旧版Tab,而旧导航实际仍保留在DOM中,仅被CSS隐藏。脚本在文档加载最早阶段将该设置在客户端翻转为false,并复位侧边栏状态,应用随即自行渲染旧版导航;若上游移除或更名该设置,脚本会静默退出。脚本默认对linux.do启用,内置站点白名单管理面板,支持通过脚本菜单增删其他Discourse站点,配置数据优先存于GM存储并以localStorage兜底。作者表示脚本Bug可能还较多,后续将在GitHub开源并加入开源推广声明。
核心观点:AI辅助编程让普通用户具备了即时修补官方软件的能力,社区自造补丁正成为大平台改版失衡的民间制衡力量。
原文链接:Linux.do