
Sign up to save your podcasts
Or


欢迎来到 Agili 的 Hacker Podcast。今日我们的视野跨越了半个世纪的技术变迁:从上世纪 80 年代 Intel 386 芯片精妙的微指令设计,到现代家庭中利用老旧电话线改造千兆网的极客实践,再到微软 BitLocker 密钥托管引发的隐私风暴。
Comma Four 硬件配合其开源软件 openpilot,本质上是为你的旧车进行一次“大脑升级”,让普通的丰田或现代也能拥有类似甚至超越特斯拉的辅助驾驶能力。它提供了一个不依赖于汽车制造商订阅服务的、开源且高度可定制的方案。目前系统已支持超过 325 种车型,只需接入现有接口即可实现自动变道、车道保持和自适应巡航。
与许多原厂系统强迫驾驶员每隔几秒摇晃方向盘不同,openpilot 利用红外摄像头进行驾驶员监控(Driver Monitoring)。只要你的眼睛盯着路面,系统就允许你长时间双手离开方向盘。社区用户指出,它在遇到车道线模糊或复杂路况时,能通过视觉模型进行“车道推断”,鲁棒性甚至优于某些昂贵的商业方案。
尽管技术亮眼,社区讨论仍展现了冷静视角。由于这属于 SAE Level 2 辅助驾驶,驾驶员依然是第一责任人。同时,有技术派网友指出,未来的新车型(如 2025 年后的部分丰田)正在引入加密 CAN 总线,这种通过加密封锁外部硬件接入的行为,可能是该项目未来面临的最大挑战。
Chromium 项目维护着一份详细的“禁用 C++ 特性清单”。每当 C++20 或 C++23 等新标准发布时,新特性会先进入为期两年的“待定区” (TBD),只有确认不会对工具链或编译速度产生负面影响后才会被允许。在数千万行代码的工程中,一致性远比语法时髦更重要。
清单显示 Chromium 禁用了 std::shared_ptr 和 等标准库,转而使用自有的 base 库。这不仅是历史包袱,更是性能优化的结果。例如,标准库的哈希表规范过于死板,限制了更高效算法的实现。此外,项目由于历史原因全面禁用了异常处理(Exceptions),以避免大规模内存泄漏。
技术爱好者认为,这种“做减法”的清单实际上是大型组织的认知减负手段。它降低了新贡献者的门槛,避开了诸如 性能平平且不支持 UTF-8 的“深坑”。这份清单证明:工具没有绝对好坏,只有是否适合当前的工程上下文。
在 C 语言最容易出 bug 的字符串领域,现代习惯是弃用以 \0 结尾的传统方式。作者建议采用包含“数据指针”和“长度”的 String 结构体。D 语言创始人 Walter Bright 对此高度赞同,认为使用显式长度不仅能避免缓冲区溢出,还能在不复制内存的情况下轻松进行高效的“切片”操作。
“解析,而非验证”(Parse, don't validate)理念主张通过专门的解析函数将原始数据转换成受信任的特定类型。一旦数据进入了这种类型,API 就能在编译时保证其合法性。这种做法在 C 语言中可以通过“不透明指针”技术来强制实现封装,虽然增加了一点复杂度,但极大地提升了稳定性。
对于内存管理,一种推崇的做法是“预分配一切”——在程序启动时分配好所有需要的内存池。这不仅消除了运行时的内存碎片问题,还能让程序在极高负载下拥有确定的内存边界。如果一个项目需要复杂的对象生命周期管理,社区的建议是:直接转用 Rust 或 C#。
互联网档案馆(Internet Archive)在极低预算下守护着 175 PB 的人类记忆。为了省钱,他们不使用昂贵的商用冷气,而是利用旧金山的自然海雾进行散热,并在冬季将服务器余热回收用于办公室供暖。这种极致的能源效率让省下的电费变成了更多的硬盘。
档案馆的哲学是“买最便宜的组件”。在拥有 2.8 万块硬盘的系统中,损坏是必然的。与其买昂贵的企业级硬盘,他们选择通过地理冗余和数学纠删码来保障安全。这种“因贫穷而产生的高效”使其年预算仅为 3000 万美元,远低于同规模机构。
对于大规模冷存储,社区建议关注 LTO-9 磁带。虽然检索慢,但寿命长达 30 年且性价比极高。档案馆的故事证明:长期保存数据不仅是技术挑战,更是一个经济学课题,接受一定程度的“比特腐烂”并扩大收集范围是现实的策略。
利用现有的家庭电话线,通过 G.hn 标准设备,可以在不重新布线的情况下实现接近 1Gbps 的连接。博主发现,虽然电力猫在电线上表现不佳,但同样的调制技术在相对干净的电话线“双绞线”上效果惊人,实测延迟极低,非常适合电竞。
社区资深人士指出,很多 2000 年后建造的房屋,电工为了省事往往直接用 Cat5e 网线充当电话线。这意味着你可能只需更换一个 RJ45 面板,就能立刻拥有原生的千兆接口。如果连电话线都没有,同轴电缆配合 MoCA 适配器则是更强大的 2.5Gbps 备选方案。
微软确认会在收到合法指令时向执法机构提供 BitLocker 恢复密钥。Windows 11 默认会将密钥自动上传至云端,初衷是防止用户忘记密码导致数据丢失。然而,这种“托管加密”意味着微软在技术上有能力解锁你的数据,这让隐私倡导者感到不安。
社区讨论指出,微软并非随意交出数据,而是在搜查令等法律文书面前无法拒绝。争议点在于:微软本可以设计成“零知识证明”架构,让自己也无法获取密钥。赞成者认为这保护了 99% 的普通用户免于丢数据,反对者则认为这是对隐私权的变相剥夺。
对于隐私敏感的用户,建议登录微软官网检查并删除云端密钥,随后在本地手动禁用并重新开启 BitLocker,将新密钥保存在物理 U 盘或纸质介质上。进阶极客则推荐使用 TPM 高级配置或 Linux 下的 LUKS 方案。
彭博社开源了 Crane 项目,旨在将经过 Rocq 数学验证的逻辑直接转化为高性能 C++。在金融关键领域,逻辑的百分之百正确至关重要。Crane 充当翻译官,在“提取”过程中丢弃复杂的证明过程,只保留经过验证的计算核心。
为什么选 C++?因为彭博社有数千万行遗留代码, Crane 允许开发者只对最关键的组件进行形式化验证,然后无缝嵌入现有系统。尽管自动生成的代码在性能上仍有优化空间,但这种“务实的信任”极大降低了逻辑错误的风险。
社区讨论了 AI 在代码验证中的角色。虽然 AI 能生成看起来正确的代码,但无法提供严谨的数学证明。在涉及金融基础设施安全性时,这种能将“可证明逻辑”转化为“可执行代码”的硬核工具具有不可替代的地位。
软件开发本质上是研究过程,“未知工作”通常占据 90% 的时间。由于无法估算还没发现的坑,任何精确的时间预测往往只是“礼貌性的虚构”。然而,估算往往是管理层用来谈判预算或决定项目生死的筹码。
有效的策略是“反向估算”:不要问做完要多久,而要问“在固定时间内能做出哪个版本”。通过以时间定范围,开发者能专注于寻找可行路径,而不是沉迷于构建完美架构。
社区推荐使用 T-shirt Sizing(S/M/L)来承认不精确性,或通过“三点估算”(最乐观、最可能、最悲剧)来给出概率区间。归根结底,估算不是为了预测未来,而是为了管理业务预期并控制需求蔓延。
沃顿商学院研究发现,即便是迟到的生日祝贺这种微小的“轻视”,也会导致员工缺勤率上升 50%。员工不会直接抗议,而是会通过增加休息时间来寻求心理补偿。这反映了职场中将人视为“资源单位”的去人性化趋势。
职场互动类似条件反射,但反馈回路往往很长。管理者的一次轻视导致的效率下降可能发生在数周后,这使得管理者很难将产出下降归因于自己的行为。信任的摧毁往往就在一瞬间,比如在员工家庭紧急情况下的冷漠处理。
一些技术人认为,廉价的关怀往往带有表演性质。真正的尊重来自于具有挑战性的任务、顶尖的薪酬,以及关键时刻的同理心。当管理者剥夺了员工的尊严感,员工通过“摸鱼”重新平衡交易,其实是一种理性的心理博弈。
1985 年发布的 Intel 386 为了节省芯片面积,没有配备专用的乘法电路。它通过微指令实现迭代算法,并加入“提前退出”优化:如果乘数高位全为 0,则立即停止。这让乘法在最好情况下只需 9 个周期。
相比之下,除法使用固定周期的“非恢复余数算法”,无法走捷径。早期的 386 芯片在 32 位乘法上存在硬件漏洞,迫使当时的操作系统如 Windows 386 必须专门检测并避开这些缺陷指令。
这种深入剖析不仅是考古,也为现代硬件开发者提供了参考。尽管现代处理器只需 3 个周期就能完成乘法,但 386 这种用精简微代码控制通用硬件完成复杂任务的设计,依然是计算机体系结构中最为优雅的篇章。
相关链接:
By Agili 的 Hacker Podcast欢迎来到 Agili 的 Hacker Podcast。今日我们的视野跨越了半个世纪的技术变迁:从上世纪 80 年代 Intel 386 芯片精妙的微指令设计,到现代家庭中利用老旧电话线改造千兆网的极客实践,再到微软 BitLocker 密钥托管引发的隐私风暴。
Comma Four 硬件配合其开源软件 openpilot,本质上是为你的旧车进行一次“大脑升级”,让普通的丰田或现代也能拥有类似甚至超越特斯拉的辅助驾驶能力。它提供了一个不依赖于汽车制造商订阅服务的、开源且高度可定制的方案。目前系统已支持超过 325 种车型,只需接入现有接口即可实现自动变道、车道保持和自适应巡航。
与许多原厂系统强迫驾驶员每隔几秒摇晃方向盘不同,openpilot 利用红外摄像头进行驾驶员监控(Driver Monitoring)。只要你的眼睛盯着路面,系统就允许你长时间双手离开方向盘。社区用户指出,它在遇到车道线模糊或复杂路况时,能通过视觉模型进行“车道推断”,鲁棒性甚至优于某些昂贵的商业方案。
尽管技术亮眼,社区讨论仍展现了冷静视角。由于这属于 SAE Level 2 辅助驾驶,驾驶员依然是第一责任人。同时,有技术派网友指出,未来的新车型(如 2025 年后的部分丰田)正在引入加密 CAN 总线,这种通过加密封锁外部硬件接入的行为,可能是该项目未来面临的最大挑战。
Chromium 项目维护着一份详细的“禁用 C++ 特性清单”。每当 C++20 或 C++23 等新标准发布时,新特性会先进入为期两年的“待定区” (TBD),只有确认不会对工具链或编译速度产生负面影响后才会被允许。在数千万行代码的工程中,一致性远比语法时髦更重要。
清单显示 Chromium 禁用了 std::shared_ptr 和 等标准库,转而使用自有的 base 库。这不仅是历史包袱,更是性能优化的结果。例如,标准库的哈希表规范过于死板,限制了更高效算法的实现。此外,项目由于历史原因全面禁用了异常处理(Exceptions),以避免大规模内存泄漏。
技术爱好者认为,这种“做减法”的清单实际上是大型组织的认知减负手段。它降低了新贡献者的门槛,避开了诸如 性能平平且不支持 UTF-8 的“深坑”。这份清单证明:工具没有绝对好坏,只有是否适合当前的工程上下文。
在 C 语言最容易出 bug 的字符串领域,现代习惯是弃用以 \0 结尾的传统方式。作者建议采用包含“数据指针”和“长度”的 String 结构体。D 语言创始人 Walter Bright 对此高度赞同,认为使用显式长度不仅能避免缓冲区溢出,还能在不复制内存的情况下轻松进行高效的“切片”操作。
“解析,而非验证”(Parse, don't validate)理念主张通过专门的解析函数将原始数据转换成受信任的特定类型。一旦数据进入了这种类型,API 就能在编译时保证其合法性。这种做法在 C 语言中可以通过“不透明指针”技术来强制实现封装,虽然增加了一点复杂度,但极大地提升了稳定性。
对于内存管理,一种推崇的做法是“预分配一切”——在程序启动时分配好所有需要的内存池。这不仅消除了运行时的内存碎片问题,还能让程序在极高负载下拥有确定的内存边界。如果一个项目需要复杂的对象生命周期管理,社区的建议是:直接转用 Rust 或 C#。
互联网档案馆(Internet Archive)在极低预算下守护着 175 PB 的人类记忆。为了省钱,他们不使用昂贵的商用冷气,而是利用旧金山的自然海雾进行散热,并在冬季将服务器余热回收用于办公室供暖。这种极致的能源效率让省下的电费变成了更多的硬盘。
档案馆的哲学是“买最便宜的组件”。在拥有 2.8 万块硬盘的系统中,损坏是必然的。与其买昂贵的企业级硬盘,他们选择通过地理冗余和数学纠删码来保障安全。这种“因贫穷而产生的高效”使其年预算仅为 3000 万美元,远低于同规模机构。
对于大规模冷存储,社区建议关注 LTO-9 磁带。虽然检索慢,但寿命长达 30 年且性价比极高。档案馆的故事证明:长期保存数据不仅是技术挑战,更是一个经济学课题,接受一定程度的“比特腐烂”并扩大收集范围是现实的策略。
利用现有的家庭电话线,通过 G.hn 标准设备,可以在不重新布线的情况下实现接近 1Gbps 的连接。博主发现,虽然电力猫在电线上表现不佳,但同样的调制技术在相对干净的电话线“双绞线”上效果惊人,实测延迟极低,非常适合电竞。
社区资深人士指出,很多 2000 年后建造的房屋,电工为了省事往往直接用 Cat5e 网线充当电话线。这意味着你可能只需更换一个 RJ45 面板,就能立刻拥有原生的千兆接口。如果连电话线都没有,同轴电缆配合 MoCA 适配器则是更强大的 2.5Gbps 备选方案。
微软确认会在收到合法指令时向执法机构提供 BitLocker 恢复密钥。Windows 11 默认会将密钥自动上传至云端,初衷是防止用户忘记密码导致数据丢失。然而,这种“托管加密”意味着微软在技术上有能力解锁你的数据,这让隐私倡导者感到不安。
社区讨论指出,微软并非随意交出数据,而是在搜查令等法律文书面前无法拒绝。争议点在于:微软本可以设计成“零知识证明”架构,让自己也无法获取密钥。赞成者认为这保护了 99% 的普通用户免于丢数据,反对者则认为这是对隐私权的变相剥夺。
对于隐私敏感的用户,建议登录微软官网检查并删除云端密钥,随后在本地手动禁用并重新开启 BitLocker,将新密钥保存在物理 U 盘或纸质介质上。进阶极客则推荐使用 TPM 高级配置或 Linux 下的 LUKS 方案。
彭博社开源了 Crane 项目,旨在将经过 Rocq 数学验证的逻辑直接转化为高性能 C++。在金融关键领域,逻辑的百分之百正确至关重要。Crane 充当翻译官,在“提取”过程中丢弃复杂的证明过程,只保留经过验证的计算核心。
为什么选 C++?因为彭博社有数千万行遗留代码, Crane 允许开发者只对最关键的组件进行形式化验证,然后无缝嵌入现有系统。尽管自动生成的代码在性能上仍有优化空间,但这种“务实的信任”极大降低了逻辑错误的风险。
社区讨论了 AI 在代码验证中的角色。虽然 AI 能生成看起来正确的代码,但无法提供严谨的数学证明。在涉及金融基础设施安全性时,这种能将“可证明逻辑”转化为“可执行代码”的硬核工具具有不可替代的地位。
软件开发本质上是研究过程,“未知工作”通常占据 90% 的时间。由于无法估算还没发现的坑,任何精确的时间预测往往只是“礼貌性的虚构”。然而,估算往往是管理层用来谈判预算或决定项目生死的筹码。
有效的策略是“反向估算”:不要问做完要多久,而要问“在固定时间内能做出哪个版本”。通过以时间定范围,开发者能专注于寻找可行路径,而不是沉迷于构建完美架构。
社区推荐使用 T-shirt Sizing(S/M/L)来承认不精确性,或通过“三点估算”(最乐观、最可能、最悲剧)来给出概率区间。归根结底,估算不是为了预测未来,而是为了管理业务预期并控制需求蔓延。
沃顿商学院研究发现,即便是迟到的生日祝贺这种微小的“轻视”,也会导致员工缺勤率上升 50%。员工不会直接抗议,而是会通过增加休息时间来寻求心理补偿。这反映了职场中将人视为“资源单位”的去人性化趋势。
职场互动类似条件反射,但反馈回路往往很长。管理者的一次轻视导致的效率下降可能发生在数周后,这使得管理者很难将产出下降归因于自己的行为。信任的摧毁往往就在一瞬间,比如在员工家庭紧急情况下的冷漠处理。
一些技术人认为,廉价的关怀往往带有表演性质。真正的尊重来自于具有挑战性的任务、顶尖的薪酬,以及关键时刻的同理心。当管理者剥夺了员工的尊严感,员工通过“摸鱼”重新平衡交易,其实是一种理性的心理博弈。
1985 年发布的 Intel 386 为了节省芯片面积,没有配备专用的乘法电路。它通过微指令实现迭代算法,并加入“提前退出”优化:如果乘数高位全为 0,则立即停止。这让乘法在最好情况下只需 9 个周期。
相比之下,除法使用固定周期的“非恢复余数算法”,无法走捷径。早期的 386 芯片在 32 位乘法上存在硬件漏洞,迫使当时的操作系统如 Windows 386 必须专门检测并避开这些缺陷指令。
这种深入剖析不仅是考古,也为现代硬件开发者提供了参考。尽管现代处理器只需 3 个周期就能完成乘法,但 386 这种用精简微代码控制通用硬件完成复杂任务的设计,依然是计算机体系结构中最为优雅的篇章。
相关链接: