计算的边缘

做一个懂文艺的科学青年

Tag: 生活

书评:《数学:确定性的丧失》

看完这本书,忍不住写书评了。 从这本书的标题来看,它是讲数学的缺陷的。而当把这本书读完,才发现它讲的是一部数学的历史。 和一般的数学历史书不一样,这本书没有复杂的公式,没有深奥的定理,它从人类认识和理解自然这个伟大的角度讲述数学的发展、思想,以及数学和科学的关系。 看完这本书,你就会对数学的来龙去脉有一个比较全面的了解,你就会知道数学的历史并不是一帆风顺,你就会明白看似严密的数学却充满着各种各样的不稳定性。当然,这种不稳定性丝毫没有减少人们对自然、数学的热爱。 这本书还告诉了你:数学是什么。在此,就不得不提到另一本书:《什么是数学》。如果说《什么是是数学》这本书是从“自底向上”的方法向读者讲 述什么是数学,那么这本书就是用“自顶向下”的方法讲述什么是数学。就好比从飞机上鸟瞰一座宫殿,你首先被它的宏伟的气势震撼,被它精妙的布局吸引,然后 就有走进去了解它的冲动。这就是“自顶向下”的魅力,也是这本书的魅力。 看完这本书,就想把《数学分析》再重新看一遍,也想把《什么是数学》也重新看一遍。 就像书中说的: 音乐能激起或平静人的心灵,绘画能愉悦人的视觉,诗歌能激发人的感情,哲学能使思想得到满足,工程技术能改善人的物质生活,而数学则能做到所有这一些。 在看这本书的过程中,你就会发现,“数学”两个字越来越吸引人了。

LUG聚会

LUG——Linux User Group 这是我在浙大参加的第一次也可能是最后一次Linux用户组聚会。当然没有空着手去,我分享了一些我使用Shell脚本的经验,还现场写了一个简单的论坛灌水机。 幻灯片可以在这里下载。 生活的乐趣就在于学习知识、创造知识、分享知识。 这次活动,我至少知道了一点:我的Dell本+Ubuntu 8.04是可以连接投影仪的。

被完美主义折磨着

自从决定了要把《傲慢与偏见》刻成DVD送给某个人,我就发现自己的完美主义情结越来越严重了。 本来,把电影刻成DVD是件很容易的事。如果你是Windows用户,你肯定会想到用Nero。但如果碰巧你没有随刻录机赠送的OEM版的Nero,而且你也没有购买授权的Nero,你会怎么办?多半是在网上找一个Key用吧。 可惜,这个想法在第一时间就被我否定了,我的电脑里没有盗版软件,怎么能为了刻电影而用盗版呢。况且为某个人刻光盘是一件多么高雅的事情,怎么能用盗版软件完成呢。 于是,麻烦就来了。刻电影一般需要三个步骤:转码、创建DVD文件、刻盘。而莫非定律也没有放过它显圣的机会,竟然在每一步都制造了麻烦。 转码是最耗时间的工作,花了几天的时间找软件、测试、摸索,在被编码、分辨率、比例、制式困扰了很长时间后,终于搞定了这个问题。创建DVD文件时最大的问题就是字幕,由于所用的软件有Bug,而且对中文支持不好,字幕的位置总是有问题。开始还以为是操作或设置的问题,摸索了几天以后才知道是这个软件的Bug,然后就下载最新版的软件,编译,然后又经过漫长的摸索和测试,字幕也搞定了。 看到用Ubuntu自带的刻盘工具刻出的电影在Ubuntu下播放时,本以为曙光就此来临,没想到还有一个更大的深渊:光盘不能在Windows下播放。难道我要和某人说:你用Linux吧……又经过几天的摸索,才发现这又是软件的Bug,不过这次降级到老版本的软件。又经过几天的摸索,这个问题也解决了。所有技术上的问题都解决掉,剩下的就是体力活了。 有一个多星期的时间用在了探索上。有时多次测试都解决不掉一个问题时,我都想过要用Windows,然后用开源软件解决,毕竟,Windows下的开源软件是最后的底线了。但是对我来说,作为一个Linux用户,为某人刻光盘如此有意义的事情居然用Windows解决,太不完美了。而且,抱着“还有什么Windows能做而Linux做不了的事情吗”的信念,我坚持着在Ubuntu上的探索。终于,皇天不负有心人,我用Ubuntu成功地完成了所有的工作。事实再一次证明了:没有Windows能做而Linux做不了的事情,至少我还没发现。 事情总是这样,知道该怎么做,做起来就容易多了。这样,每天早晨走之前开始转码,晚上回来后就转好了,然后花20分钟生成DVD文件,然后边看电影边刻盘,顺便生成纠错码。 开始的一个多星期,每天晚上都要弄到2、3点,好几天都被同一个问题困扰着,问题还是曾出不穷。不过,这些辛苦都是值得的,最开心的就是把光盘送到某人手中的时候看着某人欣喜的笑容。 具体的技术细节在这里就不涉及了,至于在Ubuntu下如何刻DVD电影,参考我的这篇文章。

可恶的I/O-Bound工作

I/O-Bound这个词实在不知道该如何翻译成中文,或许我该找本中文的操作系统来看看。它说的是这个意思: ———-科普开始———- 通常来说,一段程序的执行需要几个步骤:从存储器里取出需要操作的数字,然后进行运算,再将结果写入存储器里。就这么简单。 比如说,我们需要计算1+2=_。首先我们需要从存储器里获得1和2这两个数,然后将这两个数进行加法运算,最后再将结构3写入存储器里。 看似平凡的三个步骤,却暗藏着玄机。根据现在的处理器和存储器结构,做一个加法运算的时间大概需要1个周期,而访问一次内存需要的大概是500个周期。这是500倍的差距。这只是读写内存,而对硬盘的读写所需要的时间比内存还要多100,000倍! 程序的差异性就主要体现在它们对处理器和存储器读写的不同需求上。有些程序主要的执行时间花在了处理器的运算上,这些就是CPU-Bound的程序,而有些花在处理器读写(更一般地,输入输出,Input/Output, I/O)上,这就是I/O-Bound。 下面的图可能更形象一些: 在图中,黑色的块代表处理器在计算,浅色的块代表正在进行I/O读写。 ———-科普结束———- 下面进入正题。 这些枯燥的叙述可能还不足以点燃你对I/O-Bound的仇恨,假如它发生在你的生活中呢? 处理器的计算就好比我们办正事,而I/O读写就好比花在路上或者是排队的时间。假设你要拍毕业证了照片了,而学院的老师以管理小学生的办法要求你们明天上午9点集合,统一拍照。好吧,第二天你起晚了,到了指定的地点发现已经有一长串的队伍拍在那里了。你等啊等,不时拿出手机上会儿网,和同学聊会儿天,看看美女,再骂两句前面插队的人,在排了两个小时的队后,终于轮到你了。你刚端坐在椅子上,还想再调整一下姿势,只见闪光灯一闪,然后就听到一个似曾相识的声音:“下一个!” 拍照的时间不到一分钟,你却等了2个小时,先别急着骂街。你花在排队等待的时间只是办正事时间的120倍而已,想一想CPU同学,每时每刻都在忍受这大于500倍的I/O-Bound程序还这么任劳任怨,真是精神可嘉。只可惜CPU是老外发明的,要不然它早就获得五一劳动奖章了。 类似这样的事情每天都在发生,我们的时间,甚至生命每时每刻都在被浪费着。今天我去上海办签证,真正递送签证的时间也就只有15分钟,但我从早晨8点出门,晚上8点才回来。其他时间都花在排队买票、等车、坐车、认路上了。这个时间差距也足有48倍。 认清了I/O-Bound工作的真实面目,你一定像我一样深深地恨上它了吧。彻底摆平它是不大可能的,我们只能尽可能使它浪费的时间减小的最少。如何做到呢?先让我们来看看计算机设计者们是如何做的,因为他们也同样痛恨I/O-Bound的工作。 最土最暴力的方法就是减少I/O操作的时间,比如减少访问存储器所需要的时间。但这种提升空间毕竟有限而且成本昂贵。我们也可以这样做,下次去上海的时候就直接打的,这样就省去认路、买票、等车的时间了。这样做需要付出的代价也是极大的,可能就是你接下去几个星期就要啃馒头了。 还有一种方法就是利用时空的局限性,顺便帮别人也把事办了。计算机中的缓存(Cache)就是基于这种考虑设计的,取一个操作数的时候,顺便把其他操作数也取到了,而且以后再用到的时候就不用再花时间取了。当然,聪明的我们也在用着这种方法,只是不知道而已。你去食堂吃饭的时候,同学经常让你帮他们打包,你就在无形中减少着他们因为I/O-Bound所浪费的时间——至少,他们不用再去食堂、排队、打饭、找座位了。而且还可以为自己攒人品哦。你要是顺便再多打一份,留着晚饭吃(如果不嫌凉的话)就更像缓存的行为了。 一种最上档次方法就是同时进行多任务。对处理器来说,它可以在等待一个程序I/O操作的同时为另一个程序做运算,就像右图。这样,处理器可以说”随时都在办正事“,并没有浪费时间。当然,这需要巧妙的调度。我么当然也可以做到,甚至已经做到了。当我们排长队或者坐车的时候,我们可以做一些”CPU-Bound“的工作,比如读读论文、看看闲书、和女朋友煲电话粥、和旁边美女搭个讪等等。充分利用时间,决不让它无故地浪费。 可惜我一个都做不到,一坐上车,就浑身不舒服。只能听听京剧,然后就睡着了。 本文所有图片来自这里。

奥林匹克,菲尔普斯

奥运会结束了,中国拿了51块金牌,排在奖牌榜首位,完美地完成了东道主的角色。看着祖国一天天强大,真为祖国感到自豪。 而我更想说的是菲尔普斯。一个前无古人的奥运冠军,一个奥运史上最伟大的英雄。一届奥运会拿八块金牌,毫无疑问奠定了他游泳霸主的地位。 “霸主”这个令人向往的词,尤其是每个男人都希望成为的角色。“将不过李,王不过霸”,项羽最终还是失败了,李存孝也死于自己人的嫉妒之中,然而他们的英勇,他们的功绩足以流传几千年。两千年后的今天,人们还会记得阿喀琉斯。两千年后,人们还是会想起阿喀琉斯,想起他的神勇,人们也会想起菲尔普斯,想起他的骄傲。两千年后,还会不会有人记得我们? 男人最想要的是什么?不是金钱,不是权利,不是女人,而是永恒。 菲尔普斯靠的是什么?首先是天赋。记得《A Beautiful Mind》里有人这么问Nash: “What’s the difference between genius and most genius?” Nash说: “A lot.”有了天赋。就可以有一种傲然的态度,就有了一种与生俱来的霸气。 勤奋的重要性却远大于天赋。在中国,很多很有天赋的人都被中国的教育体制蒙蔽了,很多人认识不到勤奋的重要性,其实越要到一个更高的境界,需要学习的只是就越来越多,没有勤奋,永远都只能在三流边上徘徊。一流的人是那些既有天赋又勤奋的人,二流的是那些勤奋的人。 做男人就要像菲尔普斯,有天赋,再加上超乎寻常的勤奋,才能成就足以载入史册的功绩,才能成就永恒。 然而,真正永恒了又能怎么样呢?哪里又有绝对的永恒呢?人类总会灭绝,地球也终有一天会消失的。到一切都灰飞烟灭的那一天,历史上所有人所作的努力都将失去任何意义。 写着写着,总要写到消极。

坐火车旅行

两天前就回到学校了,昨天下午在实验室才用上了网络,今天才有时间来码这篇水文。 经历了2天没有网络的生活后,现在回想起来,也没有糟糕到哪去,或许还有一些轻松。然而,这种惬意在我打开邮箱、Google Reader的一刻就彻底消失了。邮箱里有50+封未读邮件,还有一封是分配Full Circle中文校对任务的,离任务发出已经过了3天了。打开Google Reader更是不得了,看到All items后面赫然写着“1000+”。看到这个数字就感觉到自己少获取了很多信息。不知道从什么时候起,自己对信息的获取变得这么敏感,每天都在关注技术、社会新闻,最新技术的发展,以及一些杂七杂八的东西(不包括八卦 )。这种感觉就像小时候成天抱着好几本《十万个为什么》研究一样。 每次回家、返校都坐火车,每次坐火车都有一种特别的感觉。 在熙熙攘攘而又不是十分干净的站台,看着各种各样的人,拿着大包小包,推来挤去。还有长长的静候在那里的列车。站台一般是比较阴暗的,而且还夹杂着人们各地的方言,还有火车鸣笛、放气的声音。说不清这汽笛是在向即将远行的人道别,还是在为就要分别的人扼腕。 旅行,不光是空间的旅行,而更多是时间的旅行,静止在那里的列车用它的静止向你表明发车时间一点一点得逼近,旅行马上就要开始了。 在火车上,我总是看这窗外,不是看远处的风景,而是看近处的农田、电线杆、甚至旁边的铁轨。最初了解相对论的时候对这个比喻的印象特别深:当你坐在一列以接近光速行使的火车上,将会看到车厢外的事物的长度就会收缩,而车厢内的时钟会比车厢外的慢很多。我并没指望能在火车上觉察到相对论,我觉察到的不仅仅是空间的转移,还有时间的流逝。时间并没有像期望的那样倒流,而是在你期望它倒流的时候飞快的流走。我经常想,如果时间能倒流,我会做什么?也许要做得太多,也许又一件也懒得做。我也经常想,如果能到未来旅行,我倒真想看看那时的我是什么样,能成就什么样的“功绩”,妻子是谁,能做到多少岁等等;也许真能这么做的时候我就又不想了。一个人在特定的情况下会怎么做,只有在特定的情况到来的时候才知道。 等待这些“特定的情况”一个个地到来。

父母与Ubuntu

几乎每次回家,都要花很大的精力整理家里的台式机。这次回来也不例外,卡巴斯机的病毒库过期了;倒是没有发现病毒,但机子里的应用程序却被卡巴斯机杀了个差不多;而且每次开机Windows都提醒我是盗版用户的受害者(我记得我把自动更新关了)。要是以前,我会忙不跌得杀毒,重装系统,然后配置得和原来一样。可是现在,我却一点动机都没有。 第一个原因可能就是盗版的问题,我自己的笔记本上已经没有盗版软件了,包括操作系统,要是在家里装个盗版的操作系统,多少有点不愿意。手头倒是有正版的XP,可那是英文的,给父母用又不现实。 第二个原因可能是安全的原因,在Windows中,无论用多高级的杀毒软件,无论多仔细地配置组策略,它的系统文件结构就已经决定了它的不安全。况且,Microsoft都承认了Windows NT的安全是不可能的。反反复复得做重复工作,谁都不愿意。 以前也想过装Linux,但总有一些顾虑。首先就是和MS Word交流的问题,如果用OpenOffice生成的文档用Word打开的话可能会造成格式紊乱,而现在单位用得都是MS Word,WPS之流的软件,排版的格式是个大问题。现在唯一可行的就是教会父母格式化排版,而不用空格排版,然后生成PDF。 还有就是游戏,父母喜欢玩纸牌,连连看,老爸还喜欢玩QQ游戏的围棋。其他都好说,Linux也有很优秀的围棋软件,比如gnugo,qgo。也有很好的围棋游戏平台,比如蓝迪。这些到时候都可以尝试一下。 安全自然没问题了,杀毒软件自然都不用考虑了。 昨晚,下载了Ubuntu 8.04 LiveDVD。刻盘,安装。不得不提的是,用LiveDVD安装是非常方便的,一但选择了中文,字体、输入法统统就已经配置好了,系统用的是文泉驿字体,效果不错,中英文衔接也很好。很高兴看到Ubuntu 8.04有这么大的进步,毕竟Ubuntu已经不是两年前的Ubuntu了,想当年光是字体就要配好久。 在“硬件驱动”里把显卡钩上,装好显卡驱动后,发现分辨率变得很难看了,改了xorg.conf后就好了。 然后就是装连连看Linux版。下载好源代码后编译安装,解决了一些依赖问题后一切顺利。然而,这个连连看是的菜单,界面都是英文版的,今天老爸玩的时候也感到很不方便。没关系,开源软件的好处这时候就体现出来了,打开源代码,自己手工汉化之后重新编译,安装。现在玩起来就顺手多了。 目前的进展就是这些了,以后准备把围棋搞上马,然后在根据需求安装点有用的软件,实在不行就wine。 根据我用了这么久Ubuntu的经验以及对Linux的了解,我认为Linux是比Windows更适合新手的。它很重要的一个优点就是它的目录结构。它不像Windows那样有一个又一个“盘”,而是把用户所有的文件都集中到一个目录下,这样更直观和易于管理。 用我现在的观点审视我原来使用电脑的方式,发现原来自己真的很土,一个160G的硬盘竟然都分到H盘,而且居然把应用程序都装到了其他盘上,弄得现在想整理一下都很尴尬。或许是现在都电脑有了更深的认识吧,如果现在让我装Windows系统,我只分两个盘,C和D,再大的硬盘也是这样。其实分区和建立文件夹没有太大的区别。有机会我再写篇文章探讨这两种文件管理方式的好坏。 如果还想更多地了解Linux到底比Windows好在哪里,可以参考这里。

我们有多依赖技术

我们用电脑做什么?网络的发展,尤其是各种各样的在线服务,让我们在使用电脑的时候充满了乐趣。 每天我们都要检查邮件,阅读新闻,然后再分享一下自己的资源。正是网络,让我们每天都在学习,时刻都在娱乐。 不知你有没有发现,我们对网络的依赖越来越严重。 想象这么一天,打开电脑,发现上不了网, 你能做什么?只是面对一台与世隔绝的电脑玩扫雷,还是写点自己的程序,然后遇到问题的时候发现没有东西可以参考,没有人可以交流。又可能有这种情况,你把你的邮件、文档都放在google的服务器上,然后在自己需要而没有网络的时候却无论如何都无法得到它们。那时,你除了向你的ISP抱怨还能做什么? 听一个教授说过,他经历过3天没有网络的生活后发现 ,没有email,没有手机的生活是那么惬意。这大概就是至高境界。没有网络,那是世外桃源。 对网络的依赖如此,对其它技术呢?人们喜欢把信息都存到电脑里,包括书籍,文章,音乐,图片。而书籍的作用在慢慢淡化。好吧,到了3000年,甚至4000年,当人们(如果还存在的话)拿起一张2008年的光盘、磁盘 ,他们恐怕只能从中获取一堆1和0的序列了。除非他们懂得他们2000年前数据编码的方式并且有相应的设备。 全球的信息量在以不知道什么级数的方式增长,GB,TB,PB,Exabyte… 或许人们足够聪明,设计出一个能有效管理如此巨大的信息的方法,否则,信息会不断地丢失。我们正被淹没在1和0的海洋中,正在从历史中消逝…

这个世界没有天堂

Everybody want to go to heaven, but nobody wants to die. 每个人都想上天堂,但没有人想死。 地震整整过去一个月了, 人们已经渐渐地从地震的惊恐、忧虑中恢复过来,我也慢慢地淡忘了当时是怎样的心情。我不是一个感性的人,当时没有像很多人一样伤心地落泪,也没有难过地寝 食难安。我竟然也未曾为他们祈祷,因为我不相信上帝、佛祖能让那死去的六万人复活,能让灾区活着的人逃过劫难,哪怕是给亡灵小小的告慰。 我能做什么?我做了什么?除了捐款、默哀,我似乎无济于事。有人说:做好自己的本职工作就是最灾区最好的支持。 我不想过多的思考这句话,不想用理性的思维冲淡我对灾区哪怕微不足道的关心。然而,天往往不随人愿,余震不断地发生,遇难人数也在不断增加。没人知道到底 有多少人永远被埋在了废墟之下,也没人知道他们究竟能否上了天堂。 这个世界没有天堂,因为每个人都想上天堂,却没有人想死。 看看这些孩子,她们还没明白是怎么回事,就被压在坍塌的教室下,无法动弹,无法呼吸,无法思考。生命无法挽回,人们只能这样安慰自己:她们在天堂很幸福。然而她们的老师、父母、朋友,以及所有看到这照片的陌生人都宁愿她们不上天堂而留在他们身边。 天堂遥不可及,死亡却又无法想象。 我们只能不断地欺骗自己:生亦合欢,死亦和惧。