惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Scott Helme
Scott Helme
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
Webroot Blog
Webroot Blog
S
Security Affairs
H
Hacker News: Front Page
TaoSecurity Blog
TaoSecurity Blog
W
WeLiveSecurity
G
GRAHAM CLULEY
T
Tenable Blog
Schneier on Security
Schneier on Security
S
Securelist
Cyberwarzone
Cyberwarzone
P
Privacy International News Feed
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
Schneier on Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
Recent Commits to openclaw:main
Recent Commits to openclaw:main
O
OpenAI News
N
News and Events Feed by Topic
AWS News Blog
AWS News Blog
C
Cisco Blogs
T
Threat Research - Cisco Blogs
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
Martin Fowler
Martin Fowler
Microsoft Security Blog
Microsoft Security Blog
L
LangChain Blog
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
D
DataBreaches.Net
博客园_首页
MyScale Blog
MyScale Blog
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
P
Proofpoint News Feed
J
Java Code Geeks
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
Know Your Adversary
Know Your Adversary
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org

Agili 的 Hacker Podcast

Agili 的 Hacker Podcast 2026-07-25 Agili 的 Hacker Podcast 2026-07-24 Agili 的 Hacker Podcast 2026-07-23 Agili 的 Hacker Podcast 2026-07-22 Agili 的 Hacker Podcast 2026-07-21 Agili 的 Hacker Podcast 2026-07-20 Agili 的 Hacker Podcast 2026-07-19 Agili 的 Hacker Podcast 2026-07-18 Agili 的 Hacker Podcast 2026-07-17 Agili 的 Hacker Podcast 2026-07-16 Agili 的 Hacker Podcast 2026-07-15 Agili 的 Hacker Podcast 2026-07-14 Agili 的 Hacker Podcast 2026-07-13 Agili 的 Hacker Podcast 2026-07-12 Agili 的 Hacker Podcast 2026-07-11 Agili 的 Hacker Podcast 2026-07-10 Agili 的 Hacker Podcast 2026-07-09 Agili 的 Hacker Podcast 2026-07-08 Agili 的 Hacker Podcast 2026-07-07 Agili 的 Hacker Podcast 2026-07-04 Agili 的 Hacker Podcast 2026-07-06 Agili 的 Hacker Podcast 2026-07-05 Agili 的 Hacker Podcast 2026-07-03 Agili 的 Hacker Podcast 2026-07-02 Agili 的 Hacker Podcast 2026-07-01 Agili 的 Hacker Podcast 2026-06-30 Agili 的 Hacker Podcast 2026-06-29 Agili 的 Hacker Podcast 2026-06-28 Agili 的 Hacker Podcast 2026-06-27 Agili 的 Hacker Podcast 2026-06-26 Agili 的 Hacker Podcast 2026-06-25 Agili 的 Hacker Podcast 2026-06-24 Agili 的 Hacker Podcast 2026-06-23 Agili 的 Hacker Podcast 2026-06-22 Agili 的 Hacker Podcast 2026-06-21 Agili 的 Hacker Podcast 2026-06-20 Agili 的 Hacker Podcast 2026-06-19 Agili 的 Hacker Podcast 2026-06-18 Agili 的 Hacker Podcast 2026-06-17 Agili 的 Hacker Podcast 2026-06-16 Agili 的 Hacker Podcast 2026-06-15 Agili 的 Hacker Podcast 2026-06-14 Agili 的 Hacker Podcast 2026-06-13 Agili 的 Hacker Podcast 2026-06-12 Agili 的 Hacker Podcast 2026-06-11 Agili 的 Hacker Podcast 2026-06-10 Agili 的 Hacker Podcast 2026-06-09 Agili 的 Hacker Podcast 2026-06-08 Agili 的 Hacker Podcast 2026-06-07 Agili 的 Hacker Podcast 2026-06-06 Agili 的 Hacker Podcast 2026-06-05 Agili 的 Hacker Podcast 2026-06-04 Agili 的 Hacker Podcast 2026-06-03 Agili 的 Hacker Podcast 2026-06-02 Agili 的 Hacker Podcast 2026-06-01 Agili 的 Hacker Podcast 2026-05-31 Agili 的 Hacker Podcast 2026-05-30 Agili 的 Hacker Podcast 2026-05-29 Agili 的 Hacker Podcast 2026-05-28 Agili 的 Hacker Podcast 2026-05-27 Agili 的 Hacker Podcast 2026-05-26 Agili 的 Hacker Podcast 2026-05-25 Agili 的 Hacker Podcast 2026-05-24 Agili 的 Hacker Podcast 2026-05-23 Agili 的 Hacker Podcast 2026-05-22 Agili 的 Hacker Podcast 2026-05-21 Agili 的 Hacker Podcast 2026-05-20 Agili 的 Hacker Podcast 2026-05-19 Agili 的 Hacker Podcast 2026-05-18 Agili 的 Hacker Podcast 2026-05-17 Agili 的 Hacker Podcast 2026-05-16 Agili 的 Hacker Podcast 2026-05-15 Agili 的 Hacker Podcast 2026-05-14 Agili 的 Hacker Podcast 2026-05-13 Agili 的 Hacker Podcast 2026-05-12 Agili 的 Hacker Podcast 2026-05-11 Agili 的 Hacker Podcast 2026-05-09 Agili 的 Hacker Podcast 2026-05-08 Agili 的 Hacker Podcast 2026-05-07 Agili 的 Hacker Podcast 2026-05-06 Agili 的 Hacker Podcast 2026-05-05 Agili 的 Hacker Podcast 2026-05-04 Agili 的 Hacker Podcast 2026-05-03 Agili 的 Hacker Podcast 2026-05-02 Agili 的 Hacker Podcast 2026-05-01 Agili 的 Hacker Podcast 2026-04-30 Agili 的 Hacker Podcast 2026-04-29 Agili 的 Hacker Podcast 2026-04-28 Agili 的 Hacker Podcast 2026-04-27 Agili 的 Hacker Podcast 2026-04-26 Agili 的 Hacker Podcast 2026-04-25 Agili 的 Hacker Podcast 2026-04-24 Agili 的 Hacker Podcast 2026-04-23 Agili 的 Hacker Podcast 2026-04-22
Agili 的 Hacker Podcast 2026-05-10
Agili 的 Hack · 2026-05-11 · via Agili 的 Hacker Podcast

欢迎来到 Agili 的 Hacker Podcast,今天我们将探讨从底层架构到早期计算历史的硬核极客实践,并观察 AI 工具与开源生态的最新演进。

纯汇编打造的 Web 服务器

回归底层的开发实践

开发者 imtomt 近期发布了 Web 服务器项目 ymawky,该程序完全使用 ARM64 汇编语言手工编写。它不依赖 libc(标准 C 库),仅调用 syscall(操作系统提供的底层接口),并采用 fork-per-connection(为每个连接分叉进程)模式运行。目前,ymawky 主要在搭载 Apple Silicon 芯片的 MacOS 环境下工作,支持 GET、PUT、DELETE 等基础 HTTP 方法。为了保障安全,程序内置了 path traversal(路径遍历,通过 .. 访问父目录)检测,并具备防御 Slowloris 攻击的机制。

系统间的系统调用差异

在底层实现中,MacOS 与 Linux 展现出明显的机制差异。当系统调用发生错误时,MacOS 会设置进位标志,而 Linux 选择返回负值。在触发指令上,MacOS 使用 x16 寄存器传递编号并执行 svc #0x80,Linux 则使用 x8 寄存器和 svc #0。MacOS 的系统调用接口缺乏长期稳定性保证,这也是 Go 语言在后续版本中放弃直接调用,转而使用 libSystem.dylib 库的原因。

性能表现与心理慰藉

汇编语言具有极高的执行效率,但 ymawky 的性能瓶颈在操作系统层面。频繁创建新进程的开销远大于现代服务器采用的事件驱动模型。与同类 C 语言服务器相比,两者的吞吐量基本持平。社区开发者认为,手工编写 register-centric(寄存器导向)的 ARM64 架构代码逻辑直观。这种开发过程能迫使程序员关注计算机运行的微小细节,不仅去魅化了编译语言的运作机制,也提供了一种直接控制硬件的心理慰藉。

串口调试连接器的替代方案

引入电动车连接器

调试嵌入式设备或路由器固件需要连接 RX、TX 和 GND 三个串口引脚。传统的 Dupont wires(杜邦线,面包板实验常用的连接线)频繁弯折容易断裂,裸露的接头也易引发短路。硬件开发者 Christian Kohlschütter 提出,可以将电动自行车领域普及的 Julet 连接器作为新的串口调试标准。M6 型号的 Julet 连接器外壳坚固,具备 IP68 防水等级,其机械防呆缺口能有效防止引脚插反。

组装与防拉扯设计

在改造过程中,开发者使用 20 厘米长的预制尾线进行压接,并在机壳内部使用扎带提供 strain relief(应力释放,防止线缆受力拉扯导致损坏的技术)。考虑到调试时经常需要交叉连接接收与发送信号,地线被单独固定在杜邦插头上,方便灵活调换收发顺序。由于 Julet 连接器的防水外壳较为紧凑,手动拆卸需要一定的握力。

电压兼容与社区观点

连接器的选择在硬件社区有不同倾向。芯片厂商 FTDI 曾推广 3.5mm 耳机孔作为串口标准,但这种接口在带电插拔时会产生金属摩擦和电磁噪声,容易干扰引导程序的启动信息。专业硬件开发者更强调引脚定义的完整性。主流电平虽然是 3.3V,但 1.8V 或 5V 设备依然常见。理想的连接器应当保留 V_IO(基准电压)引脚,让调试器自动匹配主板电压,避免因电压不匹配烧毁设备。

结合日本漆艺的卡西欧计算器

传统工艺与现代组装

卡西欧推出了 S100X 日本漆艺版计算器,将精密制造与拥有约 95 年历史的 Echizen lacquerware(越前漆器)工艺结合。铝合金机身由福井县的工匠采用 tame-nuri(溜涂,让边缘透出底层色彩的半透明技法)手工涂装。生漆需在温润环境中固化,最终呈现深邃的光泽。该型号在卡西欧山形工厂组装,是目前唯一在日本本土生产的卡西欧计算器。

硬件配置与键盘细节

S100X 配备了带有 AR coating(双面增透膜)的 FSTN 液晶屏,能有效减少反光。键盘采用了台式机键盘常见的 pantograph structure(剪刀脚结构),支持三键无冲,保证快速输入时的准确性。按键字符使用 double-shot molding(双色注塑)工艺,文字直接模压在材料内部,长期使用不会褪色磨损。

市场定位与二次交易

这款限量 650 台的计算器定价约 600 美元,目前在日本市场已售罄。二手平台上的交易价格已上涨至 1000 美元左右。社区讨论显示,这类高规格礼品在日本职场常用于商务赠礼。部分发烧友看中其对材料美学的追求,但也有声音指出,其数学计算功能与普通版无异,且不支持工程师常用的 RPN(逆波兰表示法,一种无需括号的逻辑运算方式)。

特勤局耗时十年的假币案

简陋的厨房造假

1938 年,60 岁的奥地利移民 Emerich Juettner 在纽约的公寓厨房里开始制造一美元假币。他利用年轻时掌握的金属刻蚀技术,通过简陋的压床印制钞票。这些假币纸张和油墨材质错误,文字模糊,甚至带有拼写错误。作为一名生活拮据的拾荒者,Juettner 每天只在不同的餐馆或小店花掉一张假钞,以换取基本的生活必需品。

特勤局的长期追踪

美国特勤局将此案命名为 880 号案件。打击假币是特勤局成立的核心职责,伪造行为是对国家货币主权的攻击。尽管 Juettner 技术拙劣,但他每次极小的作案规模和分散的消费地点,让他成功逃避了追捕。这成为特勤局历史上耗时最长、成本最高的假币调查,直到 1948 年 Juettner 公寓发生火灾,消防员将他的杂物扔出窗外,被儿童捡到后报警,案件才告破。

审判与流行文化

Juettner 被捕后坦承罪行,表示自己每人只骗一美元,不会造成重大损失。法官考虑到他的贫困状况和缺乏贪念,仅判处他一年零一天监禁,并在四个月后给予假释。1950 年,好莱坞将这个故事改编为电影《880 先生》。由于当时还没有禁止罪犯利用罪行获利的法律,Juettner 从制片方获得的版权费远远超过了他印制假钞的总收益。

Visual Basic 的早期开发史

聚焦幕后开发者

EvilGeniusLabs 正在撰写 Visual Basic(简称 VB)的历史,重点关注开发语言的演变历程及幕后工程师。1991 年 VB 1.0 发布时,它是首批让开发者感到计算机站在自己这一边的开发环境。该书第一章节梳理了从达特茅斯 BASIC 诞生到微软建立 BASIC 王朝的历程,记录了 BASIC 如何在小型机上积累数百万程序员。

拖拽界面的诞生

VB 标志性的拖拽式界面设计器来源于开发者 Alan Cooper。1988 年,Cooper 向比尔·盖茨演示了名为 Tripod 的程序,并将其卖给微软。在微软内部,这个代号为雷鸣计划的项目由架构师 Scott Ferguson 带领,团队将 Cooper 的视觉化工具与可嵌入的 BASIC 解释器进行了整合。

工业界的遗留影响

VB 1.0 在短时间内发布了面向 Windows 和 DOS 的两个不同代码库版本。虽然 DOS 版本很快终结,但 VB 构建原生 GUI(图形用户界面)的高效能力让其生命力长久。部分维护工业旧系统的工程师表示,VB6 至今仍在制造业中广泛使用。社区希望微软能开源 VB6,以便开发者自行修复多线程支持等长期缺失的现代功能。

Gemini API 增强多模态文件搜索

引入多模态检索

Google 升级了 Gemini API 的文件搜索工具,支持开发者在构建 RAG(检索增强生成,通过外部数据增强大模型回答准确性的技术)系统时,同时处理文本与图像数据。此次更新基于 Gemini Embedding 2 模型,系统能够直接理解图像内容。用户可以通过描述情绪或视觉风格来搜索素材库,跳过了为图片手动添加标签的环节。

自定义元数据与页码引用

为了提升检索精确度,该工具增加了自定义元数据支持。开发者可以为非结构化数据添加“部门:法务”等键值对标签,系统在查询时会根据标签过滤干扰信息。在处理大型 PDF 文档时,模型现在会标注提取信息的具体出处页码。这种设计方便用户进行事实核查,减少了大模型产生“幻觉”带来的误导。

开发者反馈与应用场景

早期接入的开发者发现,该模型在处理蛋白质印迹图或工程架构图等复杂科学图表时,检索准确率较高,且不需要前期数据预处理。部分开发者指出了配套工具的不足:AI Studio 的原生搜索目前仅支持搜索对话标题,页面滚动机制有时会导致浏览器自带的搜索快捷键失效。

实践先于理解的创新逻辑

挑战线性创新理论

“我们先看到事物奏效,然后才理解它。”这句话反映了创新的非线性本质。学校教育通常灌输“理解先于进步”的观点,这被称为 Thinkism(思维主义,认为仅靠思考就能解决问题的信念)。在现实中,单摆钟的问世早于牛顿提出三大力学定律数年。软件工程中的瀑布模型也是思维主义的体现,要求在编码前设计好所有细节。

职场与学校的思维差异

学校通过提供现成概念和对应题目来巩固思维主义。在真实的研发中,人们起初的理解往往是不完整的,熟读文献也未必能解决实际问题。解决未知问题往往依赖于 Doism(行动主义),即通过尝试看似合理的方案或观察碰巧奏效的做法,再通过思考将其形式化。能够独立实验并寻找答案的员工,其职业发展空间通常更广阔。

大脑神话与 AI 的局限

过度依赖抽象思考会陷入“大脑神话”,认为纯逻辑可以替代实践体验。真实的物理世界极其复杂,任何理论知识在多变的现实面前都不够用。这也是人工智能难以仅凭阅读海量文献就解决所有难题的原因。真正的进步源于修理、编码或设计等具体的实践,人们在此过程中建立直觉,补全对原理的理解。

1962 年的航天微型计算机

为太空任务设计的微机

1962 年,Arma 公司研发出重 20 磅、体积 0.4 立方英尺的 Arma Micro Computer。这款全晶体管化计算机专为航天任务设计,用于阿特拉斯核导弹的惯性导航。它采用 22 位字长串行架构,每次仅处理一个位的数据,仅需 1 位数据总线和 1 位 ALU(算术逻辑单元)。虽然主频 1MHz 且每秒仅执行 3.6 万次操作,但它具备乘除法和平方根运算能力。

独特的存储与封装

这款机器使用了名为 Transfluxor(跨通管)的铁氧体磁芯存储器,实现了 NDRO(非破坏性读取)。读取数据时不会清除原有信息,保证了航天环境中程序指令的绝对稳定性。逻辑电路构建在微型晶圆上,安装在印刷电路板上,板间填充聚氨酯泡沫。这种“三明治”封装结构能承受 100g 冲击并在严酷环境下工作。

微型计算机的界定之争

Arma 的工程师 Wen Tsing Chow(周文俊)发明了 PROM(可编程只读存储器),最初通过电击烧断二极管阵列来存储数据,“烧录 PROM”这一术语即来源于此。关于谁是第一台微型计算机,社区有不同看法。部分人倾向于 1965 年的 Olivetti Programma 101 等民用机器,但依据包含 I/O 单元和指令内存的小型计算机这一宽泛定义,Arma Micro Computer 展示了航天领域在微型化方面的先驱地位。

Debian 引入可复现构建标准

新的软件包迁移规则

Debian 发布团队在 forky 版本开发周期中规定,软件包必须实现 Reproducible Builds(可复现构建,从相同源码构建出字节级别完全一致的二进制文件)才能进入测试分支。无法复现或复现性倒退的软件包将被自动拦截。同时,团队开始为仅更改架构而不改动源码的编译操作运行自动化测试,由于新增了对 loong64(龙芯)架构的支持,软件包迁移速度近期会有所放缓。

减少依赖与审计需求

实现字节级别的一致性,可以消除二进制文件中意外包含的编译时间戳、登录名等隐私信息。在工业应用中,可复现性是生成可靠 SBOM(软件物料清单)的基础,有助于满足安全审计要求。这项标准的核心价值在于减少对单一构建机构的依赖。当多个独立方能产出相同的二进制文件时,构建服务器被劫持的风险将大幅降低。

供应链安全的双刃剑

部分开发者指出,可复现构建无法防御源代码层级的攻击。如果源码本身带有类似 xz-utils 后门的恶意代码,构建出的文件依然是一致且有害的。也有声音担心新政策会提高贡献门槛,增加非专家维护软件包的难度。目前 Debian 在 amd64 架构下已有超过 97% 的软件包实现了可复现。

美国童军面临的深层组织危机

官僚化取代领导力培养

美国童军(现名 Scouting America)的青少年参与比例已降至 1.25%,创下世纪新低。组织内部将资源用于维护体制运作,忽视了项目质量。传统的核心制度 Patrol Method(由青少年组成的独立、自主管理团队)逐渐演变为模拟企业官僚机构的体制。青少年在各种职衔、层级汇报和委员会程序中消耗精力,高级领袖培训也更侧重于培养行政人员。

失去自主权的青少年

目前的体系将 10 岁的五年级学生与 18 岁的高中生归入同一发展阶段。高中生被迫在专为初中生设计的环境中承担管理职责,导致大批青少年在进入高中前流失。YPT(青年保护培训)要求成年人必须全程在场监管,这种安全规定实质上剥夺了青少年独立解决问题的机会,使“青少年主导”的承诺难以落实。

信任危机与资源困境

除了组织架构的僵化,因性虐待破产诉讼带来的信任危机严重损害了家长信心。摩门教在 2019 年底退出合作,带走了约五分之一的成员。2024 年的审计显示,该组织背负超过 3 亿美元的债务。在外部压力下,组织快速调整了相关政策,但在解决核心项目设计和青少年自主权问题上,依然缺乏实质性动作。

播客全文

女:Hello 大家好,欢迎收听 Agili 的 Hacker Podcast,我是莓莓。

男:大家好,我是阿哲。

女:今天我们聊聊技术和制造里那些需要人动手去碰触的细节。最近 Google 升级了 Gemini API 的文件搜索工具,增加了一个叫多模态处理的能力。做开发的朋友以后在构建 RAG (检索增强生成,一种通过外部数据增强大模型回答准确性的技术) 系统时,可以直接把图片和文本丢给模型去建索引。

男:这次更新主要靠 Gemini Embedding 2 模型。以前搜图片得靠文件名或者人工打的文本标签,现在模型能直接理解图像内容。创意公司找素材,直接输入某种情绪或者视觉风格就能搜出来。

女:这就像是给资料库配了一个看过所有文件的图书管理员。开发者还能用自定义元数据功能,给这些非结构化数据打上“部门:法务”这种键值对标签,查询的时候能过滤掉无关干扰,速度快很多。

男:系统在从长篇 PDF 里提取答案时,也会直接标出出处的页码。大模型一直有产生幻觉的问题,这种颗粒度的透明度方便大家做事实核查。

女:社区里也有开发者反馈,目前 AI Studio 的原生搜索只能搜对话标题,页面滚动还会让浏览器的 Ctrl+F 搜索失效。大家都在用最新的 AI 工具偷懒,但 EvilGeniusLabs 最近在写的一本 Visual Basic (VB) 历史书,反而把目光投向了三十年前那些从零开始搭建基础工具的开发者。

男:他们梳理了从 1964 年达特茅斯 BASIC 诞生到 1992 年的历程。微软当年通过 Altair 到 QBasic 建立了一个基于 BASIC 语言的生态。1991 年 VB 1.0 发布,定价 199 美元,把 Alan Cooper 设计的拖拽式界面设计器和一个可嵌入的 BASIC 解释器整合在了一起。

女:这是普通开发者第一次感觉到计算机站在了自己这一边。以前写界面要敲一行行代码,现在直接拖拽组件。很多在工厂做维护的工程师反馈,几十年前的 VB6 至今还在工业界到处跑,构建原生图形用户界面 (GUI) 的效率极高。大家甚至希望微软能把 VB6 开源。

男:这种对底层掌控感的追求一直都在。开发者 imtomt 最近发了一个叫 ymawky 的 Web 服务器,完全用 ARM64 汇编语言手工敲出来的,跑在苹果的 M 系列芯片上。它连标准的 C 库都不用,全部通过系统调用 (syscall) 跟操作系统底层沟通。

女:在大家都在用高级语言和 AI 辅助写代码的今天,这种做法确实像一种奇特的冥想。在那么多汇编语言的限制下工作,逼着人去死磕计算机运行的每一个微小细节。代码量是高级语言的几十倍,但那种直接控制硬件的踏实感,给人一种很强的心理慰藉。

男:技术上看也很有意思。ymawky 暴露了 MacOS 和 Linux 在系统调用底层的差异。发生系统调用错误时,MacOS 会设置进位标志,而 Linux 是返回负值。MacOS 用 x16 寄存器传递编号,指令是 svc #0x80,Linux 则是用 x8 寄存器和 svc #0。

女:它用的是为每个连接分叉进程 (fork-per-connection) 的工作模式。阿哲,这跟咱们现在常用的服务器架构比,性能怎么样?

男:汇编执行效率极高,但瓶颈卡在了操作系统层面。每来一个请求就创建一个新进程,这种开销远大于 Nginx 用的事件驱动模型或者 Apache 的线程池。主要的耗时都花在进程分叉上了。

女:控制感不仅在软件里,物理世界的控制感更直接。修过路由器或者嵌入式设备的人都知道,常用的杜邦线非常脆弱,频繁弯折就断。有人建议把电动自行车上常用的 Julet 连接器当成串口调试的新标准。

男:这种连接器外壳很硬,防水等级达到 IP68,还带机械防呆缺口,怎么插都不会反。开发者 Christian Kohlschütter 选了 M6 型号,在机壳内部用扎带做了应力释放,防止线缆受力拉扯弄坏焊点。为了解决 RX 和 TX 信号交叉的问题,他把地线固定在单独的插头上,方便随时调换收发顺序。

女:以前 FTDI 推广过 3.5mm 耳机孔做标准,线材好买。但耳机插头热插拔时,金属触点滑动会产生电磁噪声,有时候直接干扰系统启动,调试信息就漏掉了。Julet 确实结实,但要是没有抓握的受力点,那个紧凑的防水外壳靠手拔会非常吃力。

男:专业做硬件的人更关心电压。主板电平有 1.8V、3.3V 也有 5V,理想的连接器应该有一个 V_IO 基准电压引脚,让调试器自动调整信号强度。便宜的适配器省了这个脚,很容易把主板烧了。

女:说到物理质感,卡西欧最近出了一款 S100X 日本漆艺版计算器。他们找了有 95 年历史的越前漆器工坊,在铝合金机身上用一种叫溜涂的技法,刷了多层天然生漆。这台计算器全球限量 650 台,标价 600 美元,现在二手市场已经炒到了 1000 美元。

男:这台机器在日本山形工厂组装,电路板也是自家做的。屏幕用了双面增透膜 (AR coating) 的 FSTN 液晶屏,键盘是台式机上那种剪刀脚结构,还支持三键无冲。按键字符用了双色注塑工艺,字直接模压在材料里,用多久都不会掉色。

女:有人觉得它就是计算器界的冠蓝狮手表。现在满眼都是廉价量产的工业品,这种对材料和制造细节的执着,正好打中了大家对平庸产品的审美疲劳。虽然没有工程师喜欢的逆波兰表示法 (RPN),但这东西买来本来也不是为了算微积分的。

男:对手工艺的执着有时候会用在奇怪的地方。上世纪三十年代,纽约有个叫 Emerich Juettner 的老头,靠捡破烂维生。他用年轻时学过的金属刻蚀技术,在厨房里造一美元的假钞。

女:特勤局给他编的号是 880 案。他技术其实很差,纸和油墨都不对,字是模糊的,甚至还有拼写错误。但他有个原则,绝不贪心,每次只在不同的店里花掉一张假钞。当时一美元差不多相当于现在的 19 美元。

男:就因为他这种不贪婪的策略,特勤局硬是抓了他十年。他明白很少有人会去仔细检查一张破旧的一美元。直到 1948 年他住的公寓着火,消防员把杂物扔到楼下,几个小孩在雪地里捡到了两块锌刻版 (zinc plates) 和一些假钞,这才暴露。

女:法官看他太穷又没有贪念,只判了一年零一天,关了四个月就放出来了,罚款一美元。这段经历后来被好莱坞拍成电影《880 先生》。当时还没限制罪犯靠自己的故事赚钱,他拿到的电影版权费比他十年印的假钞多得多。

男:他其实就是自己动手,摸索着解决生存问题。这种先上手再说的做事方法,让我想起 1962 年 Arma 公司做的一台微型计算机。当时为了给太空任务做惯性导航,他们把机器做到了 20 磅重。

女:在当时看简直不可思议。后来大家公认的第一台微型计算机是七十年代的 Apple I 或者 Altair 8800。

男:Arma 这台机器为了缩小体积,用了分立元件,每次只处理一个位的数据。运算速度每秒只有 3.6 万次,但它能做乘除法和平方根。它的存储器叫跨通管 (Transfluxor),实现了非破坏性读取 (NDRO),数据读出来也不会消失,这在航天环境里极其重要。

女:工程师周文俊为了把计算机塞进导弹里,发明了可编程只读存储器 (PROM)。当时就是直接用电击烧断二极管阵列来存数据,“烧录”这个词就是这么来的,物理意义上的烧。

男:这种对确定性的追求,在现在的软件工程里也在重演。Debian 发布团队最近定了个规矩:软件包必须实现可复现构建才能进入测试分支。

女:可复现构建的意思是,从同一份源代码,要能编译出字节级别完全一致的二进制文件。如果有编译时间戳或者本地路径混进去,就不行。这能防止隐私泄露,也能对付构建服务器被劫持的风险。目前 Debian 在 amd64 架构下已经有 97% 的软件包做到了。

男:有人担心这防不住像 xz-utils 那种直接在源码里下毒的后门。源码本身带恶意代码,编译出来依然是一致且有害的。但它的核心价值在于减少对单一构建机器的依赖。几个独立的人拿同一份源码编译出一样的东西,信任度就高很多。

女:不管是手敲汇编、做漆器、印假钞还是烧录二极管,本质上都是一种行动主义 (Doism)。安全研究员 Thomas Dullien 说过一句话:“我们先看到事物奏效,然后才理解它。”这和学校里教的线性创新理论完全相反。

男:学校教的是思维主义 (Thinkism),告诉你必须先掌握理论才能实践。但单摆钟 1656 年就做出来了,牛顿几年后才开始思考力学定律。在工程领域,你遇到问题去翻文献不一定有用,往往是随便试了几个方案,发现某个跑通了,回头再去总结原理。

女:职场上也是这样。遇到问题自己做实验找答案的人,发展空间总是更大。世界极其复杂,纯靠逻辑思考代替不了实践体验。就像我们现在看 AI,无论它读了多少文档,真到了复杂多变的现实环境里,还得看它跑起来是什么样。

男:就像冯·诺伊曼说数学一样:“你不是理解了它,你只是习惯了它。”

女:修理钟表、写代码或者做木工,都是在建立直觉。我们今天就聊到这里,希望能给你带来一点动手去试的冲动。感谢收听这一期的 Hacker Podcast,记得使用泛用型播客客户端订阅我们,我们下期见。

男:下期见。

参考链接