文章与博客推荐

平时上班摸鱼和业余会看一些博客和技术文章,其中有一些我觉得不错的,记录在这里。

业界新闻/趣闻

  • Why Safety Profiles Failed
    • 2024 年 10 月
    • safe cpp 提案作者、Circle C++ 编译器作者写的文章
    • 他前段时间提出了 safe cpp 提案,在社区中引起了巨大争议
    • 这篇文章则是狠狠批评了 C++ 之父 BS 和现在的 C++ 委员会主席 Herb Sutter 主张的另一种叫作 safety profile 的方案
  • What’s new in Windows 11, version 24H2
    • 2024 年 10 月
    • Windows 内核中的 Rust 首次进入正式发布
    • 先前 Windows 自家也有宣传,也有人在内核组件中发现了 Rust 符号
    • 不过这还是第一次正式进入大众视野,略有些纪念意义吧
  • 维护者 Serge Semin 的告别信
    • 2024 年 10 月
    • Linux 移除俄罗斯维护者名单事件的其中一位被移除者写的告别信
    • 真情流露,颇有一种托孤之悲壮,令人难以平静
  • Eliminating Memory Safety Vulnerabilities at the Source
    • 2024 年 9 月
    • 安卓将关键组件(蓝牙、WiFi 等)从 C/C++ 迁移到内存安全语言(如 Rust)
    • 观察到的内存安全漏洞显著减少
  • The secret inside One Million Checkboxes
    • 2024 年 8 月
    • 有趣的互联网小故事
    • 作者在 2024 年 6 月发布了一个名为「百万复选框」的网站,它上面有一百万个全局复选框,选中(或取消选中)一个框会立即为网站上的每个人更改它
    • 在网站在线期间,它的受欢迎程度远超作者想象:两周内有五十万名玩家勾选了超过六亿五千万次复选框。
    • 在这期间发生了一些充斥着技术浪漫的故事
  • CSS finally adds vertical centering in 2024
    • 2024 年 8 月
    • 2024 年,css 终于添加了一个(直白的)垂直居中的方式
  • JavaScript Bloat in 2024
    • 2024 年 2 月
    • 作者用特定的方法查看了一些著名网站的 JavaScript 大小(我不太清楚 ta 的方法是否准确)
    • 然后发现这些号称使用现代前端技术的网站动辄十几乃至几十 MB
    • 有趣的是,真正关心性能的是 Pornhub,只有 1.4 MB
    • Reddit 上有人说这些大小其实主要来自于广告跟踪器、第三方营销工具、Datadog、Rollbar 等。用广告拦截器之类的东西可以显著降低
  • In Loving Memory of Square Checkbox
    • 2024 年 1 月
    • 有点意思的文章,讲单选框 (radio box) 和复选框 (check box) 的历史
    • 操作系统 UI 有一个长达 40 年的不成文的传统:单选框一定是圆形的,复选框一定是方形的,这样人们可以轻易辨别出到底是单选还是多选
    • 但是今年 (2024),苹果终于放弃了这个传统,它的新 visionOS 将有圆形复选框
  • Digg’s v4 launch: an optimism born of necessity.
    • 2018 年?
    • 一个用 python 的创业公司,因为函数参数给了默认值,而倒闭(可能略有夸张)
    • 参数写错然后导致程序一直 OOM,在业务最高峰的时候停摆,等修好之后已经寄了
    • python 函数的默认参数是定义时求值而非调用时求值,所以多次调用时,默认参数的实例是同一个,还挺反直觉的

精品文章

  • Parse, don’t validate
    • 提倡类型驱动设计的文章,非常值得一看
    • 尽管代码示例是用 haskell 写的,核心思想还是通用的
  • Semantic Versioning Will Not Save You
    • 作者认为:依赖于 SemVer 会伤害用户
    • 有一定道理。读一读可以更多思考项目、依赖、开源库之间的复杂关系
  • Windows NT vs. Unix: A design comparison
    • 如题,比较 Windows NT 和 Unix 系的设计不同
    • 看了这篇文章真有点感觉 Windows NT 比 unix 系好多了(毕竟它是后来者,有足够的经验可以吸收)
  • Why LSPLSP could have been better
    • 对 lsp 的一些思考。作者 matklad 是 rust-analyzer(rust 的语言服务器)的主要开发者,可能是世界上对 LSP 理解最深刻的人之一了
    • 提到 lsp 是如何做抽象的(很有意思,不是以共性为中心,而是以表现为中心),为什么可以成功
  • How to ask good questions
    • 开发者社区中很多人可能都听说过提问的智慧
    • 作者认为它是「很受欢迎且充满敌意的文档」,比如它开头就写「我们称这样的人为“失败者”」
    • 他提出了一些略微温和的准则。至于到底如何更好,见仁见智吧
  • Recursive (Re-entrant) Locks
    • 主要是对可重入锁的批判
  • Beyond Ctrl-C: The dark corners of Unix signal handling
    • 关于 unix 信号的一篇不错的科普文章,有一段是关于 async rust 的,其他的部分适合所有人
  • Driving Compilers
    • 一个不错的系列,讲 c 如何从源文件编译链接最后加载的整个过程,总体比较简洁,熟手拿来查漏补缺也不错
  • 沅有芷兮:类型系统的数学之美
  • What a good debugger can do
    • 主要讨论了一个优秀的调试器应该具备的功能和特性,不只是断点调试,大开眼界。
    • 剧透:列断点、tracing 断点、数据断点、多线程调试、热重载、时间旅行、全知 (Omniscient) 调试
  • How to Test
    • matklad(rust-analyzer 的主要开发者)的文章,讲述一些测试的理念,引人深思
  • The curse of strong typing
    • 实际上是一篇 Rust 的教学文章,由浅入深,主要是关于类型系统的。
  • A fork() in the road
    • 微软发表的论文,反对 UNIX fork(),列举了诸多 fork() 的坏处,并提出了一些替代方案
  • Tour of Rust’s Standard Library Traits
    • 介绍 Rust 标准库的 trait,挺全面的
  • Sizedness in Rust
    • 和类型「大小」相关的概念。比如 Sized trait,dynamically sized types(DST),zero sized types(ZST)
    • 对于系统编程语言(主要指 C/C++/Rust 等,一般无 GC)而言,类型的大小是一个非常基本的限制,会影响到语言设计的方方面面,也是这类语言复杂性的一个常见来源
    • 因此这篇文章虽然主要是关于 Rust 的,但是对 C/C++ 的理解也可以有一定启发作用

书籍教程

  • Crafting Interpreters
    • 实践编译原理知识的绝佳好书,同时也是练习工程开发的很好材料
    • 真正地在教学工业界使用的技术,也会适当扩展各种语言实现的趣闻、语言设计的思考等
    • 虽然实现语言是 java 和 c,但原理相通

博客/时事通讯/播客推荐

版权声明:本文采用 CC BY 4.0 进行许可,转载请注明出处。

本文链接:http://cxz888.xyz/posts/tech/recommend_articles/