billpg industries™

RSS: https://owl.billpg.com/feed/
Bill P. Godfrey 的软件工程与其他魔法。

8086分段内存架构其实是个好主意

作者通过设计虚构计算机Hearthfire的经历,重新审视了8086的分段内存架构。虽然该架构因复杂的指针操作饱受诟病,但其初衷是为了在保持16位寄存器兼容性的同时扩展寻址空间,并实现向后兼容早期的8080代码。核心问题在于开发者并未将其视为真正的“段”,而是利用偏移量构建了扁平的地址空间,导致架构无法优雅扩展。文章指出,若当时能强制使用透明选择子并增加硬件元数据管理,x86架构可能发展出更清晰的演进路径。这是一篇结合历史背景与工程反思的技术深度文章。
评论点赞收藏55 天前

对Eric“所有文件都是数字”一文的评论

作者认为将文件视为数字只是众多解读方式之一。他提出可以通过在编号方案中纳入前导零来区分不同长度的二进制串,从而说明同一组比特可以被解释为不同的数字。最后,作者分享了自己关于这一主题的文章链接,并强调这些比特既可以是数字,也可以是文件,取决于观察者赋予它们的意义。
评论点赞收藏66 天前

我们会用完Unicode吗?

文章回顾了Unicode从16位扩展到多平面的历史,指出虽然目前还有大量未分配空间,但未来可能面临耗尽风险。作者提出了一种名为UTF-16X的扩展方案,利用未使用的平面C和D构建31位编码空间,并讨论了其数学优雅性和实现逻辑。核心观点是编码不仅是技术问题,更是面向未来的承诺。
评论点赞收藏77 天前

糟糕,我发明了一个劣化版的 SVG

作者试图用 Emoji 组合(如条纹颜色代码)来构建简单的旗帜图形,以避开 Unicode 的政治敏感问题。随着需求增加,他不得不加入垂直条纹、柔和色修饰符、十字交叉、星区覆盖等规则。最终他发现,自己无意中发明了一个极其复杂、缺乏工具支持的微型图形语言——本质上就是劣化的 SVG。文章以幽默自嘲的方式,探讨了从简单想法演变为复杂规范的工程陷阱,以及符号编码与图形渲染之间的界限。
评论点赞收藏79 天前

来自友好地球人的笔记:“静止”

作者以幽默且略带讽刺的口吻回应地平说支持者。承认自己作为“球形地球论者”(Glober)的身份,表示理解质疑精神,但明确指出对方是错误的。文章旨在通过温和但坚定的方式与不同观点者对话,强调理性讨论的重要性,而非单纯攻击或嘲讽。
评论点赞收藏95 天前

炉火重燃(一):点燃火焰

作者分享了一个长期萦绕脑海的项目灵感,将其描述为深夜的思维实验。文章主要作为系列开篇,引出后续关于该项目的具体构建或记录内容,属于个人创作随笔。
评论点赞收藏99 天前

让我们来测量重力

作者回忆高中时用网球和秒表测量重力加速度g的实验。文章详细讲解了如何通过测量下落高度和时间,利用公式 g=2h/t^2 计算重力加速度。重点讨论了实验中的误差来源,如人类反应时间、声音传播延迟和空气阻力,并建议通过多次测量取中位数来提高准确性。最后鼓励读者动手尝试,体验DIY科学测量的乐趣,同时幽默地指出如果结果与公认值偏差过大,可能是设备问题而非发现了新物理定律。
评论点赞收藏116 天前

评IPv4演进之路:一种可能的扩展实现方案

作者重读关于IPv4演进的讨论后,深入RFC 791规范,发现IPv4协议本身具有扩展性。他提出利用地址头部的选项字段(Options),通过设置源和目的地的特定选项字节来承载额外寻址信息,从而在不破坏现有协议框架的前提下实现IPv4的地址空间扩展。这一技术推演不仅展示了底层协议的灵活性,也为科幻创作提供了灵感。
评论点赞收藏116 天前

如果《2001太空漫游》是一部电视剧?

这是一篇创意写作练习,作者假设库布里克的经典电影《2001太空漫游》如果被改编成电视剧,第一集会是什么样子。文章以剧本大纲的形式,描述了从月球石碑被发掘开始的开场镜头,旨在探讨长片叙事在电视媒介中的扩展可能性。内容属于粉丝向的趣味想象,缺乏深度的技术分析或行业洞察。
评论点赞收藏119 天前

文件不仅仅是数字

文章反驳了“文件只是数字”这一常见修辞。指出文件是有限对象,而数字是无限的,两者本质不同。虽然可以通过约定将文件映射为数字,但这忽略了文件长度等关键信息。这种映射在密码学活动中被利用,但并非自然真理。
评论点赞收藏141 天前

一个非常困惑的花盆的简短历史

作者回忆多年前看到当地新闻关于园艺中心塑料花盆回收计划的温馨报道,但标题暗示该计划背后存在混乱或荒诞的历史。文章可能探讨环保倡议在实际执行中的讽刺性结果或用户行为的意外偏差。
评论点赞收藏151 天前

对《未选择的路:IPv4演化的世界》的评论:NAT是IPv6普及的障碍

评论者认为IPv6推广缓慢并非技术缺陷,而是政治和利益博弈的结果。他提出,NAT(网络地址转换)在IPv4中充当了免费的安全屏障,保护内部设备不被直接暴露在互联网上。相比之下,IPv6赋予每个设备公网IP,迫使管理员为每台设备配置昂贵的防火墙,增加了管理负担和安全风险。因此,尽管IPv6已存在35年,但因缺乏动力且IETF坚持推进,导致其难以普及。评论者建议通过更新路由器固件来改善现状,并批评IETF不愿承认IPv4演进路径的错误。
评论点赞收藏155 天前

评论:假如IPv4演进了——一个未选择的路

这是一条针对IPv4演进历史假设文章的简短评论。作者同意原帖观点,庆幸自己身处IPv6时代而非IPv4的平行历史。他表达了对过渡期摩擦的不满,指出虽然希望网站仅使用IPv6,但目前仍依赖IPv4。最后,作者推广了自己的SixGate提案链接。
评论点赞收藏155 天前

评IPv4演进之路:当IPv6作为更优解战胜短期方案

评论者指出,虽然假设的IPv4x演进方案号称没有“Flag Day”(突变式升级日),但如果最后剩下的少数IPv4-only站点直接失效,这本质上就是一种被动的Flag Day。用户数据包前一天还能路由,后一天就无法到达,区别仅在于是否有官方宣布的升级截止日。此外,评论者认为IPv6是一个罕见的特例:在长期来看,更优的技术方案最终战胜了快速但粗糙的解决方案。
评论点赞收藏155 天前

未选之路:一个IPv4自然演进的平行世界

作者构建了一个平行宇宙,假设90年代设计IPv6的团队选择了扩展IPv4而非推倒重来,从而诞生了兼容旧网络的“IPv4x”。文章详细描述了这一虚构协议如何平滑解决地址枯竭、消除NAT痛点,并推动P2P和远程协作的发展。最终揭示这其实是作者推广其IPv4/IPv6过渡方案SixGate的创意铺垫。这种结合网络历史、技术推演与工程创意的叙事,对熟悉TCP/IP架构的工程师极具吸引力,能引发关于技术路径依赖和协议演进设计的深度讨论。
评论点赞收藏156 天前

偷机取巧的代价:我如何在大英图书馆找回三十年前的第一次发表

作者回忆1991年参加杂志编程比赛时,利用PKZIP自解压特性写了一个“投机取巧”的程序。虽然当时被编辑指出不够严谨,但这成了他第一次发表的作品。几十年后,他在Hacker News求助,有人特意去大英图书馆帮他找到了那期旧杂志。文章讲述了这段充满极客情怀的寻物经历,以及对当年“耍小聪明”行为的幽默反思。
评论点赞收藏163 天前

让我们把废纸都烧了吧!

作者提出一个反直觉的观点:在环保意识高涨的今天,回收废纸其实是最不负责任的做法。文章主张应该直接焚烧废纸,认为这是一种更创新且值得探讨的处理方式,挑战了大众对回收的固有认知。
评论点赞收藏166 天前

Sixgate:一种让IPv4用户也能访问纯IPv6服务器的轻量级桥接方案

文章提出了一种名为Sixgate的新机制,旨在解决IPv6向IPv4过渡中的兼容性问题。核心逻辑是:当IPv4-only客户端访问IPv6-only服务器时,通过DNS SRV记录自动发现并连接到由服务器端运营的轻量级网关,该网关将IPv6流量隧道封装在IPv4中传输。作者认为这比让用户自行配置隧道更友好,能减轻ISP升级压力,加速IPv6 adoption。这是一个具体的协议设计草案,具有技术讨论价值。
评论点赞收藏269 天前

Python的真值陷阱:一种值得警惕的代码异味

作者认为Python中任意值在条件判断中的“真值性”(Truthiness)特性虽然方便,但容易导致隐蔽Bug。文章通过一个具体案例说明:当函数返回0时,if语句会将其误判为False,与返回None意图混淆。作者主张应使用显式的 is not None 检查以提高代码清晰度,并对比C#强制布尔类型的做法,认为这种设计能防止错误。最后建议通过未来版本选项或Linter工具来限制隐式真值的使用,提倡更明确的编程风格。
评论点赞收藏270 天前

致字符串转整数解析器的一封信:请支持科学计数法

作者提出一个看似荒谬但有趣的建议:希望标准库中的整数解析函数(如 ParseInt)能支持科学计数法(E 表示法),例如输入 "1E9" 直接返回 1000000000,以方便人类输入大整数。文章详细论证了这在十进制解析场景下的合理性,反驳了“E 可能是十六进制位”或“现有代码依赖拒绝行为”等潜在反对意见,认为这属于增强可用性而非破坏兼容性。这是一篇典型的 Hacker News 风格的技术随笔,观点鲜明且带有幽默感,容易引发关于 API 设计哲学和开发者体验的讨论。
评论点赞收藏373 天前

UUID 选型指南:为什么你应该只用 v7

作者强烈建议数据库主键使用 UUID v7,因其基于时间戳排序,能避免传统随机 UUID (v4) 导致的索引碎片化问题。文章详细讲解了如何利用 UUID v8 实现从旧版自增整数 ID 到 v7 UUID 的平滑迁移,无需额外映射表。同时指出 v3/v5 适用于确定性哈希场景,但强调不应将 UUID 用作安全令牌。核心观点是摒弃 v4,全面转向 v7 以获得更好的性能和维护性。
评论点赞收藏478 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。