Hacker News 今日精选涵盖 shell 脚本技巧、移动设备安全、边缘硬件项目、AI 流量管理、微型大模型、Debain AI 政策以及法律教育的 AI 应用。
A shell colon does nothing. Use it anyway
参数校验的简写
在需要确保位置参数不为空的脚本中,常见的做法是使用 if [ -z "$1" ]; then … fi。冒号结合参数展开可以把这四行压缩为一句话:: "${1:?missing argument, aborting."}。当变量未设置或为空时,诊断信息会打印到 stderr 并导致非零退出;否则展开为变量值,后续命令仍能正常使用。
其他常见用法
- 设置默认值而不执行结果:
: "${DATA_DIR:=/var/data}"。 - 清空文件:
: > error.log(可叠加清空多个文件)。 - 检测文件可读/可写:
( : < dataset.json ) && echo YES、( : >> result.json ) && echo YES。 - 在需要命令的地方做空操作:
trap : INT、if some-command; then :; else echo "command failed"; fi。 - 配合
set -u检查多个变量:: "$DEPLOY_ENV" "$HOST"。
社区实例
一位 Hacker News 用户把冒号用作 Git 的 sequence.editor,实现免编辑的交互式变基:riq = -c sequence.editor=: rebase --interactive。这说明冒号在任何需要命令但不需要实际执行的场景都非常实用。
GrapheneOS protections against data extraction from locked devices
安全核心机制
GrapheneOS 依赖设备的安全元件进行全盘加密;攻击者只能在 After First Unlock (AFU) 状态利用系统漏洞或暴力破解 PIN/密码。安全元件在 Android 16 QPR2 引入的速率限制机制使得失败尝试迅速变得代价高昂:第 10 次后延迟升至 4 小时,第 15 次后升至 41 天,最多仅允许 20 次不同尝试,且最近五次独特失败会被直接拒绝以避免无效消耗。
额外强化措施
- 密码长度上限提升至 128 字符,支持高熵 diceware 短语,减少对速率限制的依赖。
- 可选第二指纹 PIN:指纹尝试从 20 次降至 5 次,错误的第二因素 PIN 同样计入该上限,允许用户用长密码保护启动阶段,日常使用短 PIN 配合指纹。
- 内存分配器加固和硬件内存标记(MTE)提升对内存破坏漏洞的防护。
- 锁定状态默认阻止新 USB 连接,无活动链路时立即关闭 USB 数据。
- 锁定自动重启计时器(最早 2021 年 6 月推出)可设定 10 分钟至 72 小时,重启时清零内存返回到 Before First Unlock (BFU) 状态,随后被 iOS 18.1 和 Android 16 的高级防护模式采用。
- 次要用户和私密空间拥有独立加密密钥,可通过 “end session” 切换到 BFU 而不重耗,但仍建议完整重启以清除 RAM 和阻止安全元件更新。
- 胁迫 PIN/密码在任何认证提示下触发完整数据擦除,覆盖锁屏、系统设置及指纹第二因素。
实际效果
上述层次结构使得在没有用户明确配合的情况下,从锁定设备提取数据在实务上变得不可行,攻击者只能依赖漏洞利用或极慢的暴力破解,而后者在速率限制下往往不切实际。
An ESP32 based plane radar for my desk
项目定位
该开源项目把 ESP32‑C3(带 Wi‑Fi/蓝牙的低功耗 SoC)与 1.28 英寸圆形屏幕结合,实现接收附近 ADS‑B 信号并把飞机以距离和方位绘制在屏幕上的微型雷达。
核心能力
- 软件通过 ESPHome 网页刷写工具快速固件更新,OTA 更新同样支持。
- 飞机数据经解析后显示尾号、呼号、'origine‑destination'、机型(如 B737‑800)以及本地天气、温度、湿度和时间。
- 用户可通过网页界面修改经纬度、调节单位、跑道显示、时间制式以及字体大小(默认放大 10%,可通过滑块进一步调节 80‑130%)。
- 未来计划迁移到更大屏幕并设计更宽容的 3D 打印外壳。
使用场景
适合办公桌或实验室的爱好者随时监视周边航班,也可作为教学演示 ADS‑B 技术的便携设备。项目全部源码和硬件清单在 GitHub 公开,降低了自行构建的门槛。
Cloudflare's new AI traffic options for customers
新闻概述
Cloudflare 在其“内容独立日”更新中推出细分的 AI 爬虫管理,把以前“一键阻止 AI 机器人”拆分为 Search、Agent、Training 三类,让站点所有者可分别设置放行或阻止规则。
关键特性
- BotBase:可搜索的机器人数据库,直接在仪表盘展示已知爬虫及其归属(Search/Agent/Training等),并记录行为(扫描、索引、训练等),为后续细粒度控制提供依据。
- content‑use 信号:可在 robots.txt 中设置
immediate、reference(默认)或full,表达站点所有者对内容使用方式的偏好;若爬虫违背该偏好,其验证状态可能被撤销,从而失去默认放行权。 - 验证爬虫规则调整:验证标签仅表示该爬虫在其申请类别下可被允许,实际放行仍受站点对应类别的允许/阻止策略决定。
- 传递信任:利用 HTTP Forwarded 头(RFC 7239)保持站点对操作方的信任即使经过多层代理,站点可声明
Forwarded: for="openai";use="reference"以表明内容使用方式。 - 默认策略变更:从 2026‑9‑15 开始,新加入 Cloudflare 域名在展示广告的页面默认阻止 Training 和 Agent 爬虫,Search 保持默认允许;多用途爬虫(如 Googlebot)遵循最严格适用规则,站点所有者可在安全设置选择保持旧配置(“不更改”)。
行业影响
站点所有者获得了更透明、可细分的工具来决定 AI 系统如何使用其内容,同时保持了搜索流量的自然回流,减少了训练和代理爬虫对广告页面的干扰。
Running a 28.9M parameter LLM on an $8 microcontroller
技术亮点
作者在售价约 8 美元的 ESP32‑S3 上成功运行了一个含 28.9M 参数的语言模型,芯片具备 512 KB SRAM、8 MB PSRAM 和 16 MB flash,模型在完全离线的情况下产生约 9.5 tokens/秒。
核心实现
- 使用 Per‑Layer Embeddings 技术(源自 Google Gemma),把大约 25 M 参数保存在慢速 flash 中,只留少量“思考”核心在快速 SRAM,每次推理仅需从 flash 读取约 450 字节(相当于嵌入表的六行)。
- 模型在 TinyStories 数据集上训练,能够生成连贯的短故事,但因推理核心规模有限,无法回答问题、遵循指令、编写代码或回忆事实知识。
- 完整固件、接线图和刷写说明位于仓库的
firmware/esp32_llm/README.md,训练、消融和量化代码在src/与experiments/,详细方法和结果在RESULTS.md。
实际意义
该演示表明即使在极其受限的微控制器上,也可以通过把大部分参数置于闪存并在需要时进行少量读取,实现可用的本地语言生成,为完全离线的边缘 AI 设备提供了一条可行路径。
LLM Usage in Debian: Three Proposals
核心观点
Debian 正在就大语言模型(LLM)辅助的贡献进行全体投票,共有四个方案:
- Proposal A:完全禁止在 Debian 中使用 LLM 生成的任何直接贡献(代码、文档、翻译等)。
- Proposal B:允许 AI 辅助贡献,前提是遵守工具法律兼容性、许可证署名、全部责任、使用披露、批量变更的人工监督以及保密要求。
- Proposal C:主张在实际中尽量避免使用 LLM,仅作为行为准则而非强制禁令,强调人工撰写的交流和决策文件。
- Proposal D:承认 AI 已被使用,选择在 Debian 特定工作上制定使用指南,而不实施全面禁令。
论证逻辑
支持禁令的一方指出:LLM 输出的版权状态不明确,可能掺入训练数据中的许可条款;其准确性和可靠性难以保证,尤其在 Debian 对包装一致性和质量有严格要求的场景;依赖 LLM 会对审查者造成额外负担,阻碍新成员学习 Debian 流程;此外,LLM 公司在训练数据收集时常忽视 robots.cn,构成对公共网络的滥用,且耗能巨大。
允许方则认为:全面禁令难以执行,且已有社区成员发现 AI 工具在特定任务上有帮助;通过明确的披露和责任机制可以兼顾创新与项目稳定性。
社区倾向的方案则强调:即使不能彻底禁止,也应鼓励尽量减少依赖,并在必要时强制披露,以维护透明度和人工贡献的价值。
延伸思考
无论最终采用哪条路线,Debian 的决定将影响其他自由软件项目对 AI 生成内容的态度。执行层面的挑战主要在于如何判定贡献是否真正使用了 LLM,以及如何在不增加审查负担的情况下确保合规。讨论还涉及到对开源许可证兼容性的审查以及对项目长期声誉的保护。
Rethinking legal education in the AI era
战略愿景
芝加哥大学法学院提出三个主题来应对 AI 对法律教育的冲击:
- 开发 AI‑resilient 教学与评估:确保学生不依赖 AI 捷径,而是通过勤奋参与培养批判性思维和专业判断。
- 强调“本质人类”技能:口头辩护、战略判断、批判性思维以及与客户和利益相关者建立关系等能力仍将是人类的核心竞争力。
- 教授负责任、有效且合乎道德的 AI 使用:让学生不仅会用当前工具,还具备随技术演进而适用的分析能力和理论工具箱。
实施举措
- 必修 1L 核心课:禁止使用笔记本电脑、平板和手机;课堂只允许特定情况下的电子设备(如记录员或投票),考试采取闭卷无网络形式,并继续强调苏格拉底式提问。
- 1L 法律研究与写作(LRW):把不使用 AI 的写作作为基础,再叠加使用 AI 进行研究、修改和草稿迭代;要求学生和导师共同审查写作与 AI 输出,培养学生自行评估 AI 工作的能力。
- 选修课程:鼓励教师尝试不同的 AI‑resilient 教学形式,如小组项目、口头报告、同伴反馈以及自行研发的聊天机器人或练习题生成器。
- 高阶写作要求:在 substantial research paper (SRP) 中加入强制性的线下口头答辩,学生需在提交完整稿后面对教授当面回答有关论证和影响的问题,这一环节既能检验学生思维,也能锻炼实际法律实践中当众解释观点的技能。
- 临床教育:为诊所配备通用及专门的法律 AI 工具,制定各诊所的使用政策,确保学生在真实客户面前既能使用 AI 再能够在不依赖 AI 的情况下进行工作。
后续考量
法学院承诺保持政策透明,在 syllabus 和课堂上明确说明;通过与雇主、科技公司和定期内部交流保持对新 AI 工具的了解;并会定期征求教师、学生和校友的反馈,以便随技术演进及时修订方案。这三项原则——透明、保持更新、持续审视——旨在使法律教育在 AI 时代既不过度依赖技术,也不失去对核心律师素质的培养。
相关链接:
- Kill The Cookie Banner
- A shell colon does nothing. Use it anyway
- GrapheneOS protections against data extraction from locked devices
- An ESP32 based plane radar for my desk
- Cloudflare's new AI traffic options for customers
- DeepSeek pause fundraise after comments on compute gap to US leaked (transcript) [pdf]
- Inflect-Micro-v2: complete voice in 9.36M parameters
- Running a 28.9M parameter LLM on an $8 microcontroller
- LLM Usage in Debian: Three Proposals
- Rethinking legal education in the AI era
