第 2 页,共 2 页
22. 开发板
2015年7月26日 · 2:02:49
本集《内核恐慌》以主持人吴涛和Rio的亲身经历对比,解析了Arduino与Raspberry Pi两种代表性开发板的定位、性能差异和适用场景,并揭示了“创客运动”背后的硬件开源与生态之争。吴涛介绍Arduino作为傻瓜化微控制器,以20欧元成本将硬件编程门槛从焊电路和写汇编降到类C语言,只需setup和loop两个函数即可控制传感器与马达。Rio展示Raspberry Pi这块35美元、700MHz ARM处理器+512MB内存的微型电脑可运行完整Linux系统,但IO性能受限于USB转接网卡和SD卡。两人对比发现,Arduino更适合神经末梢式的简单控制,而Pi凭借强大性能和联网能力承担复杂逻辑,但批量部署和尺寸上不如Arduino灵活。他们还提到BeagleBoard、Banana Pi等竞品,并强调Arduino完全开源,而Pi因博通闭源GPU无法复制。最后自嘲既非maker也非hacker,呼吁听众中的开发板高手来信分享。
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年后的反思访谈。
19. 测试
2015年6月15日 · 2:33:32
本期节目中,吴涛和Rio首先讨论了HHKB键盘的使用体验与版本差异,Rio分享了从键盘布局到适应过程的感受。随后,两人读了两封听众来信:一封关于编程学习与恋爱关系的反思,另一封涉及文字编码历史,包括ASCII、Unicode、ISO/2022等标准,并吐槽了Windows的宽字节API。接着,他们简评WWDC,重点谈了Apple Watch的实用性与Swift 2开源的意义。最后进入本期主题“软件测试”,从瀑布模型与敏捷开发的对比切入,深入探讨了TDD(测试驱动开发)的三原则、BDD(行为驱动开发)与Cucumber工具、单元测试框架XUnit家族及Python的doctest,并讨论函数式编程对测试的友好性。两人对TDD持批判态度,认为其压抑创造力,但承认其在大型项目中的必要性。
18. 编码
2015年5月31日 · 58:43
本期《内核恐慌》由吴涛独自主持,围绕计算机编码的核心概念展开,从机器语言、汇编到高级语言的演进,再到ASCII、Unicode等字符编码标准,解释了二进制如何表示文字、图像和声音。节目还包含丰富的读者反馈:一位听众回忆删除DLL导致系统崩溃的经历;另一位从力学角度比较机械键盘和薄膜键盘的压力曲线,指出机械键盘长时间使用可能更费力;还有听众推荐Data Science领域的资源和播客《Talking Machines》。结尾吴涛以幽默方式讨论“程序员如何找女朋友”,强调理解人际沟通的“编码”比技术知识更重要。
17. Microsoft Build
2015年5月17日 · 1:58:40
本期《内核恐慌》两位主播吴涛和Rio首先念了听众来信,讨论技术话题征集、数据科学中数学的重要性以及I like rabbits用人力替代AI等反馈。随后进入新闻环节:Canonical将Snappy包管理器引入Ubuntu桌面版;NoTCP运动提倡使用UDP替代TCP以减少延迟;Google的Dart语言更名为Sky用于Android开发,但放弃原生浏览器支持。重点回顾Microsoft Build 2015大会:Azure云服务篇幅过长,Windows 10推出众多版本(包括IoT Core),Visual Studio Code跨平台编辑器集成调试功能广受好评,DirectX 12性能可达前代6-10倍,HoloLens增强现实头显完成度提升但视角变窄。最后讨论工具拟物化图标的文化隐喻。节目以IPN其他节目预告收尾。
16. And Now for Something Completely Different
2015年5月3日 · 1:39:43
本期《内核恐慌》邀请董福兴、梁海、刘庆、陈奕钧四位嘉宾,讨论W3C正在制定的《中文排版需求》草案。节目明确强调这份文档是需求而非标准,旨在为浏览器和电子书等数字环境提供中文排版的参考依据,影响CSS等标准实现。对比日文JIS X 4051标准及其数字版JLREQ,指出中文缺乏类似历史传承的排印规范。陈奕钧介绍了其汉字标准格式项目,并用巧妙的hack实现标点悬挂:利用空格在行首行尾塌陷的特性,结合web font替换空白字符,让标点自动悬挂。嘉宾还分析了中国企业在W3C标准化中参与不足的现状,以及简体繁体与竖排横排等文化差异带来的挑战。
15. 数据可视化与交互设计
2015年4月19日 · 1:50:49
微软Xbox用户体验设计师陈晓霁(消极姐)在《内核恐慌》中探讨数据可视化与交互设计,指出其本质是讲故事,既能赋予公众信息权力,也能通过颜色和比例误导观众——例如纳粹德国的宣传可视化。她以自身从建筑系转行的经历说明,设计与建筑类似,都需在限制中谈判,且建筑师话语权微弱。她展示了曾做的中国城市空气污染可视化(蜗牛图),并引用《How to Lie with Maps》等方式揭示地图操纵。关于编程,她批评系统化教育吓跑初学者,建议通过Stack Overflow驱动开发快速上手,并提到自己和盲人程序员用Screen Reader编码的经历。节目还离题讨论了僵尸片、星战Machete order观看顺序等,但核心始终围绕设计作为信息民主化工具及其伦理困境。
14. 类型系统
2015年4月4日 · 2:27:37
本期《内核恐慌》深入探讨编程语言中的类型系统,吴涛和Rio解释了它的核心作用:在计算机纯数字世界与人类思维之间建立映射,帮助程序员组织数据并避免错误。但他们也通过千年虫、2038问题和IEEE 754浮点数精度缺陷等具体案例,展示了类型系统引入的常见陷阱。节目区分了强类型与弱类型(如Haskell的严格 vs JavaScript的自动转换)、静态与动态类型(如C++的编译期剥离类型信息 vs Python的运行时类型推断),并讨论了用户自定义类型与系统原生类型的区别。他们还批评了JavaScript因弱类型导致的诡异行为,并比较了不同语言在类型转换上的设计哲学(如Perl使用点号拼接字符串以避免歧义)。最后,他们指出类型系统的选择深刻影响编程思维,并建议教育应从实用出发而非先灌输底层细节。
13. 并发与异步
2015年3月21日 · 1:59:24
本期节目深入探讨了并发(concurrency)与并行(parallelism)的区别,并发是处理多件事的能力,并行是同时执行多件事的能力。吴涛和Rio梳理了四种主流并发模型:传统的线程与锁、函数式编程(消除可变状态)、CSP(通信顺序进程,如Go语言的channel)和Actor模型(如Erlang的邮箱机制)。他们还分析了异步IO与协程,指出异步IO虽能避免锁问题但易陷入回调地狱,而协程则能保留线性逻辑流。节目最后推荐了《Seven Concurrency Models in Seven Weeks》等资源,并鼓励听众捐款支持节目。
12. 数学与编程
2015年3月7日 · 2:33:16
《内核恐慌》第12期邀请应用数学博士、Google工程师木遥讨论数学与编程的关系。木遥分享了自己从北大数学系到UCLA应用数学博士、再到Google软件工程师的转型经历,认为数学背景帮助他通过算法面试,但日常工作中更需要软性协调能力而非纯粹编程技巧。他感叹编程语言繁复的语法细节是学习的主要障碍,同时认可Go和Swift等现代语言在工具链和类型安全上的改进。他担心技术变革的加速可能导致行业兴衰,但认为数学思维提供了适应变化的基础。节目中他还谈及统计学的价值、猫的名字源于正交基、以及食物替代饮料Soylent的体验。
11. 从 Backbone 到 React
2015年2月22日 · 2:15:32
本期《内核恐慌》邀请Backplane前端工程师Willow分享将大型Backbone应用迁移到React的实战经验。Willow指出,Backbone在内存管理、视图复用和手动DOM操作上存在痛点,而React通过虚拟DOM和组件化设计显著提升了开发效率和性能。团队仅用三人、耗时六个月将60%的前端代码转为React,并计划逐步采用Flux架构改进数据流。节目后半段,主持人吴涛和Rio讨论了微软.NET CoreCLR在OS X上的开源编译进展,以及i3窗口管理器在Linux上的高效使用体验。
10. React.js 研讨会专题
2015年2月8日 · 1:55:56
本期节目邀请到参加React.js Conf 2015的柳成荫(Willow),与主持人Rio和吴涛深入探讨React.js及其生态系统。节目从React解决传统前端框架(如Backbone)的DOM操作和状态管理问题入手,详细解释了Virtual DOM、JSX语法、单向数据流Flux架构、Immutable Data等核心概念。柳成荫分享了其公司从Backbone迁移到React的实践经验,并介绍了React Native如何通过Virtual UI抽象实现跨平台原生组件渲染,以及Facebook对React的强力支持。此外,节目还前瞻性地讨论了GraphQL与Relay如何解决RESTful API的局限性,以及图数据库在数据查询中的潜力。整体上,节目认为React代表了前端开发的下一个阶段,值得开发者深入学习和采纳。
9. 程序员的理想工作环境
2015年1月25日 · 2:31:44
本期《内核恐慌》中,吴涛和Rio探讨了程序员的理想工作环境,从吴涛入职新公司的体验出发,对比了传统软件企业与互联网初创公司的工作条件。他们讨论了Python 3与Perl 6的社区分裂问题、微软HoloLens的增强现实前景及其可能的夸大宣传(如Terabytes of data),以及MSI机械键盘笔记本和12寸MacBook Air的键位设计争议。Rio分享了新公司采用Kerberos安全域、无root权限、需通过remote desktop操作等严格的企业级开发环境,并介绍了i3瓦片式窗口管理器的使用体验。吴涛则表达了在家SOHO的偏好,强调通勤距离和代码质量对工作满意度的影响。
8. 「集装箱化」与运维管理
2015年1月11日 · 2:29:36
本期《内核恐慌》主要探讨DevOps实践与容器化技术,Rio和吴涛认为软件部署应像实体集装箱一样标准化和隔离化。他们对比了Fabric、Capistrano等自动化工具与Puppet、Chef配置管理工具,重点介绍Python社区的Salt和Ansible。随后深入Docker,基于Linux cgroups实现轻量级容器,能毫秒级启动、减少资源损耗,并统一开发与运维环境。节目还提及CoreOS、Ubuntu Core等更激进的尝试,以及NixOS追求完全无状态系统的理念。
7. 软件包管理
2014年12月27日 · 2:28:47
本期《内核恐慌》深入探讨了软件包管理(package management)的方方面面。Rio和吴涛首先解释了包管理的概念,包括开发时依赖库和部署时分发软件的区别,并对比了Windows的DLL hell与Linux发行版(如Debian的DEB和Red Hat的RPM)的解决思路。随后讨论了macOS上的Homebrew如何凭借Ruby DSL和GitHub生态取代MacPorts,以及Windows的NuGet包管理器。语言层面的包管理工具是吐槽重点:Java的Maven因XML配置和依赖冲突被痛批,Python的setuptools、distutils、pip和Buildout四分五裂,而Node的npm和Ruby的Gem则因清晰的设计得到好评。最后介绍了Go语言去中心化的go get及其版本管理难题,并展望了跨语言统一包管理的可能性。
6. 从 Portal 看生命周期管理
2014年12月14日 · 2:22:22
本期《内核恐慌》从Portal游戏切入,探讨了生命周期管理、内存层级、虚拟内存和编程模型演进等计算机底层话题。吴涛和Rio通过Portal中的core dump引出磁芯存储器的历史,对比了手动内存管理与垃圾回收的优缺点,并讨论了非易失性内存(如忆阻器)可能彻底改变编程模型的前景。节目还提及Go语言1.4版本的精确垃圾回收和并发支持,以及Varnish缓存的内存映射技巧。整体展现了从硬件到软件的内存抽象如何简化开发者的工作,同时保留了极端场景下手动控制的必要性。
5. 编程字体
2014年11月30日 · 2:18:51
本期《内核恐慌》中,主持人Rio与吴涛全面探讨了编程字体的选择标准与推荐列表,重点讨论了等宽字体在代码可读性中的核心作用。他们指出优秀的编程字体必须清晰区分易混淆字符(如数字0与大写O、小写l与大写I),并介绍了无衬线与衬线、斜体支持等审美维度。吴涛力荐PragmataPro,以极窄字宽和低廉行高实现单屏显示更多代码;Rio则偏爱Input Mono的可定制性,允许用户调整字形细节。此外还回顾了Monaco、Menlo、Consolas等经典字体的历史与特点,并强调了字体设计的版权价值。节目最后鼓励听众通过尝试不同字体来打造个性化的编程环境。
4. 编辑器巡礼
2014年11月16日 · 2:44:47
本期《内核恐慌》中,Rio和吴涛作为Vim用户,围绕编辑器与IDE展开巡礼。他们首先剖析Vim与Emacs的圣战,指出Vim的核心优势在于模态编辑与操作语言(如D3W删除三个单词),使其在编辑效率上极高,但脚本语言Vim Script丑陋且扩展性弱;而Emacs本质是一个操作系统,以Elisp驱动,可扩展为浏览器或Spotify客户端,但快捷键对小指伤害大。随后,他们对比了Sublime Text(对初学者友好)、TextMate(因Ruby on Rails作者DHH的Screencast而走红)、Chocolat(Mac原生但收费且扩展不足)、Windows阵营的UltraEdit、EditPlus、Notepad++(免费且轻量可配置为基本IDE),以及基于WebKit的Atom(资源占用高且不稳定)。在IDE部分,他们认为Visual Studio的IntelliSense最聪明但版本繁多且收费;Eclipse虽免费却臃肿丑陋、响应粘滞,在Mac上尤其缓慢;IntelliJ则更快、配色更好,但付费版本才支持Java EE;Xcode稳定性差,曾半小时间崩溃一次,但Playground实时演算功能惊艳。最后,吴涛补充了微软于2014年11月12日开源.NET服务器端并推出免费Visual Studio Community Edition的消息。
3. 静态网站生成器
2014年11月3日 · 1:45:28
本期《内核恐慌》中,主持人Rio和吴涛深入探讨了静态网站生成器的概念、兴起原因及实际使用体验。他们指出,静态网站生成器通过预先生成HTML文件,避免了动态网站中数据库查询和服务器端渲染的负担,从而提升性能和安全性。Rio分享了自己从WordPress迁移到Jekyll的经历,感叹其依赖管理复杂但社区活跃;吴涛则因Apple Force(2500多篇文章)的生成耗时问题,先后尝试了Python自建工具和Go语言编写的Hugo,后者在单核上不到1秒完成构建,速度惊人。两人还讨论了部署自动化:吴涛利用GitHub Webhook和git post-merge钩子实现代码推送后自动生成站点,而Rio仍用传统rsync。针对评论功能,他们倾向于关闭或使用第三方平台如Discourse,认为提高评论门槛能有效减少垃圾信息。最后,吴涛展示了Go语言中独特的日期格式化方式——通过一个固定时间点(2006年1月2日15:04:05)作为模板,无需记忆占位符,体现了Go语言的设计哲学。
2. 键盘恐慌
2014年10月19日 · 2:06:24
嘉宾李如一与主持人Rio以程序员视角拆解机械键盘的选购逻辑。他们详细对比了Cherry MX轴的物理特性——黑轴(60克线性)、红轴(45克线性)、茶轴(有触感反馈)——并指出黑轴更适合高速打字。针对键位布局,两人以美式、德式、法式为例,说明美式布局是编程事实标准,而其他布局会导致符号输入困难,尤其批评了法国键盘默认输出符号而非数字的设计。李如一分享了自己在HHKB Pro2(电容键盘)和Das Keyboard红轴之间的切换体验,认为机械键盘并非玄学,而是能真实提升打字舒适度和效率。节目还介绍了人体工学键盘的两种思路:V形平面布局与垂直分体布局,并以Truly Ergonomic Keyboard和Matias单手键盘为例,同时解释了N-key rollover对游戏玩家的意义。最后李如一回溯了第一个软件Loopman的开发动机——解决英语听写中反复回放的痛点——并公开了GitHub源码。
1. 内核恐慌开播!
2014年10月12日 · 57:44
《内核恐慌》首期节目从Kernel Panic概念切入,详细对比了不同编程语言的异常处理哲学:C和Go采用错误返回值,强调每一步可控但代码冗长;Python和Java则依赖异常抛出,追求逻辑简洁却牺牲控制流可预测性。主持人批评Java的checked exception徒增复杂性,并延伸至系统软件设计,以systemd为例剖析“大一统”架构与Unix“做一件事并做好”理念的冲突,同时穿插了输入法、行车记录仪等实际开发中的折衷选择。
由 PodHood 提供支持