主页

索引

模块索引

搜索页面

4.12. 其他

  • 1968-04月 梅尔 · 康威在 Datamation 杂志上发表了一篇名为“How Do Committees Invent”的论文,提出了「康威定律」

  • 1992 年 Ward Cunningham 提出“技术债”

  • 2018-05-23 net-tools 起源于 BSD,自 2001 年起,Linux 社区已经对其停止维护,而 iproute2 旨在取代 net-tools,并提供了一些新功能。一些 Linux 发行版已经停止支持 net-tools,只支持 iproute2。

4.12.1. 加密

  • 1976 年,DH 是 Diffie-Hellman 的首字母缩写,作者Whitfield Diffie 与 Martin Hellman开创了公钥密码学的先河

  • 1977 年,联邦信息处理标准(FIPS)发布 DES

  • 1977 年,三位数学家Rivest、Shamir 和 Adleman设计了一种公钥算法RSA,可以实现非对称加密。这种算法用他们三个人的名字命名。

  • Rivest设计出 md4, 128bit, RFC1186, RFC1320

  • 1983 年由 David Chaum 提出 盲签名

  • 1985 年由 Neal Koblitz 和 Victor Miller 分别独立提出 ECC

  • 1990 年,MIT 的 Ronald L. Rivest 设计出MD4(RFC 1320),MD 是 Message Digest 的缩写。其输出为 128 位。MD4 已证明不够安全。

  • 1991 年,Rivest 对 MD4 的改进版本MD5(RFC 1321)。它对输入仍以 512 位分组,其输出是 128 位。MD5 比 MD4 复杂,并且计算速度要慢一点,更安全一些。MD5 已被证明不具备“强抗碰撞性”。

  • 1991年,程序员Phil Zimmermann为了避开政府的监视,开发了加密软件PGP。因为这个软件非常好用,迅速流传开来成为许多程序员的必备工具

  • 1993 年,安全杂凑标准(Secure Hash Standard)发布第一个版本,这个版本常被称为 SHA-0,它在发布之后很快就被 NSA 撤回。

  • 1995 年,NIST发布了 SHA-1,它的输出为长度 160 位的 hash 值,因此抗穷举性更好。

  • 1997 年,PGP 成为一项互联网标准,称为 OpenPGP

  • 1997 年,GPG(GnuPG)是OpenPGP 标准多种实现中的一种,由自由软件基金会 (FSF) 所开发的的程序称 GNU Privacy Guard(GPG)

  • 2000 年10月2日, Rijndael(比利时: Joan Daemen, Vincent Rijmen)在美国国家技术研究所NIST(National Institute of Standards and Technology)举办的公开竞选中获胜,生成新的对称加密标准 AES

  • 2002 年,以官方标准发布包含SHA-1 的 FIPS PUB 180-2

  • 2004 年 2 月,发布了一次 FIPS PUB 180-2 的变更通知,加入了一个额外的变种 SHA-224

  • 2010 年12月17日,国家密码管理局发布的椭圆曲线公钥密码算法SM2

4.12.2. 加密破解

  • 1999年,RSA-155 (512 bits)被成功分解,花了五个月时间(约8000 MIPS年)和224 CPU hours在一台有3.2G中央内存的Cray C916计算机上完成

  • 2010 年,美国软件工程学会 (SEI) 就认为 MD5 算法已被破解,不再适用

  • 2009年12月12日,编号为RSA-768(768 bits, 232 digits)数也被成功分解。这一事件威胁了现通行的1024-bit密钥的安全性,普遍认为用户应尽快升级到2048-bit或以上

4.12.3. 服务端开发

  • 1971 年,电子邮件诞生。

  • 1974 年,Internet 诞生。

  • 1974 年,第一个数据库系统 IBM System R 诞生。SQL 语言诞生。

  • 1989 年,万维网(WWW)诞生。

  • 1993 年,世界上第一个 Web 服务器 NCSA HTTPd 诞生,它也是大名鼎鼎的 Apache 开源 Web 服务器的前身。

  • 1998 年,Akamai 诞生,提供内容分发网络(CDN)服务。算是全球第一个企业云服务,当时还没有云计算这样的概念

  • 2006 年,Amazon 发布弹性计算云(Elastic Compute Cloud),简称 EC2。这被看作云计算诞生的标志性事件。

  • 2007 年,Amazon 发布简单存储服务(Simple Storage Service),简称 S3。这是全球第一个对象存储服务。

  • 2008 年,Google 发布 GAE(Google App Engine)。

  • 2009 年,Go 语言诞生。Derek Collison 曾预言 Go 语言将制霸云计算领域。

  • 2013 年,Docker 诞生。

  • 2013 年,CoreOS 诞生。这是第一个专门面向服务端的操作系统。

  • 2014 年,Kubernetes 诞生。当前被认为是数据中心操作系统(DCOS)的事实标准。

4.12.4. 正则表达式

  • 20 世纪 40 年代,有两位神经生理学家(Warren McCulloch 和 Walter Pitts),研究出了一种用数学方式来描述神经网络的方法。

  • 1956 年,一位数学家(Stephen Kleene)发表了一篇标题为《神经网络事件表示法和有穷自动机》的论文。这篇论文描述了一种叫做 “正则集合(Regular Sets)” 的符号。

  • 1968 年 Unix 之父 Ken Thompson 发表了文章《正则表达式搜索算法》,并且将正则引入了自己开发的编辑器 qed,以及之后的编辑器 ed 中,然后又移植到了大名鼎鼎的文本搜索工具 grep 中

  • 1986 年的 POSIX 开始进行标准化的尝试。POSIX 作为一系列规范,定义了 Unix 操作系统应当支持的功能,其中也包括正则表达式的规范。因此,Unix 系统或类 Unix 系统上的大部分工具,如 grep、sed、awk 等,均遵循该标准。我们把这些遵循 POSIX 正则表达式规范的正则表达式,称为 POSIX 流派的正则表达式 [注: 流派1]。

  • 1987 年 12 月,Larry Wall 发布了 Perl 语言第一版,因其功能强大一票走红,所引入的正则表达式功能大放异彩。之后 Perl 语言中的正则表达式不断改进,影响越来越大。于是在此基础上,1997 年又诞生了 PCRE——Perl 兼容正则表达式(Perl Compatible Regular Expressions) [注: 流派2]。

4.12.5. 敏捷开发

  • 1996 年,Steve McConnel 出版了一本著作《Rapid Development》,国内译作《快速软件开发》首次提出了解决集成问题的优秀实践:Daily Build,每日构建。

  • 2000 年时,“软件行业最会总结的人” Martin Fowler 发布了一篇重量级文章“Continuous Integration”

  • 2011 年写成《精益创业》。最早成型的面向不确定性创造新事物的方法论是精益创业(Lean Startup),它是 Eric Ries 最早总结出来的。他在很多地方分享他的理念,不断提炼,最终在 2011 年写成一本同名的书:《精益创业》。

  • 2006 年,Martin Fowler 重写了“Continuous Integration”这篇文章

4.12.6. 测试

最早的测试框架起源是 Smalltalk。这是一门早期的面向对象程序设计语言,它有很多拥趸,很多今天流行的编程概念就来自于 Smalltalk,测试框架便是其中之一。 真正让测试框架广泛流行起来,要归功于 Kent Beck 和 Erich Gamma。Kent Beck 是极限编程的创始人,在软件工程领域大名鼎鼎,而 Erich Gamma 则是著名的《设计模式》一书的作者,很多人熟悉的 Visual Studio Code 也有他的重大贡献。 有一次,二人一起从苏黎世飞往亚特兰大参加 OOPLSA(Object-Oriented Programming, Systems, Languages & Applications)大会,在航班上两个人结对编程写出了 JUnit。从这个名字你便不难看出,它的目标是打造一个单元测试框架。 顺便说一下,如果你知道 Kent Beck 是个狂热的 Smalltalk 粉丝,写过 SUnit 测试框架,就不难理解这两个人为什么能在一次航班上就完成这样的力作。 JUnit 之后,测试框架的概念逐渐开始流行起来。如今的 “程序世界”,测试框架已经成为行业标配,每个程序设计语言都有自己的测试框架,甚至不止一种,一些语言甚至把它放到了标准库里,行业里也用 XUnit 统称这些测试框架。

  • 2003 年由 Dan North 提出了来的 BDD

4.12.7. 信息论

  • 1948 年,克劳德・香农(Claude Elwood Shannon)在《贝尔系统技术学报》(Bell System Technical Journal)上发表了一篇论文《通信的数学原理》(A Mathematical Theory of Communication),这是现代信息论的开端。我们程序员熟知的通信、数据压缩、密码学、自然语言处理等诸多领域都有信息论的身影。

https://img.zhaoweiguo.com/knowledge/images/theorys/normals/Shannon1_comunicate_model.jpeg

香农信息论中的一个通信模型:

1. 信源(Information Source),它负责产生信息(Message)。
2. 发送器(Transmitter),它会对信息进行某些操作,也就是对信息编码,产生信号(Signal)。
3. 信道(Channel),它是信号传送的媒介。
4. 接收器(Receiver),它是对信号执行发送器的逆操作,解码信号,提取出信息。
5. 信宿(Destination),它负责接收信息。
6. 噪声(Noise)

4.12.8. CI/CD

  • 2009 年,Flickr 做了一个分享《每天部署 10 次》,整个行业受到了极大的冲击,从此 DevOps 运动风起云涌。Chef、Puppet、Ansible 这些工具基本上都是在那之后,兴起或广为人知的。

主页

索引

模块索引

搜索页面