ORM教会我的事:去学SQL吧
作者基于30个月使用PostgreSQL和SQLite的经验,认为ORM弊大于利。文中详细列举了实体身份冲突、双重模式维护困难、属性膨胀导致的性能问题以及事务管理的复杂性。 作者主张直接学习SQL,将数据库视为带有API的数据类型,通过原生查询而非对象映射来操作数据,以获得更高的效率和可控性。
屠杀C指针:一本“史上最差”教科书的病理学分析
作者深度剖析了一本名为《Mastering C Pointers》的C语言教材,引用Brian Kernighan的评价称其为“史上最差C编程教科书”。文章指出该书术语混乱、代码充满缺陷,甚至无法编译。作者推测作者可能因缺乏对调用栈的理解,导致对指针概念的根本性误读。 文章还探讨了该书为何能出版并再版,认为其利用了早期C语言资料匮乏的市场空白。作者警告,许多程序员可能曾从这本书学到错误的编程习惯,进而影响了后续代码质量。
本周阅读推荐:从能源消耗到软件工程的愤怒
作者分享本周精选阅读,涵盖钢铁与新能源能耗对比、AI 抵抗运动、国际空间站泄漏及软件工程反思。 其中关于软件工程的愤怒观点引发强烈共鸣,适合对技术与人文交叉领域感兴趣的读者深入阅读。
深入解析 GCC Specs:高级用法与源码级细节
本文深入解析 GCC 驱动程序的 specs 机制,涵盖如何查找、覆盖和增强内置规格文件。作者通过源码分析揭示了常见的误区,例如直接放置 specs 文件无法完全覆盖内置配置,以及空格处理等细微陷阱。 文章还介绍了如何利用 self_spec 修改驱动参数,并简要提及 spec 函数的复杂语义,适合需要深度定制编译流程的高级开发者参考。
网站托管服务商变更:从 Fastmail 迁至 Gitlab
作者因 Fastmail 无法承受流量激增,将网站迁移至 Gitlab 托管。 作者坦言不喜欢 Gitlab,未来可能再次迁移,目前仅作为临时方案。
GCC 规范详解:揭开编译器驱动的底层逻辑
深入解析 GCC 编译器驱动程序的内部机制,重点介绍用于控制编译、汇编和链接参数的 Specs 配置语言。 文章通过实际命令输出,逐步拆解 Specs 语法及其在子程序参数传递中的具体应用,揭示工具背后的复杂逻辑。
评测几款新兴的命令行工具
作者评估了 ripgrep、exa、bat 等替代传统命令行的新工具。虽然承认部分工具不错,但因配色干扰脚本编写或缺乏明显性能优势,最终选择继续使用原有工具。 核心观点是反对默认彩色输出,认为这破坏了命令行工具的脚本兼容性和一致性,导致需要为交互和脚本使用不同工具。
懒惰是你的错:被构建的道德枷锁
作者引用文章探讨“懒惰”概念的历史起源,指出其曾被用作奴役和剥削的工具。 宗教与精英阶层将勤奋道德化,使懒惰成为社会污点,进而否定互助与依赖的价值。
用 GNU Make 实现 FizzBuzz
作者展示了一个完全使用 GNU Make 实现的 FizzBuzz 程序,代码源自 John Graham-Cumming 的《The GNU Make Book》。 该实现利用 Make 的特性进行逻辑运算,从 100 倒数输出结果。这类极客式的编程挑战在技术社区中通常能引发关于语言极限和工程趣味的讨论。
关于去中心化的思考:便利与自由的权衡
作者认为去中心化虽好但不可持续,以互联网为例说明集中化服务因便利性成为必然。 虽然拥有自建服务的自由很重要,但普通人没有时间和精力维护,因此接受集中化是现实选择。
一个讨厌购物的人的网购经历
作者因找不到尺寸合适且信息透明的本地家具,最终放弃购买新书桌,转而调整现有布局。 文中吐槽电商商品参数模糊、隐私担忧,以及AR试用的局限性,反映了典型的极客消费困境。
Org-mode 发布博客的痛苦经历
作者分享停止使用 org-mode 发布博客的经历。 虽然写作仍用 Org 文件,但发布流程改为 Makefile 和 XSLT。
彩虹光谱:评《战后》与《雪崩》
作者回顾了两本科幻小说《Afterwar》和《Snow Crash》的阅读体验。前者被描述为情节紧凑、带有黑暗幽默的内战复仇故事; 后者则是充满趣味的动作悬疑小说,世界观构建精彩。 作者认为《Snow Crash》中的黑客伦理略显简单,不建议模仿,但整体阅读过程非常愉快。这类书籍推荐性质较强,缺乏技术深度或行业洞察。
发现、体验与界面:为什么命令行并非总是最快
作者反驳了“命令行永远比GUI快”的极端观点,提出探索未知环境时集成界面更高效,而熟悉后命令行更快。 结合嵌入式调试和图片处理等实际场景,强调工具选择取决于对环境的熟悉程度而非单纯的界面形式。
爱恨交织的 Emacs Calc
作者吐槽 Emacs Calc 虽然实用但极难上手,主要因为手册晦涩且交互逻辑反直觉。 例如输入日期符号会触发意外滚动,手册未说明引号用法,需靠经验摸索。
一种让我反感的软件开发写作范式
作者反驳了“高技术债务会让开发者难以保持技能更新”的观点,认为这带有自私气息。 他指出旧系统虽烦人但稳定,新系统文档差且未成熟,维护产品才是开发者核心职责。
#TechnicolorRainbow:读《Cult of the Dead Cow》
作者分享了对Joseph Menn所著《Cult of the Dead Cow》一书的阅读体验。该书讲述了黑客组织cDc的历史与成员故事。 作者认为书中轶事有趣但叙事结构松散,像短篇合集拼接。虽然阅读轻松,但对“拯救世界”的主题感到困惑。