《世界是数字的》是世界顶尖计算机科学家 Brian W. Kernighan 写给普通读者的入门书,讲述身处数学时代的人们都应该了解的有关计算机和互联网的知识。我很早以前就读过他和 Dennis M. Ritchie 合著的写给专业人员看的经典著作《C 程序设计语言》。而这本《世界是数学的》是一本科普书,读者对象是非专业人员。本书文字简明易懂、妙趣横生,又发人深省,诸多见解无论对专业人士,还是普罗大众都一样有重要的意义,非常有价值。无论你有没有计算机背景,无论你从事什么职业,只要你认同自己生活在数字时代,这本书就是必读的。作为业内人士,我读完这本书后,受益良多。


第2章 比特、字节与信息表示

2.1 模拟与数字

不过,模拟系统有时候也有它的优势,像泥版、石雕、羊皮纸、图书和照片等古老的媒体,都经历了数字格式未曾经历过的时间考验。

这句话讲得好。很多十几年前数字格式的资料,特别是专有的二进制格式的,到现在都很难解读了。还有,以前存储在软盘和磁带上的信息,现在也很难找到软盘驱动器和磁带机来读了。现在存储在光盘上的信息,十几年后不知道能不能找到光盘驱动器来读?

floppy

上图从左到右分别是 8 吋、5¼ 吋及 3½ 吋软盘,后两种软盘我都用过。而且 3½ 吋软盘现在我手头还有,但是已经找不到软盘驱动器来读它了。

在科幻小说《三体III:死神永生》第 424 页,刘慈欣写道:

“……于是他们告诉我,基于现代科学在各个学科最先进的理论和技术,根据大量的理论研究和实验的结果,通过对大量方案的综合分析和比较,他们已经得出了把信息保存一亿年左右的方法,他们强调,这是目前已知的唯一可行的方法,它就是——”罗辑把拐杖高举过头,白发长须舞动着,看上去像分开红海的摩西,庄严地喊道,“把字刻在石头上!”


2.2 模数转换

第二个模数转换的例子是声音,尤其是音乐。之所以说音乐是个不错的例子,原因在于以它为代表的数字信息的所有权,第一次引起了社会、经济和法律上的广泛关注。数字音乐与唱片或磁带不同,你可以在自己家的计算机里无限次地复制它,完全免费,而且还可以通过互联网把它复制发送到世界的任何角落,不会有任何音质损失,同样完全免费。唱片业把这当成了严重的威胁,试图通过法律或政治手段阻止数字音乐的拷贝。这场战争远未结束,每天都有小规模的战役打响,因此而对簿公堂和引爆政治辩论俨然成了家常便饭。

会心一笑。 :)


第10章 万维网

10.2 HTML

HTML文件用标签来表示格式信息,标签不仅可以内嵌文件内容,通常还可以标示页面区域的起始和结束位置。一个简单网页的HTML代码如下:

<html>
  <title> My Page </title>
  <body>
    <h2>A heading</h2>
    <p> A paragraph...
    <p> Another paragraph...
    <img src="news.gif">
    <a href="http://news.google.com">link to Google News</a>
    <h3>A sub-heading</h3>
    <p> Yet another paragraph
  </body>
</html>

上述 HTML 标签<p><img>未封闭,是不规范的。其中<p>标签应该使用</p>封闭:

<p> A paragraph... </p>

<img>标签可自封闭:

<img src="news.gif" />

我认为,这点值得作者改进,以符合 W3C 规范。


10.8 万维网安全

10.8.1 对客户端的攻击

可以使用垃圾邮件过滤器对邮件进行分拣,去芜存菁。常用过滤方法有查找已知的垃圾邮件模式(比如“你想每天都收到eBay寄来的钱吗?”这样的邮件,一看就是群发给大量人群的格式邮件),发现不太可能出现的名字和离奇的拼写(比如\/l/-\GR/-\)[1],或者把经常发送垃圾邮件的地址列入黑名单,拒收它的邮件。只用一种办法来过滤是远远不够的,因此要打出组合拳。垃圾邮件过滤仿佛是军备竞赛,只要防守者道高一尺,学会防范某一类垃圾邮件,进攻者就会魔高一丈,发明出新的规避方法。

《黑客与画家》的作者 Paul Graham 在“防止垃圾邮件的一种方法:不久前,许多专家还认为无法有效地过滤垃圾邮件。本文改变了他们的想法。”中写道:

我认为过滤垃圾邮件是可以做到的,基于内容的过滤器将发挥作用。发送垃圾邮件的人有一个致命伤,那就是他们发送的邮件本身。他们有办法逃脱你搭建的其他壁垒(至少目前是这样),但是不管怎样,他们都必须把垃圾邮件发出去。如果我们能够写出可以从内容上识别出垃圾邮件的软件,那么他们就无法逃脱了。

在这篇文章中,Paul Graham 讲述了他使用 Lisp 语言开发的基于统计学的贝叶斯过滤器。我认为,就垃圾邮件攻防来说,Paul Graham 是正确的,我目前使用的 Gmail 邮箱对垃圾邮件的过滤就非常成功。