为初创团队审计代码五年——我从中学到的

本文翻译自《Learnings from 5 years of tech startup code audits》一文,译文标题略微进行了改动;原作者 Ken Kantzer 在软件工程领域经营多年,对安全性问题有着深入思考;感谢 Twitter 用户 @greatested 分享了文章英文版本

我在 PKC 的那段时间,我们的团队做了超过二十次的代码审计,其中大多数,是为那些已经完成 A 或者 B 轮融资的初创企业进行的(经常是当这些企业已经渡过了市场契合度的挑战,手里有现金并且意识到最好应该深入研究安全性的时候)。

这是一项引人入胜的工作——我们跨越广泛的领域,并且深入到了各种堆栈和架构的组合。我们发现了从“有点意思的”一直到“灾难性的”各种安全问题。并且我们也有机会与高级研发领导以及 CTO 进行广泛交谈,了解他们在开始拓展时遇到的各种工程性和产品上的挑战。

揭幕无图型设计的神话

本文翻译自《Debunking the Myth of Going Schemaless》一文,原作者为 John Page,他是一名苏格兰人,现在 MongoDB 担任工程师;本篇文章的英文原文版本由 MongoDB 赞助

译者按

在面向有状态(Stateful)应用程序开发的过程中,通常会使用数据库对程序的状态进行持久化存储。与关系型数据库管理系统(RDBMS)使用前需要定义数据库图型(Schema)不同,诸如 MongoDB 在内的一系列数据库是无图型(Schemaless)的。开发者基于无图型数据库设计时,通常会有一些使用误区。本文原文作者从一个概括的角度讨论了这些误区,并提供进行无图型设计时的最佳用例。

为什么 GNU yes 程序这么快

几乎所有人在学习一门新的程序设计语言时,首先学到的功能便是将一段字符串——通常是“Hello, world!”——输出到屏幕上。在 *NIX 系统中,就一直存在着这样一个功能简单的程序,能够重复地将字符 “y”(或是其他什么东西)输出到屏幕上,通常用在一些需要用户重复输入确认指令的场景下:这个程序叫做 yes。

*NIX:表示类 Unix 操作系统,这通常包括 FreeBSD、GNU/Linux、MINIX 以及 macOS 等

Wikipedia