2024-03-21
35 篇热帖
2. Difftastic, a structural diff tool that understands syntax (difftastic.wilfred.me.uk)
Difftastic:一款理解语法的结构化差异工具
Difftastic 是一款基于语法而非逐行比较文件的命令行差异工具。它通过解析代码的语法树来生成差异,旨在提供比传统行式差异更准确、更易于人类阅读的结果。
核心特点与功能
理解真正的变更
- 使用
tree-sitter解析代码,能够识别语法结构。 - 能区分真正的代码逻辑变更与仅在语法树内部发生的、不影响语义的调整,避免将未改动的内部表达式误报为差异。
- 使用
忽略格式变化
- 能够识别代码格式化工具(如自动换行)引起的格式差异,并将其过滤,只展示实质性的代码变更。
可视化包装变更
- 能够精确匹配代码中的定界符(如括号、引号)。
- 即使内部内容被修改,也能清晰地展示新增或变更的代码包装层。
显示真实行号
- 不同于传统差异工具使用
@@ -5,6 +5,7 @@格式,Difftastic 直接展示变更在原始文件中的实际行号(变更前和变更后),更直观。
- 不同于传统差异工具使用
支持的语言
Difftastic 支持众多编程语言,包括但不限于:
- C++, C#, Clojure, Dart, Erlang, Go, Haskell, Java, JavaScript, Kotlin, Lisp, Lua, OCaml, PHP, Python, R, Ruby, Rust, Scala, TypeScript
- 并且仍在增加更多语言支持。
开源许可
Difftastic 是完全开源的,采用 MIT 许可证 发布。
3. Flightradar24's new GPS jamming map (www.flightradar24.com)
4. Shattered Pixel Dungeon is an open-source traditional roguelike dungeon crawler (github.com)
Shattered Pixel Dungeon 项目摘要
概述
Shattered Pixel Dungeon 是一款开源的传统 roguelike 地下城爬行游戏,基于 Watabou 创建的 Pixel Dungeon 源代码。该项目提供随机生成的关卡和敌人,以及数百种可收集和使用的物品,强调探索和策略性玩法。
核心特点
- 随机化元素:关卡和敌人每次游戏都随机生成,增加重玩性。
- 物品系统:拥有数百种物品,玩家可收集和使用以增强角色能力。
- 开源性质:代码公开,遵循 GPL-3.0 许可证,允许社区参与和修改。
- 游戏风格:传统 roguelike 机制,包括永久死亡、回合制战斗和资源管理。
技术细节
- 基础代码:源自 Pixel Dungeon,一个经典的 roguelike 游戏。
- 许可证:采用 GPL-3.0 许可证,确保代码自由共享和衍生。
- 社区指标:在 GitHub 上获得 6.2k 星标、1.5k 分支和 110 名观察者,显示活跃的开发和社区兴趣。
项目资源
- 提供 Readme 文件,包含项目说明和安装指南。
- 通过 GitHub 托管,支持反馈和问题跟踪。
总结:Shattered Pixel Dungeon 是一个受欢迎的开源 roguelike 游戏,以随机内容、丰富物品和传统玩法为核心,基于经典项目发展,并拥有活跃的社区支持。
5. The baffling intelligence of a single cell: The story of E. coli chemotaxis (jsomers.net)
大肠杆菌趋化性:单细胞的智能探索
本文讲述了大肠杆菌趋化性这一生物学现象,阐述了单细胞如何展现出类似智能的觅食行为,并深入探讨了其背后的分子机制、物理原理及研究意义。
核心现象:有目的的觅食
趋化性是大肠杆菌寻找营养物质的过程。这个无脑的单细胞通过类似“嗅觉”的感知和决策,展现出令人惊叹的精密性。其基本行为模式是:
- 奔跑:当检测到吸引性化学物质浓度增加时,细菌鞭毛马达同向旋转,形成束状推动细胞直线前进。
- 翻滚:当化学信号不佳时,一个或多个马达反转,鞭毛束散开,细胞随机转向。
通过平衡奔跑与翻滚的比率,大肠杆菌能进行偏向随机游走,从而向食物源移动。这种平衡由细胞内一种名为CheY的信号分子调控。
分子机制:化学信号放大与适应
信号传导的核心是一个磷酸化循环:
- 信号感知:细胞膜上的受体蛋白(“鼻子”)特异性结合吸引物(如天冬氨酸),引起构象变化。
- 信号传递:该变化抑制激酶CheA的活性,从而减少CheY被磷酸化(成为CheY-p)的速率。
- 效应执行:CheY-p与鞭毛马达蛋白结合,诱导马达反转。当CheY-p减少时,奔跑得以维持。
此系统是一个可调的化学放大器,能放大微小的浓度变化(如仅2%的受体占用率变化可引起100%的系统输出变化),使细胞能感知极低浓度的吸引物。
动态范围:化学记忆与适应
为在极宽的浓度范围(跨越五个数量级)内保持敏感,细菌通过受体甲基化实现适应:
- 吸引物结合后,受体“支撑结构”的特定口袋暴露。
- CheR蛋白向口袋添加甲基基团,使受体结构更刚性,降低其信号能力。
- CheB蛋白则移除甲基基团。
这种甲基化程度的变化,相当于一种简短的化学记忆,使细菌能将当前浓度视为“新常态”,并对浓度的进一步增加保持敏感。这揭示了细胞如何通过内部化学修饰来建模环境。
物理基础:纳米世界的随机碰撞
信号传导依赖于蛋白质间的形状互补结合(锁钥模型)。在细胞质拥挤的环境中,所有分子都在剧烈热运动下高速碰撞扩散。CheY-p从受体扩散到马达仅需约0.1秒。这种混沌但高效的环境,使得依赖构象变化和结合亲和力的调控成为可能。
鞭毛马达:精密的自组装纳米机器
鞭毛马达是接近100%能量效率的分子机器,每秒旋转1500次,并完全自组装。其转向机制精巧:
- CheY-p与马达基部的FliG等蛋白结合。
- 这导致FliGc蛋白方向改变,从而使马达的“步进驱动”机制反转旋转方向。
- 需要多个CheY-p协同作用才能触发转向,且转向过程可逆(被CheZ等蛋白逆转),体现了可逆的调控电路特性。
当单个马达反转时,其产生的扭矩变化足以使整个鞭毛束散开,引发细胞翻滚。
研究与启示
- 研究方法:对趋化性的理解来自多种方法,包括遗传学(观察基因敲除表型)、体外生化(重建信号通路)、结构生物学(如冷冻电镜解析蛋白结构)和计算机建模。
- 个体差异性:即便基因相同,细菌个体因CheR/CheB等调控蛋白的拷贝数随机波动,在行为上存在差异(如翻滚和适应频率),体现了非遗传的个体性。
- 普遍意义:趋化性系统是研究生命基本原理的“切片”,涉及蛋白结构决定功能、膜信号传导、化学修饰存储状态等核心生物学主题。其磷酸化/去磷酸化循环等调控机制在生命中普遍存在。
- 实际应用:理解该通路或有助于开发新型抗生素(干扰细菌定位)或设计智能生物传感器。
最终,大肠杆菌趋化性展示了一袋“无思”的化学物质如何通过物理和化学规律,涌现出复杂的定向行为,为我们理解从单细胞到神经计算的生命智能层次提供了深刻见解。
6. The Reddits (www.ycombinator.com)
Reddit的诞生源于Y Combinator(YC)的创立。YC联合创始人Paul Graham在哈佛计算机协会发表关于如何创业的演讲后,来自弗吉尼亚大学的Steve Huffman和Alexis Ohanian主动找他交流。他们最初的创业点子是通过手机订快餐,但Paul认为这个想法不可行(在智能手机普及前难以实现)。然而,两人的才智与热情给Paul留下了深刻印象,促使他决定创建YC来资助像他们这样的年轻创业者。
在YC第一批项目中,Steve和Alexis申请了资助,但因其最初的想法被拒绝。不过,Paul不忍心放弃这两位他本打算资助的创始人。他建议他们转向另一个方向:建立一个类似当时Delicious网站(del.icio.us/popular)的链接分享平台,但专门设计用于用户分享有趣链接,而非仅仅是书签管理的副产品。Steve和Alexis立即接受了这个建议,并在当天便决定着手开发这个新项目。
网站最初想命名为Snoo(吉祥物沿用此名),但因snoo.com域名过贵,最终选择了Reddit这个未被注册的名字。Reddit的创建过程体现了其创始人的特质:Steve具有强烈的好奇心、质疑精神和反权威倾向,这恰好契合了Reddit由用户驱动、无需编辑筛选的内容模式。与当时由人工编辑管理的Slashdot论坛不同,Reddit的内容完全由用户提交,因此更新鲜、更具活力。
在YC期间,团队迅速扩展,吸收了同批学员Chris Slowe和Aaron Swartz。Paul Graham鼓励他们快速上线,结果他们在YC项目开始仅三周后就推出了初版。初始用户主要是团队成员、YC同学及大学好友。尽管早期流量很小,但几周内便形成了稳定的用户群。
Reddit作为一个实用链接分享平台,具有极强的生命力。即使在创始人Steve离开、公司管理出现严重问题的时期,其流量仍持续增长。2015年Steve回归后,Reddit迎来了新的发展阶段,进一步证明了其独特的潜力和持续的影响力。
7. Vernor Vinge (1944-2024) (file770.com)
Vernor Vinge(1944-2024)是一位极具影响力的硬科幻作家,于2024年3月20日逝世,享年79岁。
他于1964年售出第一篇科幻小说《Apartness》,并于1965年发表。1971年,他在加州大学圣迭戈分校获得数学博士学位,次年任教于圣迭戈州立大学,直至2000年退休后全职写作。
他的1981年中篇小说《真实姓名》常被认为是首次完整提出“网络空间”概念的故事。其代表作《深渊上的火》(1993年并列获奖)、《天渊》(2000年)、《彩虹尽头》(2007年)及中篇小说《公平中学的飞速年代》(2002年)和《曲奇怪兽》(2004年)多次获得雨果奖。《天渊》还获得约翰·W·坎贝尔纪念奖及多个国际奖项。
他于2002年担任世界科幻大会主宾,2014年获普罗米修斯终身成就奖,2020年获海因莱因协会颁发的海因莱因奖。
作家大卫·布林在悼念中称赞他是一位“文学巨人”,以乐观主义精神描绘未来,并不断提出新的思想实验与困境思考,体现了他对科幻艺术的深刻贡献。
8. Suspicious discontinuities (2020) (danluu.com)
本文探讨了多种系统中由“尖锐阈值”(即不连续性)引发的非预期或扭曲行为,并指出通过渐进过渡或随机化进行平滑通常是更优的解决方案。
核心主旨 许多政策、规则或系统中的硬性收入、分数或数量门槛会创造“悬崖”,导致参与者采取对系统或自身可能并非最优的策略,例如故意损失收入、操纵数据或进行博弈。作者通过一系列跨领域的案例说明了这种现象的普遍性。
主要案例与现象
- 税收与福利政策:美国《平价医疗法案》(ACA)的健康保险补贴存在硬性收入上限(如个人48,560美元)。跨越此门槛会导致补贴大幅减少,使人们可能宁愿减收入(如购买预期亏损的期权)也要将收入控制在限额之下,以降低净成本。类似不连续性也存在于TANF、Medicaid、CHIP等项目中。
- 技术系统:
- 队列管理:朴素队列在满/非满时有完全不同的丢弃行为,可能导致对突发流量的“不公”。随机早期检测(RED)等算法通过概率性丢弃来平滑此不连续性。
- 链接聚合器投票:链接获得足够票数与否,会导致其流量产生天壤之别。
- 教育与招生:
- 佩尔助学金与大学招生:大学为优化获得佩尔助学金学生比例(被视为低收入学生指标),可能导致来自收入略高于门槛家庭的学生录取率下降,而门槛内收入较高家庭的学生录取率反而上升,与政策初衷相悖。精明的家长也可能采取类似减税的策略来降低收入。
- 高中毕业考试:波兰语言考试在30分(及格线)附近出现异常高的分数聚集,部分原因是评分教师在主观题上有给予“同情分”的倾向。
- 选举与数据造假:俄罗斯选举数据中,在整数百分比(如95%)附近出现不自然的投票率和得票率尖峰,暗示存在人为操纵数据。
- 其他领域:
- 二手车拍卖:价格和数量在1万美元等整数关口出现不连续跳跃。
- 学术p值:心理学论文中p值略低于0.05(通常的显著性门槛)的数量异常多,可能源于作者“p值操纵”、期刊偏好或提交选择偏差。
- 刑事判决:美国《公平量刑法》将引发强制最低刑期的可卡因持有量从50克提高到280克后,涉案数量分布在此新门槛处出现尖峰。
- 体育与生日:青少年体育按出生年份分组,导致年初出生的儿童(同年内更年长)在参与率上具有系统性优势,形成锯齿状分布。
- 政府采购拍卖:数据分析表明,中标者与次低价竞标者在第一轮与第二轮的出价降幅差异上存在不自然的对称性断点,暗示可能存在串标。
- 餐厅卫生检查:评分在A/B(如13分与14分)等级边界处出现不连续,可能存在检查员酌情提分的情况。
- 马拉松完赛时间:在半小时或整数时间点(如4:00:00)附近出现完赛人数峰值,表明选手有意识调整配速以达成“整数”目标。
分析方法与解决思路
- 识别工具:绘制散点图、直方图、累积分布函数(CDF)是发现不连续性的基础工具。加入时间维度的可视化方法也有帮助。
- 解决思路:采用渐进过渡(如福利的逐步减少而非骤停)来替代尖锐门槛,虽然也可能带来问题,但通常扭曲程度较低。在队列管理等场景中,引入随机化可以平滑概率跳跃,缓解不连续性带来的问题。
作者总结指出,发现并理解这些不连续性在实际工作中很有价值。
9. Redis adopts dual source-available licensing (redis.com)
Redis采用双重源码可用许可证
Redis宣布从BSD三条款许可证过渡到双重源码可用许可证,自Redis 7.4起生效。核心变化包括:
- 许可证变更:所有未来版本将采用RSALv2(Redis源码可用许可证v2)和SSPLv1(服务器端公共许可证v1)双许可证,不再使用BSD许可证。
- 开发者影响:普通开发者、内部用户及集成合作伙伴不受影响,仍可免费使用、修改和分发代码(需遵守许可证条款)。客户端库等关联开源项目保持原许可。
- 云服务商影响:云服务提供商(如AWS、Azure等)若托管Redis服务,必须与Redis公司达成商业协议,不再允许免费使用新版本源码。此举旨在保护Redis的投资与社区发展。
- 功能整合:Redis Stack的功能(如搜索、JSON、向量、时间序列等数据模型)将逐步整合到Redis核心中,计划在Redis 8后统一发布,Redis Stack将逐步淘汰。
- 社区版重命名:从v7.4起,免费版本称为“Redis Community Edition”,因新许可证不符合OSI开源定义。
- 存量版本:旧版本(v7.2及之前)仍保留BSD许可证,可继续使用,Redis会提供关键安全更新直至Redis Community Edition 9.0发布。
- 合作与服务:合作伙伴可通过Redis Partner Program获取技术培训、独家功能访问等支持;提供Redis相关的专业服务(如部署、咨询)不受限。
关键原因:Redis公司指出,多数商业收入流向大型云服务商,后者将Redis技术商品化,阻碍了Redis的可持续发展。新许可证旨在平衡代码开放性与商业可持续性,确保持续投资免费功能与企业产品。
10. Show HN: Dropflow, a CSS layout engine for node or <canvas> (github.com)
Dropflow 是一个用于 Node.js 或 <canvas> 的 CSS 布局引擎,旨在探索和实现 CSS 基础标准(如内联、块、浮动、定位),但不包括 Flexbox 或 Grid。它拥有高质量的文本排版实现,能够渲染多种语言,并可用于在后端生成 PDF/图片,或在浏览器 Canvas 上绘制富文本。
核心功能与特点:
- CSS 属性支持:支持超过 30 个 CSS 属性,包括
float等复杂属性。 - 文本处理:支持双向文本(BiDi)和从右到左(RTL)文本、字体回退、优化的文本塑形、理想的换行行为(如将边距带入下一行)以及彩色变音符号。
- API:提供快速的 Hyperscript (
h()) API(样式作为对象),也支持解析 HTML 和 CSS 字符串。 - 资源:支持注册任何 OpenType/TrueType 字体缓冲区,并支持 JPEG、BMP、PNG、GIF 图片。
- 性能:性能是核心目标之一。使用 Hyperscript API 可达到最佳性能,支持样式对象复用。测试显示,排版《小王子》全文(500多段)在 2019 年 MacBook Pro 上仅需约 160ms。
- 技术实现:使用 HarfBuzz(编译为 WASM)进行精确的文本塑形和断字,保证了排版质量,性能与浏览器原生
measureTextAPI 相当。
支持的 CSS 属性示例:
- 已完成:
color,direction,font-family,font-size,line-height,text-align,vertical-align,white-space,float,clear,display(block, inline, inline-block 等),margin,padding,border(部分),position: relative,z-index,overflow等。 - 计划中:
font-variant,letter-spacing,text-decoration,position: absolute/fixed,transform,table布局等。
使用方法:
- 注册字体:必须先创建
FontFace实例并添加到flow.fonts集合。支持从 URL 或 ArrayBuffer 加载。后端file://URL 可同步加载。 - 创建 DOM:
- Hyperscript API (推荐):使用
flow.h()和flow.style()直接创建元素和样式对象。 - HTML 解析 API:使用
parse()函数解析 HTML 字符串(仅支持style内联属性)。
- Hyperscript API (推荐):使用
- 渲染:
- 简单用法:
flow.renderToCanvas(el, canvas)直接渲染到 Canvas。 - 高级用法:
flow.load(el)加载所有依赖资源(字体、图片)。flow.layout(el)创建布局对象。flow.reflow(layout, width, height)在指定视口尺寸下进行布局计算(可重复调用)。flow.paintToCanvas(root, ctx)绘制到 Canvas 上下文。还支持paintToSvg输出 SVG。
- 简单用法:
环境适配与扩展:
Dropflow 通过可重写的 environment 对象中的钩子函数适配不同环境(浏览器、Node.js)和 Canvas 后端(如 node-canvas, @napi-rs/canvas, skia-canvas)。主要的钩子包括:wasmLocator(加载 WASM)、registerFont(注册字体到底层后端)、resolveUrl(加载资源)、createDecodedImage(解码图片)。这允许灵活集成到不同的运行时和渲染管线中。
总结:Dropflow 是一个专注于 CSS 基础布局标准、强调文本排版正确性和性能的引擎。它通过 Hyperscript API 提供高效的 DOM 创建方式,利用 HarfBuzz WASM 实现精确的文本处理,并通过灵活的环境钩子支持多样化的使用场景,适用于需要在服务器或 Canvas 中进行高质量文档渲染的应用。
11. Redis License Changed (github.com)
您提供的页面内容实际上是 GitHub 网站的导航栏和界面元素,并未包含任何关于“Redis 许可证变更”的具体信息。
因此,无法根据所提供的内容生成关于 Redis 许可证变更的准确摘要。如需了解该主题的详细信息,请提供包含具体新闻或公告的正确文章内容。
12. Hackers found a way to open any of 3M hotel keycard locks (www.wired.com)
酒店钥匙卡安全漏洞:Saflok门锁可被瞬间破解
安全研究人员Ian Carroll、Lennert Wouters及其团队公开了一个名为“Unsaflok”的酒店钥匙卡破解技术。该技术针对瑞士锁具制造商Dormakaba生产的Saflok品牌RFID钥匙卡门锁,全球约有300万个此类门锁安装在13,000家酒店中。
漏洞影响与攻击方法
攻击者只需获取目标酒店的任意一张钥匙卡(甚至已过期),使用价值约300美元的RFID读写设备读取卡内特定代码,随后写入两张自定义的钥匙卡。通过简单地将这两张卡依次碰触门锁,第一张卡会重写门锁数据,第二张卡即可将门打开。整个过程仅需数秒,且同一酒店内所有房门均可被此方法打开。
技术原理
漏洞涉及两个层面:
- 底层系统缺陷:Saflok钥匙卡使用的MIFARE Classic RFID系统存在已知漏洞,允许被写入数据。研究人员进一步破解了Dormakaba自身的加密机制(密钥派生函数),大幅加快了写卡速度。
- 数据伪造:通过获取Dormakaba的前台管理软件及锁具编程设备,研究人员逆向工程理解了钥匙卡中的数据结构,包括酒店属性码和房间码。他们能够伪造出加密方式与合法钥匙卡完全相同的通用主密钥卡。
修复进展与挑战
研究人员于2022年11月向Dormakaba提交了漏洞细节。制造商表示自去年初起已通知相关酒店并协助修复。对于近八年销售的大多数系统,无需更换硬件,只需更新前台系统并对每把门锁进行重新编程。然而,截至本月,仅有36%的已安装门锁完成更新。由于门锁未联网且部分老旧型号需硬件升级,全面修复可能需要数月甚至数年。
安全建议
- 识别漏洞门锁:易受攻击的门锁通常为圆形RFID读卡器,中间有波浪形线条。
- 检查钥匙卡类型:使用NFC Taginfo应用(iOS/Android)检查钥匙卡。若门锁为Dormakaba制造且钥匙卡仍为MIFARE Classic类型,则很可能仍存在漏洞。
- 临时防护措施:若发现门锁存在漏洞,建议不要在房间内存放贵重物品,进入房间后使用门链加固。注意:房门上的门栓同样由钥匙卡控制,无法提供额外保护。
研究人员立场
团队采取了谨慎披露策略,未完全公开所有技术细节,以防止被恶意利用。他们指出,此类漏洞可能已存在超过十年,而当前修复进度缓慢意味着大量酒店仍将暴露在风险中。虽然Dormakaba表示未发现该技术被过去利用,但研究人员强调这并不意味着其从未被秘密使用。
13. Google Scholar PDF Reader (scholar.googleblog.com)
文章标题: 超级增强PDF阅读体验:跟踪引用...
核心信息:
这是Google Scholar官方博客于2024年3月18日发布的一篇文章,主要介绍了一项新功能或工具更新。
- 核心功能: 旨在提升PDF文档的阅读体验,特别是针对学术和研究文献。
- 关键特性: 根据标题推断,其核心功能是允许用户在阅读PDF时跟踪文中的引用。这意味着用户可能无需离开PDF阅读界面,就能直接查看参考文献的相关信息或跳转到原始来源。
- 目标用户: 面向研究人员、学生和经常阅读学术论文的用户,旨在提高文献调研和阅读的效率。
- 发布方: 由Google Scholar团队推出,是其增强学术研究辅助工具的一部分。
14. Claim: Private GitHub repos included in AI dataset (post.lurk.org)
摘要:
- 核心声明:用户emenel声称,曾经托管在GitHub上的私有仓库可能被包含在一个名为“The Stack”的大型AI训练数据集中。
- 个人经历:emenel发现自己的两个旧GitHub仓库出现在该数据集中,这些仓库曾是私有的且已被删除,他认为这是GitHub和Hugging Face的信任违背。
- 行动呼吁:他提供了一个Hugging Face链接(https://huggingface.co/spaces/bigcode/in-the-stack)供用户移除代码,并敦促所有人从GitHub上移除所有代码,强调“同意不是选择退出”。
- 同意问题:emenel指出,即使仓库可能曾短暂公开,这也不构成将其用于AI训练的同意,因为这些仓库从未意图用于此目的。
- 补充背景:在编辑部分,他承认无法完全确认仓库是否曾短暂公开,但重申他的愤怒和立场,同时提及该帖子在Hacker News上引发关注,但他不希望这种曝光。
15. Red Hat to author new Linux driver for Nvidia GPUs in Rust (www.phoronix.com)
16. Valve Built An Orb: The making of the Steam Deck OLED launch trailer (store.steampowered.com)
根据提供的内容,无法生成关于文章《Valve Built An Orb: The making of the Steam Deck OLED launch trailer》的摘要。当前内容仅包含版权声明、隐私政策、法律信息等页脚资料,未包含与文章标题和主题相关的实质性内容,如预告片的制作过程、灵感来源、技术细节或团队访谈等。
如需生成有效摘要,请提供文章正文部分。
17. Ikigai: What We Got Wrong and How to Find Meaning in Life (nesslabs.com)
文章主题:ikigai概念的正确定义与寻找方法
本文探讨了日本文化中的“ikigai”概念,指出其在西方常被误解,并阐述了其真正内涵、健康益处及实践方式。
ikigai的核心定义
- 日语中“ikigai”意为“生存的意义”或“存在的理由”,是一种个人化的、内心平静的生活状态。
- 它强调生命的价值不仅限于职业和财务成就,而在于通过充实的生活感受到对他人的贡献。调查显示,仅三分之一的日本人将工作视为ikigai。
ikigai的健康益处
- 减轻焦虑:有助于平衡神经递质分泌,降低压力。
- 心脏健康:研究发现,ikigai感较低与更高的心血管疾病风险及总体死亡率相关。
- 增强自我主导性:有ikigai者更倾向于为自我满足而行动,而非寻求外部认可。
- 提升韧性:在灾难(如2011年地震、COVID-19疫情)中帮助人们保持生存意志。
- 延长寿命:被视为促进长寿的积极心理因素,可降低各种原因导致的死亡风险。
西方常见的误解
- 西方流行的“ikigai维恩图”(将热爱、擅长、世界需求和报酬四者交集视为ikigai)并非其原始含义。
- 该图由占星师Andres Zuzunaga于2011年设计,后被博主Marc Winn误译为“ikigai”。
- 实际上,ikigai并非宏大的人生目标或成就,而是从日常小仪式、副业、深度对话乃至静默时刻中获得的愉悦与幸福。
如何正确寻找ikigai
- 停止寻找唯一热情:从日常体验与互动中寻找意义,探索内外世界,拥抱不确定性。
- 拥抱终身学习:享受作为初学者的乐趣,通过错误学习,持续提问与成长。
- 放下财务执念:金钱是满足舒适生活的工具,过度追求财务成功应让位于生活意义。
- 聚焦小规模积极影响:关注对亲友、同事和社区的正面贡献,通过日常人际联结和改变来“拯救世界”。
总结 ikigai的本质是“为生活于此所需的力量”或“活着的幸福”,而非“值得过的生活”这类衡量价值的表述。它鼓励人们通过好奇心与联结优化每日醒来的动力,将成功视为日常意义体验的自然结果。
18. Research shows plant-based polymers can disappear within seven months (today.ucsd.edu)
摘要
标题:植物基聚合物可在七个月内生物降解
微塑料是传统石油基塑料的微小碎片,降解时间长达100至1000年,已在海洋、土壤甚至人体器官(如动脉、肺和胎盘)中发现,对环境和人类健康构成潜在威胁。开发可持续替代品成为紧迫需求。
加州大学圣地亚哥分校与材料科学公司Algenesis的研究表明,他们开发的植物基聚合物能在不到七个月内完全生物降解,即使在微塑料水平上。该研究发表于《自然-科学报告》,作者均为UC San Diego教授、校友或前研究科学家,以及Algenesis成员。
研究团队通过三种方法测试生物降解性:
- 呼吸仪测量:微生物分解材料时释放二氧化碳,结果显示植物基聚合物的降解率与纤维素(行业标准)几乎100%一致。
- 水浮选测试:石油基微塑料在90和200天后几乎100%被回收(未降解),而植物基微塑料在200天后仅3%被回收,表明97%已消失。
- 化学与显微分析:气相色谱/质谱法检测到聚合物单体,证实降解回植物原料;扫描电子显微镜显示微生物在堆肥中对微塑料的定植。
该植物基塑料是首个被证明在使用过程中不产生微塑料的塑料,为产品生命周期结束和填埋场拥挤问题提供可持续方案,可能减少健康风险。Algenesis已与Trelleborg(涂层织物)和RhinoShield(手机壳)等公司合作,推动材料商业化应用。
研究受美国能源部资助(DE-SC0019986和DE-EE0009295)。作者披露与Algenesis公司的股权关系。
19. GoFetch: New side-channel attack using data memory-dependent prefetchers (gofetch.fail)
GoFetch攻击概述
GoFetch是一种利用数据内存依赖预取器(DMP)的微架构侧信道攻击,能够从常量时间加密实现中提取秘密密钥。该攻击通过精心构造输入,使指针状值仅在正确猜测密钥位时出现,并利用DMP激活时的缓存时间分析来泄露信息。它威胁多种加密实现,包括OpenSSL Diffie-Hellman、Go RSA以及后量子密码学中的CRYSTALS-Kyber和CRYSTALS-Dilithium。
攻击原理与机制
DMP是一种CPU硬件优化,它根据内存内容预测并预取数据。在Apple m系列CPU中,DMP会激活并解引用任何从内存加载且“看起来像”指针的数据,这违反了常量时间编程禁止数据与访问模式混合的要求。攻击者通过构造输入,使中间状态在密钥相关时包含内存地址,从而利用DMP作为预言机,通过监控缓存状态逐步提取密钥位。
影响范围与系统
- 受影响的处理器:Apple m1、m2和m3 CPU均存在可利用的DMP行为。Intel第13代Raptor Lake也具有DMP,但其激活条件更严格,攻击鲁棒性较低。
- 加密实现:已演示对OpenSSL Diffie-Hellman密钥交换、Go RSA解密、CRYSTALS-Kyber和CRYSTALS-Dilithium的端到端攻击。
- 与Augury的比较:Augury首次发现DMP可能混合数据和地址,但GoFetch表明DMP更激进,任何内存加载值都可能被解引用,从而构成更大威胁。
缓解措施与建议
- 硬件禁用:在Apple m3 CPU上设置DIT位可禁用DMP;Intel的DOIT位用于Raptor Lake。2024年4月发现的HID配置位(SYS_APL_HID11_EL1[30])可在m1和m2上禁用DMP,但需要内核支持(目前macOS不可用)。
- 软件防护:加密库开发者可使用DIT/DOIT位、输入盲化(避免攻击者控制中间值)以及防止硬件共享以阻止测量。
- 用户建议:保持软件最新版本,定期更新。
更新与认可
- 2024年12月:研究逆向了Intel DMP语义,展示即使DMP解引用无效指针也能泄露信息的技术。
- 2024年8月:GoFetch获得2024年Pwnie奖最佳密码攻击。
- 2024年4月:发现Apple m1/m2的DMP禁用配置位。
研究背景
该攻击由来自多所大学的研究人员提出,并于2023年12月向Apple披露。研究得到了多个机构资助,并强调了DMP在硬件层面固有的安全风险。
20. JITX – The Fastest Way to Design Circuit Boards (www.jitx.com)
JITX:最快捷的电路板设计方式
核心概述
JITX是一个基于Python的高频电路板设计平台,它通过将设计需求、堆叠规则、信号完整性目标和制造规则转化为可审查、可编译的代码,来加速PCB设计流程。该系统在本地计算机上运行,结合人工智能(AI)编辑代码与HFSS(高频结构仿真)验证,显著缩短传统高频板设计中耗时的仿真设置与迭代周期。
关键功能与工作流程
需求转译为代码
工程师使用Python语言表达设计需求、约束、堆叠和工程规则。AI在工程师审核后提出代码修改建议,整个过程代码可读、可审查、可运行。AI驱动与HFSS集成
经批准的AI编辑代码,JITX同时生成原理图、板结构、并调度HFSS仿真。HFSS仿真结果(如回波损耗、模式转换)直接反馈至下一轮代码编辑,形成闭环优化。例如,文中提到优化一个56 GHz的PCIe-gen7 BGA引脚和均衡结构,仅需5次HFSS仿真即可达到目标。制造规则内嵌
堆叠、材料特性、过孔、间距及公司专有技术标准均被编码在本地设计文件中。JITX自动生成布线、防护栅栏、引脚分配和原理图输出,确保设计符合制造要求。设计与验证闭环
从需求到代码,再到JITX生成候选设计,由HFSS或自定义规则检查器评估。后续迭代基于实测数据而非猜测,此循环可扩展至SPICE、电源、热分析等多个领域。
解决行业痛点
- 传统设计瓶颈:高频板设计严重受制于仿真设置耗时(HFSS配置、布局标记、规则交接),工程师往往只能尝试少量结构。
- AI工具的局限:通用AI助手难以直接生成高性能几何结构、可制造布线及符合客户规则的生产级设计。
- 资源限制:增加传统布局软件授权无法倍增核心信号完整性工程师的能力。
JITX通过将设计参数代码化、利用AI进行自动化迭代、并集成HFSS验证,大幅压缩设计周期,让工程师能将更多精力投入设计的其他创造性部分。
客户信任与支持
该平台已获得霍尼韦尔航空航天、洛克希德·马丁和OpenAI等企业的信任,并得到多家技术合作伙伴的支持。
总结
JITX通过“需求→Python代码→AI编辑→JITX生成设计→HFSS验证→代码迭代”的闭环流程,为高频电路板设计提供了一种高效、可控且深度集成电磁仿真的新范式,尤其适用于高性能、高复杂度的航空航天及高速数字设计领域。
21. Show HN: An AI-Powered WordPress Site Builder That We Are Open-Sourcing Today (themeisle.com)
QuickWP:基于AI的WordPress建站工具开源发布
项目概述
QuickWP是一款结合AI技术、FSE主题和WordPress Playground的个性化主题生成器。用户只需提供网站主题和描述,即可快速生成定制化WordPress主题。该项目今日正式开源,旨在分享技术实现思路并鼓励社区二次开发。
核心理念与技术演进
- 初始尝试:曾在Otter Blocks插件中集成AI生成布局,但因区块编辑器中模式(Pattern)易损坏、结果过于泛化而放弃
- 突破性想法:采用线框图+宽色调方案的FSE主题作为基础,通过AI根据用户提示选取模式(Pattern)
- 关键优势:利用FSE主题的
theme.json文件统一管理全局样式,确保网站视觉一致性;集成CC0图片目录提供初始素材
技术架构
项目包含三个核心组件:
- FSE主题:基于Twenty Twenty-Four主题定制,包含预置模式(Pattern)和完整的
theme.json配置 - 基础插件:承载所有功能逻辑和用户界面
- API端点:作为用户网站与OpenAI API之间的通信桥梁
关键实现方案
AI提示生成策略
- 模型选择:主要使用GPT-3.5 Turbo控制成本,仅在色彩方案生成时使用GPT-4以获得更好效果
- API选用:采用OpenAI Assistant API,并集成Moderation API过滤违规内容(免费使用)
图片解决方案
放弃使用DALL-E等图像生成模型(成本高、速度慢),转而采用Pexels图库的CC0图片,兼顾质量与授权合规性
全站上下文保持
- JSON结构化方案:为每个模式(Pattern)定义描述和字符串(String)清单,通过命名空间保持语义关联
- 上下文管理:每个字符串包含:
- 默认文本(常规使用时显示)
- 模板特定命名空间(标识符)
- 默认预览命名空间(上下文共享标识)
- 生成逻辑:API根据模式描述生成互补内容,避免重复,并通过字符串slug实现精准替换
临时实例方案
利用WordPress Playground在浏览器中创建临时WordPress实例,实现免服务器的实时预览和主题导出,解决了为每个用户会话维护独立实例的技术难题
开源信息
完整源代码已在GitHub开源,项目采用的技术栈包括:
- FSE主题架构
- OpenAI API集成
- WordPress Playground应用
- 结构化JSON数据交换
后续发展
作者鼓励社区基于该代码库进行创新开发,并希望通过开源共享促进AI与WordPress生态的进一步结合。
22. OpenAI's chatbot store is filling up with spam (techcrunch.com)
OpenAI的GPT商店正充斥着垃圾信息、法律存疑及潜在有害的内容,这与公司最初的愿景相去甚远。
商店现状与问题
- 垃圾内容泛滥:尽管OpenAI声称通过人工与自动化结合的方式审核,但商店中快速增加了超过300万个GPTs,导致质量下滑,并出现大量违反其自身政策的内容。
- 版权侵犯风险:商店中存在大量未经授权使用知名IP(如迪士尼、星球大战、任天堂角色)的GPTs。这些工具可能引发版权和商标纠纷。OpenAI本身受数字千年版权法“安全港”条款保护,但面临IP诉讼的公司形象受损。
- 学术不诚信:商店内充斥着声称能绕过AI内容检测工具(如Turnitin、Copyleaks)的GPTs。尽管OpenAI的政策禁止此类工具,且AI检测工具本身可靠性存疑,但这仍助长了学术作弊行为。部分此类GPTs是第三方付费服务的引流工具。
- 冒充行为:商店中出现了模拟名人(如埃隆·马斯克、特朗普)或代表公司产品(如MicrosoftGPT)的GPTs。OpenAI政策禁止未经授权的冒充,但允许“以...的风格”回应。公司曾因违反政治活动政策移除一个模拟政治人物的GPT。
- 尝试越狱:存在一些使用“DAN”(“立即做任何事”)等提示词尝试绕过模型安全防护的GPTs。虽然测试效果有限,但它们倾向于产生更不受限制的回应。
OpenAI的立场与挑战
- 公司发言人表示,违反政策(包括学术不诚信、尝试规避安全防护、未经授权的冒充)的GPTs将被处理。但对于某些灰色地带(如“人性化”文本工具、对公众人物的戏仿),公司表示仍在学习和观察中。
- 低门槛的GPT创建工具是导致内容爆炸式增长的原因之一,但也带来了内容质量的挑战。
- 未来的商业化计划(如让开发者通过用户量或订阅赚钱)可能加剧问题,因为未授权使用IP的GPTs一旦产生收入,将直接引发与版权方(如迪士尼、托尔金遗产基金会)的法律冲突。
结论 GPT商店正经历类似早期应用市场的“成长之痛”,快速扩张的同时,OpenAI的审核和内容治理未能有效跟上,导致商店目前处于一种混乱状态。若不尽快改善,这一局面可能持续。
23. Parrots love playing tablet games. That's helping researchers understand them (news.northeastern.edu)
鹦鹉热衷平板游戏:助力研究者理解动物与科技互动
东北大学助理教授Rébecca Kleinberger及其合作者长期探索利用触摸屏技术丰富和理解动物生活。他们的最新研究聚焦于一个核心问题:如果动物要使用触摸屏,我们应如何为其设计?鹦鹉通过玩平板游戏帮助研究者找到了答案。
研究方法与过程
在最新研究中,Kleinberger、行为神经科学本科生Megan McMahon及合作者设计了一款简易的“气球弹出”风格平板游戏。20只宠物鹦鹉参与了研究,它们来自不同物种,从小型绿颊锥尾鹦鹉到世界上最大的风信子金刚鹦鹉均有涉及。所有鹦鹉此前都有使用触摸屏的经验,并在各自家中完成研究。
在饲养员的协助下,鹦鹉学习使用三星Galaxy平板上的基本应用游戏。该游戏要求鸟类用喙和舌头点击屏幕上不同大小、颜色和位置的目标圆圈。研究每天进行不超过30分钟的短时训练,历时三个月。最终17只鹦鹉完成了研究,3只因训练期间表现出轻微攻击性或缺乏兴趣而退出。
主要发现
游戏收集了鹦鹉的点击准确性、位置、频率以及触摸压力和拖拽率等数据。团队评估了现有人类触摸屏设计原则(特别是预测人类指向移动的菲茨定律)在鹦鹉身上的适用性。
研究发现:
- 鹦鹉主要使用舌头操作平板,导致眼睛离屏幕比人类更近,点击准确性可量化地低于人类,因此更适合较大的点击目标。
- 不同体型鹦鹉的表现存在较大差异,较小体型的鸟类往往面临更多困难。
- 令研究者惊讶的是,某些鹦鹉物种控制舌头的速度极快,有些鹦鹉能连续触控41次,达到每秒数次的触控频率。
界面优化与应用意义
基于这些发现,研究团队在研究过程中对应用界面进行了实时人体工程学调整,增加了“多点触控阈值”功能,减少了鹦鹉使用时的挫败感。这体现了研究动物身体特征如何为新界面设计提供信息,从而增强动物的能力。
饲养员在研究后的调查中表示,该经历对鹦鹉是积极的,共同参与研究也是增进人与鹦鹉情感联系的良好体验。研究团队强调,他们开发的系统旨在供人类与动物共同使用,增强互动而非替代互动。
长期展望与影响
该研究将于五月在人机交互会议(CHI)上展示,标志着研究的下一步。此前,团队已证明鹦鹉因其卓越的智力、高度的社会性和独特的身体能力,特别适合从触摸屏技术中受益。最新研究进一步支持了触摸屏可以丰富鹦鹉生活的观点。
研究团队希望这些发现能成为适应屏幕技术服务于鹦鹉乃至其他物种的起点。Kleinberger认为,这能为蓬勃发展的“宠物科技”市场带来一些学术严谨性,该市场中的新产品常承诺改善动物福利,但往往缺乏数据和研究支持。
研究者的目标是使这些见解不仅有利于宠物科技行业,还能为更广泛的研究社区、技术开发者和宠物主人提供宝贵指导。同时,研究也指出了潜在风险,如屏幕使用过度问题,以及鹦鹉可能损坏平板电脑的独特问题。
24. Jim Ward has died (www.gamedeveloper.com)
- 去世时间:Jim Ward于2024年3月18日去世,享年72岁。
- 职业起步:1976年,Ward与Rob Kuntz合作推出《Gods, Demi-Gods & Heroes》规则书,正式进入游戏行业。同年,他创作了《Metamorphosis Alpha》——TSR的第四款角色扮演游戏,也是其首款科幻奇幻RPG。
- TSR时期贡献:他在TSR参与开发了多个游戏模组和补充规则,例如与David Cook等人共同制作的《Ruins of Adventure》补充规则,后被改编为1988年的电子游戏《光芒之池》。他曾晋升为TSR创意服务副总裁,后因与高层分歧于1996年离职。
- 荣誉与成就:1989年,Ward入选“冒险游戏艺术与设计学院”名人堂。
- 后续职业发展:离职后,Ward为《龙珠Z》设计了集换式卡牌游戏(与已故的鸟山明合作),还参与了《时光之轮》《古墓丽影》《巴比伦5》等IP的卡牌游戏开发。他联合创立了Fast Forward Entertainment公司,并曾为Troll Games撰写游戏补充材料。
- 行业评价:同行评价他慷慨、耐心、友善。其Facebook悼词称他“留下了超越时空的遗产,持续激励着后代的作家、玩家和梦想家”。
25. Why did we wait so long for the bicycle? (2019) (rootsofprogress.org)
自行车发明为何姗姗来迟:假设、历史与深层原因
自行车是一种简单的机械装置,但直到19世纪末才被发明。文章探讨了多种假设,分析其合理性,并通过历史梳理揭示关键设计转折点,最终指出经济和文化因素是深层解释。
主要假设
- 技术因素:19世纪金属加工进步(如铁和钢材)、车轮技术(辐条轮、硫化橡胶)、链条和齿轮等精密制造是关键。
- 设计迭代:早期自行车不便且危险(如无踏板、无转向),经历数十年迭代才达到实用模型。
- 道路质量:早期道路多为土路或鹅卵石,颠簸不平,直到碎石路面普及后改善。
- 与马竞争:马是常见交通工具,但自行车更便宜、易维护;1816年“无夏之年”食物短缺可能促使人们寻找替代方案。
- 经济增长:需要中产阶级提供市场需求,自行车最初多为娱乐工具。
- 文化因素:社会对实用机械发明缺乏兴趣。
假设分析
- 道路质量并非主因:自行车可在土路或人行道骑行,且道路改善实际上在自行车普及后发生。
- 马竞争解释不足:自行车成本更低,且发明者长期探索人力车辆。
- 技术因素可能必要:但早期实验可用木材等简单材料进行,并非主要障碍。
历史关键转折点
- 早期概念(15-17世纪):Giovanni Fontana和Jacques Ozanam描述四轮人力马车设计,但未实用化。
- 两轮突破(19世纪初):Karl von Drais发明无踏板两轮“跑步机”(draisine),用脚推动,成为自行车前身。
- 踏板加入(1860年代):在法国出现带踏板的“boneshaker”,提高推进效率。
- 高轮设计(1870年代):“penny-farthing”大前轮设计,但危险易翻倒。
- 安全自行车(1880年代):John Starley于1885年推出链条驱动安全自行车;John Dunlop于1888年引入充气轮胎,奠定现代自行车形式。
深层解释
- 设计非显而易见:数世纪停滞于四轮马车思路,两轮设计需突破性思维,且经过多轮迭代才成熟。
- 技术进步必要:充气轮胎、金属加工等使自行车实用、舒适且廉价。
- 经济和文化因素:
- 经济:需要社会剩余支持研发(如贵族闲置时间发明),并创造市场需求。
- 文化:创新并非人性固有,而是被环境培养;缺乏创新意识导致长期停滞。
自行车发明延迟反映了发明过程复杂,需设计突破、技术条件和社会环境共同作用。
26. Neuralink patient controls games by thinking during interview (twitter.com)
根据您提供的内容,无法生成关于“Neuralink患者通过思维控制游戏”新闻的有效摘要。
您提供的文章内容显示为网页加载错误提示,建议检查隐私相关扩展或重新加载。原始的新闻正文内容缺失,因此无法基于所提供的信息进行总结。
如需获取该新闻的准确摘要,请提供完整的文章正文。
27. HiddenVM – Use any desktop OS without leaving a trace (github.com)
HiddenVM 摘要
HiddenVM 是一款旨在提升计算隐私的开源 Linux 应用程序。它允许用户在 Tails 操作系统(一个高度注重隐私和反取证的实时系统)中一键运行 Oracle 的 VirtualBox 虚拟化软件,从而能够在 Tails 环境内运行几乎任何其他操作系统(如 Windows、macOS 或其他 Linux 发行版)的虚拟机。
核心功能与目的
- 隐私与反取证:所有虚拟机文件可以存储在 VeraCrypt 隐藏卷中,并仅在 Tails 会话期间挂载。当计算机关闭时,除了一个空白的 Tails USB 和看似已被擦除的硬盘数据外,不会留下任何虚拟机存在的痕迹,从而实现数据的“合理否认”。
- 网络连接:虚拟机默认连接到 Tor 之前的全速互联网,而 Tails 本身的 Tor 连接不受影响。用户也可以将虚拟机配置为通过 Tor(例如使用 Whonix)进行连接。
- 使用场景:主要面向需要高度隐私保护的用户,如政治异见人士、记者或任何关注数字监控的人。
安装与使用
- 准备:始终准备两个 Tails USB 驱动器,一个备用。在备用驱动器上升级 Tails,以避免因 Tails 更新导致 HiddenVM 失效。
- 安装:在 Tails 中设置管理员密码(不使用 Tails 的持久化存储功能),创建并挂载一个 VeraCrypt 加密卷作为安全存储。从官方下载 ZIP 文件,运行 AppImage 进行安装。
- 使用:首次安装后,可以离线使用。VirtualBox 启动大约需要 2 分钟(首次安装或升级后可能需要更长时间)。
安全性验证
用户不必完全信任 AppImage 文件。可以通过以下方式验证:
- 挂载 AppImage 检查其内部代码。
- 使用 SHA512 校验文件验证下载的完整性。
- 从源代码自行构建 AppImage。
常见问题与解答
- 兼容的客操作系统:已测试 Windows 10、macOS、多种 Linux 发行版及 Whonix,理论上 VirtualBox 支持的均可运行。
- 系统资源:建议至少 16GB 内存,因为 Tails 和虚拟机都主要依赖内存运行。
- 启动缓慢:首次运行需下载组件;每周联网时可能进行更新。遇到超时错误通常与当前 Tor 电路质量有关。
- 离线使用:可以,前提是不升级 Tails 和 HiddenVM。
- 虚拟机网络:默认不使用 Tails 的 Tor 连接。若需匿名,可链接 Whonix 网关虚拟机,但需注意避免在 Tor 和非 Tor 连接间切换以保持匿名性。
- DNS 配置:默认不传递 DNS 解析,需在虚拟机内手动设置公共 DNS(如 1.1.1.1)。Whonix 不受影响。
已知限制
- 启动过程中执行某些 Tails 任务可能导致会话崩溃(使用 Tor 浏览器除外)。
- 对 Tails 系统设置进行了临时修改(如调整 sudo 超时),可能略微扩大攻击面,建议在单独的 Tails 会话中进行重要互联网活动。
- “合理否认”的有效性高度依赖具体威胁模型和场景,无法保证在所有情况下均有效。
特色功能
- Extras:通过脚本在 HiddenVM 启动后自动执行命令,用于安装软件或修改设置。
- Dotfiles:可将配置文件自动符号链接到 Tails 主目录,实现环境个性化。
重要说明与免责声明
- 不兼容 Tails 持久化存储:HiddenVM 的工作方式与 Tails 官方持久化存储功能不兼容。
- Tor-over-Tor 问题:由于设计原因,Whonix 在 Tails 中运行时不会导致 Tor-over-Tor 问题。
- 安装扩展包:可以通过编辑配置文件永久启用 VirtualBox 扩展包(运行 macOS 所需)。
- 免责声明:该项目虽旨在提升隐私安全,但不提供任何保证。用户需自行承担使用风险。
28. Micrograd-CUDA: adapting Karpathy's tiny autodiff engine for GPU acceleration (github.com)
该项目旨在通过自研基础CUDA代码,实现GPU加速的张量自动微分引擎,无需依赖Python第三方库,仅依赖Python标准库和CUDA。灵感来源于Andrej Karpathy的micrograd项目。
核心功能包括:
- 基于自定义的MLP模型(多层感知机)进行前向和反向传播。
- 提供Tensor类用于张量管理,支持在CPU和GPU设备间移动数据。
- CUDA实现了矩阵乘法等基本操作,并以动态库方式编译(命令:nvcc -shared -o liboperations.so micrograd_cuda/operations.cu -Xcompiler -fPIC)。
- 使用方法包括模型定义、数据准备(批处理)、前向与反向计算、参数梯度清零、模型参数更新(SGD),以及最终损失值输出与计时功能。
- 所有计算可选择运行在CPU或GPU,并支持在不同设备间切换张量。
- 当前进度包含基本的2D张量支持、简易MLP批处理、矩阵乘法CUDA内核;未来路线包括代码优化、错误处理、支持高维张量、底层Rust实现等。
- 项目使用MIT协议,代码尚处于开发阶段,部分CUDA张量数据操作和复制存在不完善之处。
结构简述:
micrograd_cuda/tensor.py:张量抽象与设备管理。micrograd_cuda/mlp.py:MLP模型定义与参数管理。micrograd_cuda/operations.py:主要CUDA操作函数。- 支持自动微分与微分传播,实现基础神经网络训练流程。
测试支持、加速速度测量等功能已实现,便于性能对比。
29. Is the Job Market Dying? (rachdele.substack.com)
文章探讨了当前就业市场存在的系统性问题,指出尽管经济数据表现良好,但求职过程却日益困难且令人沮丧。主要观点如下:
“申请饱和循环”与招聘流程失灵
求职者通过聚合网站大量投递“一键申请”职位,但往往石沉大海。招聘方因收到海量申请(常超过200份)而不堪重负,转而使用AI简历筛选工具。这些工具号称能超越关键词识别“资质”,但其筛选标准不透明,导致许多合格简历被忽略。求职者面临财务压力,却只能不断重复投递,陷入低效循环。技术工具与聚合平台加剧矛盾
招聘聚合网站(如Indeed、LinkedIn等)本应简化求职,却因信息泛滥和同质化而制造了“不透明迷宫”。它们鼓励广泛投递,而雇主却抱怨找不到合适人选。经济不确定性可能进一步放大这些工具的负面影响。远程工作与全球化竞争
远程工作机会虽多,但吸引力下降且地点要求模糊;同时,职位全球化使竞争范围扩大,求职者不仅与本地人竞争,还需面对全球候选人。这降低了雇主长期投资员工的意愿,并可能压低薪资。经济指标与现实体验脱节
传统经济数据(如职位空缺、失业率)显示市场健康,但实际求职体验却恶化。调查显示70%求职者认为当前求职比以往更难。经济叙事(如“大辞职”转为“大滞留”)与消费者情绪(“氛围衰退”)存在明显分歧。招聘流程日益繁琐与剥削性
雇主因经济压力(如零利率政策结束、对衰退的担忧)而更谨慎,导致面试轮次增加、免费“样本工作”要求增多、单向视频面试泛滥,且缺乏反馈机制。这增加了求职者的时间成本与不公平感。社交网络与求职策略局限
传统社交网络(如人脉推荐)仍起关键作用,但往往有利于已有优势者。作者建议求职者应减少广撒网式投递,转而聚焦更匹配的职位;雇主则应明确岗位要求、限制申请量,并避免要求无偿劳动。结构性不平等加剧 当前系统对社会资源较少的求职者最不利,他们更难突破技术筛选和人际网络壁垒。尽管技术承诺“普及机会”,实际却增加了复杂性,可能使弱势群体更难获得面试机会。
总结:就业市场在经济表面繁荣下存在深层运行机制问题,包括技术滥用、流程低效、竞争全球化及公平性缺失。这些因素共同导致求职者体验下降,且可能在未来经济压力下进一步恶化。
30. Introducing pgzx: create PostgreSQL extensions using Zig (xata.io)
pgzx:使用 Zig 语言开发 PostgreSQL 扩展的开源框架
pgzx 是一个用于开发 PostgreSQL 扩展的开源框架,它基于 Zig 语言。该框架提供了一套实用工具、API 封装器以及构建和开发环境,旨在简化与 PostgreSQL 代码库的集成过程。
选择 Zig 的优势 Zig 是一种专注于稳健性、性能和可重用性的通用编程语言。它常被视为“现代 C”,具备更安全的内存管理、编译时代码执行(comptime)和丰富的标准库。Zig 能够直接与 C 代码互操作,支持 C ABI、处理 C 数据类型(包括 NULL 结尾的字符串),并能将 C 头文件转换为 Zig 代码,这使得它非常适合与 PostgreSQL 这样的大型 C 代码库协同工作。
框架核心功能
- 开发环境:pgzx 基于 Nix flakes 提供开发环境,包含项目模板,方便快速设置和构建扩展。
- API 封装与代码生成:通过 Zig 的
comptime特性,pgzx 在编译时自动生成处理 SQL 函数参数反序列化、模块符号注册(如PG_MODULE_MAGIC)等样板代码,使代码更简洁。 - 运行时内存安全:Zig 在特定构建模式(如
ReleaseSafe)下提供运行时检查。当发生如数组越界等错误时,能提供详细的堆栈跟踪,有助于调试,优于 C 的段错误。 - 内存管理:框架为 Zig 代码封装了 PostgreSQL 的
memory context作为自定义分配器。PostgreSQL 使用基于上下文(arena)的内存管理,允许一次性释放一组分配,简化管理并减少内存泄漏。Zig 惯例要求分配操作显式传递分配器,与此模型天然契合。 - 错误处理:PostgreSQL 的 C API 使用
setjmp/longjmp实现异常。pgzx 提供函数捕获这些 PostgreSQL 异常,并将其转换为 Zig 错误,确保 Zig 的defer和errdefer语义正常执行,维护了控制流的完整性。 - 测试支持:除支持传统的
pg_regress集成测试外,pgzx 还允许编写单元测试。测试套件被编译为可加载模块,并通过自定义的run_tests()SQL 函数调用执行。
示例扩展
char_count_zig 是一个示例扩展,用于统计字符串中特定字符的出现次数。它展示了 pgzx 如何简化扩展开发,例如通过 comptime 实现类似 C 宏的符号注册,并利用 Zig 的类型系统实现参数的自动反序列化。
项目背景与状态 pgzx 由 Xata 公司为其正在开发的一个类 Citus 的分布式 PostgreSQL 项目而创建。在评估了 C、Rust 和 Zig 后,他们选择了 Zig,因为它能直接调用 PostgreSQL API、提供比 C 更好的内存安全性,并且与 PostgreSQL 的内存和字符串处理方式兼容。pgzx 目前处于 alpha 阶段,但已能显著降低使用 Zig 开发 PostgreSQL 扩展的门槛。
31. Launch HN: CamelQA (YC W24) – AI that tests mobile apps
32. Rye: Homoiconic dynamic programming language with some new ideas (github.com)
Rye 编程语言摘要
定义与灵感
Rye 是一种高级动态编程语言,受 Rebol、Factor、Linux shells 和 Go 启发,具备基于 Go 的解释器和交互式控制台,可作为 Go 程序的脚本伴侣或嵌入式脚本/配置语言。
核心特性
- 同像性:代码即数据,数据即代码。
- 面向函数:无关键字,所有操作均为函数调用。
- 基于表达式:所有语句返回值。
- 一等函数:函数和代码块可作为值使用。
- 多方言:提供专门解释器处理不同任务。
- 安全性:支持显式状态更改、纯/非纯函数分离及验证方言。
开发状态
处于 Alpha 阶段,核心语言设计稳定,重点改进运行时、文档和可用性。
代码示例
Rye 语法简洁,例如:
- 打印操作:
print "Hello World"。 - 字符串处理与管道:
"Hello World" .replace "World" "Mars" |print。 - 列表操作:
"12 8 12 16 8 6" .load .unique .sum返回 42。 - 过滤与迭代:
{ "Anne" "Joan" "Adam" } |filter { .first = "A" } |for { .print }。 - 函数定义与递归:
fac: fn { x } { either x = 1 { 1 } { x * fac x - 1 } }计算阶乘。
构建与安装
- 从源代码构建:需 Go 1.21.5+,支持最小构建、标准构建或自定义构建(通过模块标签)。
- 运行方式:可通过 REPL 或脚本执行,并支持构建 WASM 版本用于浏览器环境。
- 预构建版本:提供 Linux、macOS、Windows 和 WASM 的二进制文件,支持 Homebrew(macOS/Linux)、Arch Linux AUR 及 Docker 镜像。
- 测试与文档:通过运行测试命令和生成函数参考来维护代码质量。
资源与生态
- 官方资源:网站 ryelang.org 提供文档、教程和示例,包括博客、示例文件夹和 Asciinema 交互演示。
- 扩展项目:包括 GUI 绑定(Rye-fyne、Rye-gio)、游戏引擎绑定(Rye-ebitengine)和绑定生成工具(ryegen)。
- 编辑器支持:VS Code、Emacs 和 NeoVIM 提供语法高亮。
- 社区联系:可通过 GitHub Discussions、Reddit、Issues、Discord 和邮箱参与交流。
Rye 旨在通过同像性和函数式设计,提供安全、灵活的脚本和配置解决方案,适用于 Go 生态集成和浏览器环境。
33. Show HN: GritQL, a Rust CLI for rewriting source code (github.com)
GritQL 是一个用 Rust 编写的声明式查询语言与命令行工具,用于搜索和修改源代码。
核心特点
- 易用入门:无需了解抽象语法树(AST)细节,任何代码片段都可以直接作为 GritQL 查询。
- 高性能:使用 Rust 编写并通过查询优化,支持处理超过 1000 万行代码的大型仓库。
- 模块化与可复用:拥有内置模块系统,可使用 200 多个标准模式或分享自定义模式。
- 多语言支持:学习一次 GritQL,即可用于重写多种目标语言,包括 JavaScript/TypeScript、Python、JSON、Java、Terraform、Solidity、CSS、Markdown、YAML、Rust、Go 和 SQL。
- 自动修复集成:便于集成自动修复规则,加速问题整改。
入门与使用
- 用户可通过官方文档、交互式教程或
grit --help开始使用。 - 安装:通过提供的
curl命令安装 Grit CLI。 - 基本用法:
- 搜索代码模式,例如查找所有
console.log调用:grit apply 'console.log($_)'。 - 进行代码替换,例如将
console.log替换为winston.log:grit apply 'console.log($msg)=>winston.log($msg)'。 - 将模式保存到配置文件(如
.grit/grit.yaml),并通过grit apply use_winston命令应用。 - 使用
grit check命令可将自定义模式作为代码规范检查(lint)规则来强制执行。
- 搜索代码模式,例如查找所有
示例
- 提供了多个实际用例,例如删除所有
console.log(除非在 try-catch 块中)或替换方法调用。 - 更多示例可在 GritQL 标准库中找到,模式可以组合以执行复杂的查询和大规模重构。
设计初衷 GritQL 源于大规模代码重构和迁移的实践经验。传统方法(如简单的正则表达式搜索)易于开始但难以满足复杂需求(如正确的包导入、排除不适用的场景),而转向使用像 jscodeshift 这样的代码修改框架又会带来新问题,例如需要理解 AST、代码可读性差、框架不可组合、性能不佳以及语言特定性。
GritQL 旨在提供一个强大的中间方案:
- 简化探索性分析,直接使用带元变量的代码片段。
- 通过
where子句逐步增加查询复杂性。 - 支持模式复用和共享,减少重复工作。
- 利用 Rust 实现高性能,能在数秒内重写数百万行代码。
其他信息
- GritQL 使用 tree-sitter 进行语言解析,并受益于 Rust 生态系统。
- 采用 MIT 许可证发布,欢迎社区贡献。
34. Array Languages: R vs. APL (2023) (jcarroll.com.au)
本文是作者通过学习APL数组语言与R语言进行对比的实践心得,主要探讨了两种语言在解决数组和矩阵问题时的不同设计哲学和表达方式。
作者通过Exercism平台尝试学习多种编程语言,并对APL产生了兴趣。APL是一种古老的数组语言,以使用特殊符号(glyphs)进行极其简洁的表达而闻名。作者通过一个具体问题(求数组中最大值与最小值的最大公约数)的对比,展示了APL用仅5个符号的解决方案 ⌈/∨⌊/,并逐步理解了这些符号对应“最大值”、“约归”、“最大公约数”和“最小值”等操作。
文章的核心比较围绕两个具体编程问题展开:
- 矩阵行和的最大值:APL的解决方案
⌈/+/x(先对每行求和,再取最大值)极为简洁。R语言的标准做法是max(rowSums(a)),同样直观。作者尝试用R的Reduce函数模拟APL的“约归”操作,展示了两者在底层操作上的相通之处。 - 寻找小于N的所有质数:APL的解决方案
((⊢~∘.×⍨)1↓⍳)(50)使用了组合子等高级概念,代码紧凑但初看较难理解。作者受此启发,在R中用setdiff和outer函数组合实现了类似逻辑的质数生成算法,强调了R通过向量化操作抽象循环的特点。
通过对比,作者总结了两种语言的关键差异:
- APL:操作符数量少(约80个),强调对数组的直接、显式操作,代码极其简洁,不隐藏底层实现细节,体现了函数式编程和“约归”的思想。
- R:提供了丰富的高级抽象函数(如
rowSums,apply),通过向量化隐藏了循环,使代码更易读(对熟悉R的用户),但可能掩盖了底层操作。作者指出,理解Reduce等函数如何工作,有助于更好地掌握R。
作者最终认为,虽然APL的代码初看像“天书”,但其逻辑是清晰的,学习它有助于深入理解数组操作和函数式编程。而R的抽象化使其在日常数据处理中更易用和表达力强。两者都属于“数组语言”,但在设计上代表了“显式操作”与“高度抽象”两种不同的路径。文章也提到了作者未来计划尝试APL的现代变体BQN。
35. Show HN: Ragas – Open-source library for evaluating RAG pipelines (github.com)
Ragas:用于评估RAG管道的开源库
Ragas 是一个用于评估和优化大型语言模型(LLM)应用的开源工具包,旨在提供客观指标、智能测试生成和数据驱动的洞察,以取代耗时且主观的评估方式。
核心特性
- 🎯 客观指标:结合基于LLM的指标和传统指标,精确评估LLM应用。
- 🧪 测试数据生成:自动创建覆盖多种场景的全面测试数据集。
- 🔗 无缝集成:与LangChain等主流LLM框架及主流可观测性工具无缝协作。
- 📊 构建反馈循环:利用生产数据持续改进LLM应用。
安装与快速开始
- 安装:可通过
pip install ragas从PyPI安装,或从GitHub源码安装。 - 快速开始:使用
ragas quickstart命令克隆完整的示例项目。目前提供rag_eval模板用于评估RAG系统,未来将支持评估AI代理、LLM基准测试、提示评估和复杂工作流评估等更多模板。
评估示例
Ragas提供预置指标用于常见评估任务。例如,使用 DiscreteMetric 进行“方面批判”评估:
from ragas.metrics import DiscreteMetric
metric = DiscreteMetric(
name="summary_accuracy",
allowed_values=["accurate", "inaccurate"],
prompt="评估摘要是否准确并捕获关键信息..."
)
# 通过`metric.ascore()`方法对应用输出进行评分
社区与贡献
- 项目拥有一个Discord社区,供用户讨论LLM、检索和生产问题。
- 欢迎社区贡献,包括错误修复、功能添加和文档改进。贡献流程包括Fork仓库、创建分支、提交更改并发起拉取请求。
数据收集与透明度
Ragas收集最小化、匿名的使用数据以改进产品,代码开源且数据公开。不收集个人或公司识别信息,用户可通过设置环境变量 RAGAS_DO_NOT_TRACK=true 选择退出。