返回 内核恐慌在 内核恐慌 中提及的产品。
50. 「更年期程序员夜话又与您见面了!」
2018年2月7日 · 1:26:28
吴涛在停更期间换工作至海德堡一家不到50人的德国传统零售软件公司(类似金蝶),用Java和Eclipse平台开发20多种DSL重构旧系统。节目核心讨论Meltdown和Spectre两大CPU漏洞:投机执行和乱序执行的设计缺陷使得用户态程序能读取内核内存,影响所有高性能处理器(Intel、AMD、ARM),云厂商多租户环境风险最大,软件补丁可能带来5%-30%性能损失。此外回顾了WPA2的KRACK漏洞,以及iMac Pro(入门5000美元)的性能与性价比,吐槽当前Mac产品线缺少Mac mini更新、显卡等局限,最后推荐编程思维游戏Factorio——从采煤到发射火箭的自动化生产链极像软件架构规划。
49. Kerning Panic·字谈字串(六)Emoji(再次)拯救世界
2018年1月9日 · 1:32:11
本期《内核恐慌》与《字谈字串》串台节目深入探讨了Emoji背后的 Unicode 技术细节。主持人吴涛、Rio 与嘉宾 Eric 从 UTF-16 的历史遗留问题讲起,解释了代理对(surrogate pair)如何使 UCS-2 扩展为变长编码,以及 Emoji 因位于基本多文种平面之外而迫使旧系统完善支持。随后分析了彩色字体的多种实现——Apple 的 sbix(内嵌 PNG)、Google 的 CBDT/CBLC、Microsoft 的 COLR/CPAL 以及 Adobe/Firefox 的 SVG 方案。节目还介绍了文本与 Emoji 形态的切换机制:语言标签(Zsye/Zsym)、区域扩展(-em)和变体序列(VS15/VS16),并展示了组合序列(如键帽)、修饰序列(肤色)和旗帜序列(国家代码组合)如何通过多个码位合成一个可见 Emoji。最后讨论了字位簇(grapheme cluster)的定义与删除行为,并提及 Twitter 字符计数规则(Emoji 计为2字符、URL 固定长度)背后的权衡。
21. Debugging
2015年7月12日 · 2:21:38
本期《内核恐慌》聚焦程序调试,两位主持人从密码管理习惯(吴涛的三层密码策略与Rio的随机密码+不同邮箱)切入,随后讨论Hacking Team被黑暴露Flash零日漏洞、Atom 1.0发布、卡马克计划在VR中用Racket构建脚本环境等新闻。在调试主题中,他们介绍了debug一词源自Grace Hopper的飞蛾故事,对比了打印调试法(printf)、命令调试器(GDB/PDB)、图形化调试器(DDD)及IDE集成调试的优劣,并提及Valgrind等profiling工具。吴涛分享了在博彩公司遇到的iOS Chrome用户有极低概率看到他人账户的诡异bug(最终未能重现,只能屏蔽该浏览器),以及索尼PS游戏因手柄干扰晶振导致记忆卡损毁的经典案例。节目强调先确定边界条件再编码的良好习惯比调试技巧更重要。
20. 设计模式
2015年6月27日 · 2:11:50
本期《内核恐慌》中,主持人吴涛和Rio首先解释了节目下载串台故障的成因:国内运营商(如长城宽带)的透明缓存系统仅以域名和文件名作为缓存标识,忽略路径,导致不同节目的同名文件被混用。随后吴涛透露,受Apple Watch SDK限制,其用莫尔斯码发送信息的手表应用设想难以实现,因为无法检测按键长短。节目还念读了三封长篇读者来信:第一封讨论TDD与重构的价值,第二封由形式化验证(Formal Verification)专业博士生撰写,对比了测试与形式化验证的优劣,并介绍了sel4和CompCert等项目;第三封来自一位TDD践行者,强调重构在TDD中的关键作用。主题部分,两人回顾了设计模式的起源(源自建筑学《建筑的永恒之道》),阐述了其核心原则“面向接口编程”和“组合优于继承”,并指出许多模式是语言局限的补偿(如C#的delegate/event代替Observer模式)。最后讨论了反模式(God Object、Golden Hammer、Silver Bullet),并引用了GoF作者15年后的反思访谈。
14. 类型系统
2015年4月4日 · 2:27:37
本期《内核恐慌》深入探讨编程语言中的类型系统,吴涛和Rio解释了它的核心作用:在计算机纯数字世界与人类思维之间建立映射,帮助程序员组织数据并避免错误。但他们也通过千年虫、2038问题和IEEE 754浮点数精度缺陷等具体案例,展示了类型系统引入的常见陷阱。节目区分了强类型与弱类型(如Haskell的严格 vs JavaScript的自动转换)、静态与动态类型(如C++的编译期剥离类型信息 vs Python的运行时类型推断),并讨论了用户自定义类型与系统原生类型的区别。他们还批评了JavaScript因弱类型导致的诡异行为,并比较了不同语言在类型转换上的设计哲学(如Perl使用点号拼接字符串以避免歧义)。最后,他们指出类型系统的选择深刻影响编程思维,并建议教育应从实用出发而非先灌输底层细节。
6. 从 Portal 看生命周期管理
2014年12月14日 · 2:22:22
本期《内核恐慌》从Portal游戏切入,探讨了生命周期管理、内存层级、虚拟内存和编程模型演进等计算机底层话题。吴涛和Rio通过Portal中的core dump引出磁芯存储器的历史,对比了手动内存管理与垃圾回收的优缺点,并讨论了非易失性内存(如忆阻器)可能彻底改变编程模型的前景。节目还提及Go语言1.4版本的精确垃圾回收和并发支持,以及Varnish缓存的内存映射技巧。整体展现了从硬件到软件的内存抽象如何简化开发者的工作,同时保留了极端场景下手动控制的必要性。
1. 内核恐慌开播!
2014年10月12日 · 57:44
《内核恐慌》首期节目从Kernel Panic概念切入,详细对比了不同编程语言的异常处理哲学:C和Go采用错误返回值,强调每一步可控但代码冗长;Python和Java则依赖异常抛出,追求逻辑简洁却牺牲控制流可预测性。主持人批评Java的checked exception徒增复杂性,并延伸至系统软件设计,以systemd为例剖析“大一统”架构与Unix“做一件事并做好”理念的冲突,同时穿插了输入法、行车记录仪等实际开发中的折衷选择。