天才,榜样

每次看到这些大牛们的事迹,心难免都要加速跳动。爱迪生说没有那1%的灵感即使是99%的汗水也不一定能成功,可是付出那99%的汗水也是必要的,不然1%的灵感也只是耍耍小聪明而已!

相信Fabrice Bellard也一定是在不断的挥洒着汗水来实现那1%的灵感。

计算的威力,智慧的传奇

—— Fabrice Bellard

作者:吕娜

这个世界从来不缺天才,只缺乏利用天分坚持理想和信念不断创新的人,这些人用恒心和努力缔造一个又一个传奇。法国人Fabrice Bellard 就是这样一个了不起的程序员。

Fabrice Bellard1972年生于法国,曾就读于巴黎高等综合理工学院和法国电信研究院。对计算机有着浓厚兴趣的他,高中时就崭露头角,编写出了LZEXE,这是DOS上第一个广泛使用的文件压缩程序。

Fabrice Bellard是一位计算机奇才,在业界有着重要的影响。1996年他编写了一个简洁但是完整的C编译器和一个Java虚拟机Harissa。Fabrice Bellard发明的TinyCC是GNU/Linux环境下最小的ANSI C语言编译器,是目前号称编译速度最快的C编译器。Fabrice Bellard杰作众多且涉及广泛,1998年编写了一个简洁的OpenGL实现TinyGL,2003年开发了Emacs克隆QEmacs,2005年还设计了一个廉价的数字电视系统。

Fabrice Bellard的一个重要杰作是在Linux内核上写了一个CPU模拟器QEMU,这套开放源码的模拟器软件与Bochs、PearPC近似,但具有后两者所不具备的高速度及跨平台等特性。QEMU可以在不同的机器上运行独自开发的操作系统与软件,经由KQEMU这个开源的加速器,能模拟至接近真实电脑的速度。QEMU构思巧妙, 效率极高, 在借助核心态的KQEMU加速器之后,模拟代码的执行速度甚至能够接近真实机器。QEMU已成为目前使用最广泛的模拟器,KVM和Google Android的模拟器都是基于QEMU的。

Fabrice Bellard 可谓博学多才,他另外一个重量级项目是FFmpeg。FFmpeg 单词中的FF 指的是Fast Forward,FFmpeg这个2000年发起著名的开源多媒体播放器项目, 是MPlayer的姊妹项目。这是一个如此重要的成就,没有这个项目,就没有我们今天广为使用的暴风影音等播放器。这个多平台、多功能的多媒体编码解码器由Fabrice Bellard发起并管理,现在是由Michael Niedermayer在进行维护。

天才的创新经常是离经叛道式的超越,Fabriced Bellard的一些项目让人感觉疯狂。比如他曾有一个项目是将带有VGA显卡的PC改装成DVB-T的信号发射器。这样一来,为了防止泄密,公司不仅要封声卡插口,还要焊上显卡插口。

Fabrice Bellard在圆周率算法方面也有着惊人的成就,1997年FabriceBellard提出最快圆周率算法公式。在计算圆周率的过程中,Fabrice Bellard使用改良后的查德诺夫斯基方程算法来进行圆周率的计算,并使用贝利-波温-劳夫算法来验证计算的结果。为了纪念他对圆周率算法所作出的杰出贡献,Fabrice Bellard所使用的改良型算法被命名为Fabrice Bellard算法,这种算法是目前所有圆周率算法中最快的一种,这个计算N位PI的公式比传统的BBQ算法要快47%。

2009年的最后一天,Fabrice Bellard宣布另一重大突破:他用桌面电脑打破了由超级计算机保持的圆周率运算记录。这是一个壮举, 他将PI计算到了小数点后2.7万亿位!更令人惊讶的是, 他使用的不过是价格不到2000欧元的个人PC,仅用了116天,就计算出了PI的小数点后第2.7万亿位,超过了由目前排名世界第47位的T2K Open超级计算机于2009年8月17日创造的世界纪录。新纪录比原纪录多出1200亿位,然而,他使用的这台桌面电脑的配置仅为:2.93GHz Core i7 CPU,6GB内存,7.5TB硬盘!

不过这次为了加快计算完成的速度保住排名第一的位置,Fabrice Bellard使用了9台联网的电脑来对数据进行验证, 若使用一台电脑来验证计算结果的话, 则需要额外增加13天的计算时间。

Fabrice Bellard在圆周率方面的辉煌成就, 使他创造多次圆周率单一位计算的世界纪录(计算10的整次幂位) , 也曾因此而登上《科学美国人》法文版。

Fabrice Bellard

(本文来自《程序员》杂志2010年2月刊)


如何成为一名黑客

如何成为一名黑客 原版在这里http://catb.org/~esr/faqs/hacker-howto.html

Copyright © 2001 by Eric S. Raymond

译文来自这里 http://www.aka.org.cn/Docs/hacker-howto_2001.html

翻译:Barret

允许未经作者及译者的同意进行非商业目的的转载,但必须保持原文的完整性。

内容一览
为什么会有这份文档?
什么是黑客?
黑客应有的态度
黑客的基本技能
黑客文化中的地位
黑客和书呆子(Nerd)的联系
风格的意义
其它资源
FAQ(常问问题解答)

为什么会有这份文档?

作为 Jargon File 的编辑和一些其他有名的类似性质文章的作者,我经常收到充满热情的网络新手的email提问(确实如此) “我如何才能成为一名出色的黑客?”非常奇怪的是似乎没有任何的FAQ或者Web形式的文档来说明这个十分重要的问题,因此我写了一份。

如果你现在读的是这份文档的离线拷贝,那么请注意当前最新版本(英文版)在 http://www.tuxedo.org/~esr/faqs/hacker-howto.html可以得到。

注意:在这份文档最后有 FAQ(常问问题解答)。请在向我提出任何关于这份文档的疑问之前读两遍。

目前这份文档有很多翻译版本: 保加利亚语, 简体中文, 繁体中文, 丹麦语, 荷兰语, 法语, 德语, 匈牙利语, 印尼语, 日语, 朝鲜语, 葡萄牙语, 俄语及 瑞典语。注意由于这份文档时有修正,所以以上翻译版本可能有不同程度的过时。

什么是黑客?

Jargon File 包含了一大堆关于“hacker”这个词的定义,大部分与技术高超和热衷解决问题及超越极限有关。但如果你只想知道如何 成为 一名黑客,那么只有两件事情确实相关。

这可以追溯到几十年前第一台分时小型电脑诞生, ARPAnet 实验也刚展开的年代,那时有一个由程序设计专家和网络名人所组成的, 具有分享特点的文化社群。这种文化的成员创造了 “hacker” 这个名词。黑客们建立了 Internet。黑客们发明出了现在使用的 UNIX 操作系统。黑客们使 Usenet 运作起来, 黑客们让 WWW 运转起来。如果你是这个文化的一部分,如果你对这种文化有所贡献,而且这个社群的其它成员也认识你并称你为 hacker, 那么你就是一位黑客。

黑客精神并不仅仅局限在软件的黑客文化中。有人用黑客态度对待其它事情,如电子学和音乐—— 事实上,你可以在任何最高级别的科学和艺术活动中发现它。精于软件的黑客赞赏这些在其他领域的同类并把他们也称作黑客—— 有人宣称黑客天性是绝对独立于他们工作的特定领域的。 但在这份文档中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的以共享为特征的文化传统之上。

有一群人大声嚷嚷着自己是黑客,但他们不是。他们(主要是正值青春的少年)是一些蓄意破坏计算机和电话系统的人。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们又懒又不负责任,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如用铁丝偷开走汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法一直使真正的黑客感到恼火。

根本的区别是:黑客搞建设,骇客搞破坏。

如果你想成为一名黑客,请接着读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在意识到你并不像自己想象的那么聪明后去坐五到十次监狱。关于骇客,我只想说这么多。
黑客应有的态度

黑客们解决问题,建设事物,同时他们崇尚自由和无私的双向帮助。要被他人承认是一名黑客,你的行为得体现出你好像具备了这种态度一般。而要想做得好象你具备这种态度一般,你就得切切实实坚持它。

但是如果你认为培养黑客态度只是一条在黑客文化圈中得到承认的路子,那就大错特错了。成为具备这些特质的这种人对 你自己非常重要——有助于你学习,及给你提供源源不断的动力。同所有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神—— 不仅从智力上,也要从感情上进行模仿。

或许, 下面这首现代的禅诗很好的阐述了这个意思:

To follow the path:(沿着这样一条道路:)
look to the master,(寻找大师,)
follow the master,(跟随大师,)
walk with the master,(与大师通行,)
see through the master,(洞察大师,)
become the master.(成为大师。)

嗯,如果你想成为一名黑客,反复读下面的事情直至你相信它们:

1. 世界充满了待解决的迷人问题。

做一名黑客会有很多乐趣,但却是要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从锻炼身体、超越自我极限的愉悦中得到动力。同样,做黑客,你得能从解决问题,磨练技术及锻炼智力中得到基本的乐趣。

如果你还不是天生的这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他分心的事物吞噬掉——如金钱、性和社会上的虚名。

(同样你必须对你自己的学习能力建立信心——相信尽管当你对某问题近乎一无所知,但只要你一点一点地试验、学习,最终会掌握并解决它。)

2. 一个问题不应该被解决两次。

聪明的脑袋是宝贵的有限的资源。当世界还充满非常多有待解决的有趣的新问题时,它们不应该被浪费在重新发明轮子这类事情上。

作为一名黑客,你必须相信其他黑客的思考时间是宝贵的——因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决 新问题而不是不断地忙于对付旧问题。

(你不必认为一定要把你 所有的发明创造公布出去,但这样做的黑客是赢得大家极度尊敬的人。卖些钱来养家糊口,租房买计算机甚至发大财和黑客价值观也是相容的,只要你别忘记你还是个黑客。)

3. 无聊和乏味的工作是罪恶。

黑客(泛指具有创造力的人们)应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情—— 解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,而且是罪恶。

作为一个黑客,你必须坚信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。

(对此有一个明显的例外。黑客有时也做一些在他人看来是重复性或枯燥的工作以进行“脑力休息”,或是为了获得某种技能,或是获得一些除此以外无法获得的特别经验。但这是自愿的——有脑子的人不应该被迫做无聊的活儿。)

4. 自由万岁。

黑客们是天生的反独裁主义者。任何能向你发命令的人能够迫使你停止解决令你着迷的问题,同时,按照独裁者的一般思路,他通常会给出一些极端愚昧的理由。因此,不论何处,任何独裁主义的作法,只要它压迫你和其他黑客,你就要和它斗到底。

(这并非向所有权威挑战。儿童需要监护,罪犯要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客可以同意接受某种形式的权威。但这是一个有限度的,有意的交易;那种权威想要的个人服从不是你应该同意给予的。)

权威喜欢审查和保密。他们不信任自愿的合作和信息的共享—— 他们只喜欢由他们控制的所谓“合作”。因此,作为一个黑客,你得对审查、保密,以及使用武力或欺骗去压迫有行为能力的人们的做法有一种本能的敌意。同时你要有为此信念斗争的意愿。

5. 态度不能替代能力。

作为一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,也不能使你成为一个运动健将和摇滚明星。成为一名黑客需要智力,实践,奉献精神和辛苦工作。

因此,你必须学会怀疑,并尊重各种各样的能力。黑客们不会为那些装模做样的人浪费时间,但他们却非常尊重能力—— 尤其是从事黑客工作的能力,不过任何能力总归是好的。具备很少人能具备的那些方面的能力尤其好,其中具备涉及脑力、技巧和专注方面能力的当然最好。

尊敬能力,你就会享受到提高自己能力的乐趣—— 辛苦的工作和奉献会变成一种高度娱乐而非苦差事。要想成为一名黑客,这一点非常重要。

黑客的基本技能

黑客态度重要,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一些基本的技术你必须掌握。

这些基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去内容包括使用机器语言编程,而直到最近才包括了HTML。总的来说现在主要包括以下技术:

1. 学习如何编程。

这当然是最基本的黑客技能。如果你还不会任何编程语言,我建议你从Python开始。它设计清晰,文档齐全,合适初学者入门。它是一门很好的入门语言,并且不仅仅只是个玩具;它非常强大、灵活,也适合做大型项目。我有一篇 Python评价详细说明这点。好的 教程 可以在Python网站得到。(译者:比较好的中文Python站点可能是http://pythonrecord.51.net。)

Java也是好的入门语言。它比Python难得多,但是生成的代码速度也快得多。它同时也是一种优秀的计算机语言,不止是用来入门。

但是注意,如果你只会一两门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个程序员的水平——你需要学会如何以抽象的方式思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种截然不同的语言。

如果要做一些重要的编程工作,你将不得不学习C语言,Unix的核心语言。 C++与C非常其他类似;如果你了解其中一种,学习另一种应该不难。但这两种都不适合编程入门者学习。而且事实上,你越避免用C编程,你的工作效率会越高。

C非常有效率,节约你的机器资源。不幸的是,C的高效是通过你手动做很多底层的管理(如内存)来达到的。底层代码都是复杂极易出现bug的,会使你花极多的时间调试。如今的机器速度如此之快,这通常是得不偿失——比较明智的做法是使用一种运行较慢、较低效率,但大幅节省你的时间的语言。因此,选择Python。

其他对黑客而言比较重要的语言包括 Perl和 LISP。 Perl实用,值得一学;它被广泛用于动态网页和系统管理,因此即便你从不用Perl写程序,至少也应该学会看。许多人使用Perl的理由和我建议你使用Python的理由一样,都是为了避免用C完成那些不需要C高效率的工作。你会需要理解那些工作的代码的。

LISP值得学习的理由不同——最终掌握了它时你会得到丰富的启迪和经验。这些经验会使你在以后的日子里成为一个更好的程序员,即使你实际上很少使用LISP本身。

当然,实际上你最好五种都会(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客语言外,它们还代表了截然不同的编程思路和方法,每种都会让你受益非浅。

这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你,书本和上课也不能作到(最好的黑客中,有许多,也许 几乎都是自学成材的)。你可以从书本上学到语言的特点——只是一些皮毛,但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要作到 (一)读代码及(二)写代码。

学习如何编程就象学习用优美的自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,再读些,再写点…… 如此往复,直到你的文章达到你体会到的范文的简洁和力量。

过去找到适合阅读的好的代码是困难的,因为几乎没有大型程序的源代码能让新手练手。这种状况已经戏剧性地发生变化;开放源代码软件,编程工具和操作系统(全都由黑客写成)现在已经随处可见。让我们在下一个话题中继续讨论……

2. 得到一个开放源代码的Unix并学会使用、运行它。

我假设你已经拥有或者能使用一台个人电脑(今天的孩子们真幸福 :-) )。新手们能够朝学习黑客技能迈出的最基本的一步就是得到一份Linux或BSD-Unix的一种,安装在个人电脑上,并运行它。

没错,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你无法读到它的源代码,也不可能修改它。尝试在运行DOS或Windows或MacOS的机器上学习黑客技术,就象是带着脚镣学跳舞。

除此之外,Unix还是Internet的操作系统。你可以学会上网却不知道Unix,但你不了解Unix就无法成为一名Internet黑客。因此,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此一直很不高兴,但Unix和Internet之间的联系已是如此之强,甚至连Microsoft也无可奈何。)

所以, 安装一套UNIX——我个人喜爱LINUX但还有其他种类的(是的,你可以同时安装Linux及DOS/Windows在同一电脑上)。学习它,使用它,配置它。用它在Internet上冲浪。阅读它的源代码。修改它的源代码。你会得到比在Microsoft操作系统上更好的编程工具(包括C,LISP,Python及Perl)。你会觉得乐趣无穷,学到在你成为大师之前意识不到的更多的知识。

想知道更多关于学习Unix的信息,访问 The Loginataka。

想知道如何得到一份Linux,访问 我在哪里可以获得Linux。(译者:对于中文读者来讲,最简单的方式未过于前往附近的D版/正版光盘店。)

你可以在 www.bsd.org找到BSD Unix的求助及其他资源。

我有写一篇关于 Unix和Internet基础的入门文章。

(注:如果你是一个新手,我不推荐自己独立安装Linux或者BSD。安装Linux的话,寻求本地Linux用户组的帮助;或联系 Open Projects Network。 LISC维护着一些 IRC频道,在那里你可以获得帮助。)

3. 学会如何使用WWW和写HTML

黑客文化建造的大多东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对非黑客的普通人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的),你就需要学习掌握Web。

这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML, Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先完成一个主页。(网上有很多好的教程; 这是一个。)

但仅仅拥有一个主页不能使你成为一名黑客。 Web里充满了各种网页。大多数是毫无意义的,零信息量垃圾——界面时髦的垃圾,注意,垃圾的水准都类似(更多信息访问 The HTML Hell Page)。

要想有价值,你的网页必须有内容—— 它必须有趣或对其它黑客有帮助。这是下一个话题所涉及的……

4. 如果你不懂实用性的英语,学习吧。

作为一个美国人和一个以英语为母语的人,我以前很不情愿提到这点,免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是英语是黑客文化和Internet的工作语言,你需要懂得以便在黑客社区顺利工作。

这一点千真万确。大概1991年的时候我就了解到许多黑客在技术讨论中使用英语,甚至当他们的母语都相同,英语对他们而言只是第二语言的时候;据我知道的报导,当前英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于类似的原因,英文技术书籍的翻译通常不令人满意(如果有翻译的话)。

Linus Torvalds,一个芬兰人,用英语注释他的代码(很明显这对他来说不是凑巧)。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。
黑客文化中的地位

象大部分不涉及金钱的文化一样,黑客王国靠声誉运转。你设法解决有趣的问题,但它们到底多有趣,你的解法有多好,是要由那些和你具有同样技术水平的人或比你更厉害的人去评判的。

相应地,当你在玩黑客游戏时,你得认识到你的分数主要靠其他黑客对你的技术的评价给出(这就是为什么只有在其它黑客称你为黑客时,你才算得上是一名黑客)。这个事实常会被黑客是一项孤独的工作这一印象所减弱;也会被另一个黑客文化的禁忌所减弱(现在逐渐减弱但仍强大):拒绝承认自我或外部评估与一个人的动力有关系。

特别地,黑客王国被人类学家们称为一种奉献文化。 在这里你不是凭借你对别人的统治来建立地位和名望,也不是靠美貌,或拥有其他人想要的东西,而是靠你的奉献。尤其是奉献你的时间,你的创造和你的技术成果。

要获得其他黑客的尊敬,基本上有五种事情你可以干:

1. 写开放源代码软件

第一个(也是最集中的和传统的)是写些被其他黑客认为有趣或有用的程序,并把程序源代码提供给整个黑客文化使用。

(过去我们称之为“free software (自由软件)”,但这却使很多不知 free 的精确含义的人感到困惑。现在我们很多人,根据搜索引擎网页内容分析至少有2:1的比率,使用“ open-source”software(开放源代码软件)这个词)。

黑客王国里最受尊敬的偶像是那些写了大型的、好用的、具有广泛用途的软件,并把它们公布出去,使得每人都在使用他软件的人。

2. 帮助测试并调试开放源代码软件

黑客也尊敬那些使用、测试开放源代码软件的人。在这个并非完美的世界上,我们不可避免地要花大多数的开发时间在调试阶段。 这就是为什么任何有头脑的开放源代码的作者都会告诉你好的beta测试员(知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布中的bug,并且愿意使用一些简单的诊断工具)象红宝石一样珍贵。 甚至他们中的一个能判断出哪个测试阶段是延长的,哪个是令人精疲力尽的噩梦,哪个只是一个有益的小麻烦。

如果你是个新手,试着找一个你感兴趣的正在开发的程序,做一个好的beta测试员。你会自然地从帮着测试,进步到帮着抓臭虫,到最后帮着改程序。你会从中学到很多,并且与未来会帮你的人结下友谊。

3. 公布有用的信息

另一个好事是收集整理有用有趣的信息做成网页或文档如FAQ列表,且让他们容易获得。

主要技术FAQ的维护者受到几乎同其他开放源代码的作者一样多的尊敬。

4. 帮助维护基础设施的运转

黑客文化(还有Internet的工程方面的发展,就此而言)是靠自愿者运转的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成——管理mail list,新闻组,维护大型软件库,开发RFC和其它技术标准等等。

做这类事情的人会得到很多尊敬,因为每人都知道这些事情是十分花时间又不象编程那样好玩。做这些事情需要奉献精神。

5. 为黑客文化本身服务

最后,你可以为这个文化本身做宣传(例如,象我这样,写一个“如何成为黑客”的正面的教程 :-) )(译者:不知道Barret把它翻成中文算不算?)。这并非一定要在你已经在这个圈子呆了很久,因以上四点中的某点而出名,有一定声誉后才能去做。

黑客文化没有领袖。精确地说,它确实有些文化英雄、部落长者、历史学家和发言人。若你在这圈内呆的够长,你或许成为其中之一。记住:黑客们不相信他们的部落长者的自夸的炫耀,因此大举追求这种名誉是危险的。与其奋力追求,不如先摆正自己的位置等它自己到你的手中——那时则要做到谦虚和优雅。

黑客和书呆子(Nerd)的联系

同流行的迷思相反,做一名黑客并不一定要你是个书呆子。但它确实有帮助,而且许多黑客事实上是书呆子。做一个深居简出的人有助于你集中精力进行十分重要的事情,如思考和编程。

因此,很多黑客都愿意接受“书呆子”这个外号,更有甚者使用更尖刻的“geek(怪人)”一词并引以为豪—— 这是一种宣布他们独立于主流社会的声明方式。访问 The Geek Page 参加更多的讨论。

如果你能集中足够的精力做好黑客工作同时还能有正常的生活,这很好。现在作到这一点比我在1970年代是新手的时候要容易的多;如今主流文化对技术怪人要友善的多。甚至有越来越多的人意识到黑客通常是很好的恋人和配偶的材料。

如果你因为生活上不如意而迷上做黑客,那也没什么——至少你不会分神了。或许以后你会找到自己的另一半。

风格的意义

重申一下,作为一名黑客,你必须进入黑客精神之中。当你不在计算机边上时,你仍然有很多对黑客工作有帮助的事情可做。它们并不能替代真正的编程(没有什么能),但很多黑客都那么做,并感到它们与黑客的本质存在某些基本的连系。

* 学会流畅地用母语写作。尽管程序员不能写好文章的错误看法相当普遍,但是有令人惊讶数目的黑客(包括所有我知道的最棒的)都是不错的作家。
* 阅读科幻小说。参加科幻小说讨论会。(一个碰到黑客和未来会成为黑客的人的好方法)
* 学禅,并且/或者练功习武。(精神修炼看来是惊人相似。)
* 练就能分析音乐的听觉,学会鉴赏特别的音乐。学会玩某种乐器,或唱歌。
* 提高对双关语、文字游戏的鉴赏能力。

这些事情,你已经做的越多,你就越是天生做黑客的材料。至于为什么偏偏是这些事情,原因并不完全清楚,但它们都涉及用到左-右脑能力的综合,这似乎是关键所在(黑客们既需要清晰的逻辑思维,有时又需要偏离逻辑跳出问题的表象)。

最后,还有一些不要去做的事情。

* 不要使用愚蠢的,哗众取宠的ID或昵称。
* 不要卷入Usenet(或其他地方的论坛)的骂战。
* 不要自称为“cyberpunk(网络叛客)”,也不要浪费时间和那些人打交道。
* 不要让你寄出的Email或张贴的帖子充满错误的拼写和乱七八糟的语法。

做以上的事情,只会招来嘲笑。黑客们个个记忆超群—— 你将需要数年的时间让他们忘记你犯下的错误。

网名的问题值得深思。将身份隐藏在虚假的名字后是骇客、解密者、d00dz 及其他低等生物幼稚愚蠢的行为特点。黑客不会做这些事;他们对他们所作的感到骄傲,而且乐于人们将作品与他们的 真名相联系。因此, 若你现在用假名,放弃它。在黑客文化里它会令你你失败的。

其它资源

Peter Seebach 维护着一个非常好的 Hacker FAQ,专给那些不懂如何与黑客打交道的经理看的。如果Peter的站点不能访问,下面这个 Excite搜索应该有一份拷贝。

我也著有 黑客文化简史。

我写了一份 大教堂与市集,对于Linux及开放源代码文化现象有详细的解释。我也在这个话题上进一步阐述导致的结局—— 开拓智域。

Rick Moen写了一份很好的关于 如何运转一个Linux用户组的文档。

我和Rick Moen合作完成了另一份关于 提问的智慧的文章,可以让你事半功倍的获得帮助。

如果你想知道PC、UNIX及Internet基本概念和工作原理,参考 The Unix and Internet Fundamentals HOWTO。

当你释放出一个软件或为其打补丁,试着按 软件发行惯例 HOWTO去做。(以上的提到的文章的中文版大多都可以在www.aka.org.cn和www.linuxforum.net找到。)

FAQ(常问问题解答)

问:你能教我做黑客吗?
问:那么,我要如何开始?
问:我得什么时候开始学?现在会不会太迟了?
问:要学多久才能学会黑客道?
问:Visual Basic及Delphi是好的入门语言吗?
问:你能帮我“黑”掉一个站点吗?或者教我怎么黑它?
问:我怎么样才能得到别人帐号的密码?
问:我如何入侵/查看/监视别人的Email?
问:我如何才能在IRC聊天室里偷到频道op的特权?
问:我被黑了。你能帮我避免以后再被攻击吗?
问:我的Windows软件出现问题了。你能帮我吗?
问:我在哪里能找到可以与之交流的真正的黑客?
问:你能推荐一些有关黑客的好书吗?
问:成为一名黑客我需要擅长数学吗?
问:我该从那种语言学起?
问:我需要什么样的机器配置?
问:我得因此憎恨和反对Microsoft吗?
问:但开放源代码软件不会使程序员丢饭碗吗?
问:我要如何开始?哪里有免费的Unix?

问:你能教我做黑客吗?

答:自从第一次发布这份文档,我每周都会收到一些请求,(频繁的话一天几封)要我“教会他们做黑客”。遗憾的是,我没有时间和精力来做这个;我自己的黑客项目,及我作为一个开放源代码倡导者的四处奔波已经占用了我110%的时间。

即便我想教你,黑客也依然基本上是一项自行修炼的的态度和技术。当真正的黑客想帮助你的时候,如果你乞求他们一汤匙一汤匙“喂”你的话,你会发现他们不会尊重你。

先去学一些东西。显示你在尝试,你能靠自己去学习。然后再去向你遇到的黑客请教特殊的问题。

如果你发E-mail给一位黑客寻求他的帮助,这是两件首要记住的事情。第一,写出来的文字显得懒且粗心的人通常非常懒于思考且非常马大哈,不能成为好黑客—— 因此注意拼写正确,使用正确的语法及发音,否则你可能会无人理睬。第二,不要试图要求回复到一个ISP帐号,而那个帐号与你的发信地址不同。这样做的人一般是使用盗用帐号,不会有人有兴趣为虎作伥帮助窃贼的。

问:那么,我要如何开始?

答:对你而言最佳的入门方式也许是去参加LUG(Linux用户组)的聚会。你可以找到在 LDP的综合Linux信息页面上找到类似的组织;也许有一个在你家附近的,而且非常有可能与一所大学或学校挂钩。如果你提出要求,LUG成员兴许会给你一套Linux,当然此后会帮你安装并带你入门。

问:我得什么时候开始学?现在会不会太迟了?

答:你有动力学习的时候就是好时候。大多数人看来都是在15-20岁之间开始感兴趣的,但据我所知,在此年龄段之外的例外也是有的。

问:要学多久才能学会黑客道?

答:这取决于你的聪明程度和努力程度。大多数人只要他们专注,就能在18个月到2年之间学会一套令人尊敬的技能。但是,不要以为就此结束了;如果你是一个真正的黑客,你要用你的余生来学习和完善你的技术。

问:Visual Basic及Delphi是好的入门语言吗?

答:不,因为他们不是可移植的。他们不是那些语言的开放源代码实现,所以你被限制在厂商选择支持的那些平台里。接受这样一种垄断局面不是黑客的态度。

Visual Basic特别糟糕。它是Microsoft的私有语言这个事实就足够让它脸面全无,不像其他的Basic,它是一种设计糟糕的语言会教给你坏的编程习惯。

其中一个坏习惯是会依赖于单一厂商的函数库、控件及开发工具。一般而言,任何不能够支持至少Linux或者一种BSD,或其他第三方操作系统的语言,都是一种不适合应付黑客工作的语言。

问:你能帮我“黑”掉一个站点吗?或者教我怎么黑它?

答:No。任何读完这份FAQ后还问这个问题的人,都是无可救药的蠢材,即使有时间指教我也不会理睬。任何发给我的此类E-mail都会被忽略或被痛骂一顿。

问:我怎么样才能得到别人帐号的密码?

答:这是骇客行为。滚得远远的,白痴。

问:我如何入侵/查看/监视别人的Email?

答:这是骇客行为。在我面前消失,混蛋。

问:我如何才能在IRC聊天室里偷到频道op的特权?

答:这是骇客行为。去S吧,冥顽不灵的家伙。

问:我被黑了。你能帮我避免以后再被攻击吗?

答:不行。目前为止,每次问我这个问题的,都是一些运行Microsoft Windows的菜鸟。不可能有效的保护Windows系统免受骇客攻击;太多缺陷的代码和架构使保护Windows的努力有如隔靴搔痒。唯一可靠的预防来自转移到Linux或其他设计得至少足够安全的系统。

问:我的Windows软件出现问题了。你能帮我吗?

答:当然。进入DOS方式,然后键入“format c:”。你遇到的任何问题将会在几分钟之内消失。

问:我在哪里能找到可以与之交流的真正的黑客?

答:最佳办法是在你附近找一个Unix或Linux的用户组,参加他们的聚会。(你可以在Metalab的LDP站点找到一些指向用户组的链接。)

我过去曾说过不能在IRC上找到真正的黑客,但我发觉现在情况有所改变。显然一些真正的黑客的社区像GIMP及Perl,也有IRC频道了。)

问:你能推荐一些有关黑客的好书吗?

答:我维护着一份Linux Reading List HOWTO,也许你会觉得有用。 Loginataka也很有意思。

关于Python的介绍,请访问在Python站点上的 入门资料。

问:成为一名黑客我需要擅长数学吗?

答:不用。黑客道很少使用常规的数学或算术,不过你绝对需要能逻辑性地思考和进行精密的推理。

尤其是你不会用到微积分或电路分析(我们把这些留给电子工程师们 :-) )。 一些有限数学(包括布尔代数,集合论,组合数学,图论)的背景知识会有帮助。

问:我该从那种语言学起?

答:HTML——如果你还不懂的话。市面上有一大堆的封面精美,宣传得天花乱坠的 糟糕的 HTML书籍,不幸的是很少有好的。我最喜欢的是 HTML: The Definitive Guide。

但 HTML 不完全是一种编程语言。当你准备开始编程时,我推荐从 Python起步。你会听到一大群人推荐 Perl,并且 Perl 依然比 Python 流行得多,但是难学得多且(以我之见)设计得不是很好。

C 确实重要,但它要比 Python 或 Perl 难多了。不要尝试先学 C。

Windows用户不要满足于 Visual Basic。它会教给你坏习惯,而且它不可以移植,只能在Windows下运行。避免它。

问:我需要什么样的机器配置?

答:过去个人电脑能力相当不够并且内存小,结果给黑客的学习过程设置了人为的障碍。不过一段时间以前开始就不是这样了;任何配置比一台 Intel 486DX50 好的机器都有足够的能力进行开发工作,X,及 Internet 通讯,同时你现在买的最小的磁盘都大得富足了。(依Barret之见,现在要至少Pentium 166MMX才够。)

选择用来学习的机器时重要的一点是注意配件是否是Linux兼容的(或BSD兼容,如果你选择学 BSD)。同刚才提到的一样,大多数现在的机器都是符合的;唯一的值得注意的区域在于 modem和打印机;有些具备为Windows设计的配件的机器不会在Linux下工作。

关于硬件兼容性有一个FAQ;最新版本在 这里。

问:我得因此憎恨和反对Microsoft吗?

答:不,你不必如此。不是因为Microsoft不令人讨厌,而是因为黑客文化早在 Microsoft出现之前就存在了,且将在Microsoft成为历史后依然存在。你耗费在憎恨Microsoft的任何力气不如花在爱你的技术上。写好的代码—— 那会相当有效地打击Microsoft又不会让你得到恶报应。

问:但开放源代码软件不会使程序员丢饭碗吗?

答:看起来不太可能——目前为止,开放源代码软件产业似乎创造了更多的就业机会而不是减少就业机会。如果写一个程序比起不写来是纯经济收益的话,那么在写完后,程序员应该得到报酬不管程序是否是开放源代码。并且,无论写出多么“免费自由”的软件,都存在更多对新的,定制的软件的需求。我有这方面更多的论述,放在开放源代码 网站资料中。

问:我要如何开始?哪里有免费的Unix?

答:在本份文档的某个地方我已经提到过何处可以得到最常用的免费Unix。要做一名黑客,你需要自立自强,以及自学能力。现在开始吧……

  • September 18th, 2009 19:09:39
  • By Daniel Wang
  • Comments (0)

身不由己

身不由己

我要离开你,
让你独自郁闷、
唠叨和吵闹,
还有痛苦与愤怒。
我要离开你,
让你固执地走下去,
让你独自在抱怨中走下去。
过去、现在、将来,你都不能放弃。
我要离开你,让你无法控制!

但我却总是身不由己。

现在,当看着镜中的我,
那是我吗? —-
那个呆滞、愚蠢、古板而冷漠的家伙。

– 梅丽莎.麦金托什.布朗


我是一个条内存

我在一台台式电脑里工作,但是我记不得我是从哪里来的,是什么牌子,因为我健忘。我的上司是cpu大哥,他是我们的老大。都说他是电脑的脑子,可是我看他的脑子实在是太小了,比我还要健忘。每天他总是不停的问我,某某页某某地址存的是什么?我总是不厌其烦的告诉他,可是不出一秒钟他又忘记了,又要问一遍,一次我说大哥你烦不烦,你就不能记住点有用的东西?他说“内存兄弟,我有苦衷啊,每天都在不停地做题,头晕眼花的,我也难啊。”

其实我不愿意跟他计较,因为他脑子小,思维也很简单。虽然说他是我的上司,可是每次睡觉醒来,他连要干什么都不记得了,总是急急忙忙地找BIOS兄弟,“嘿,哥们,今天干什么来着”。BIOS总是很不耐烦地把每天必做的工作说一遍,然后就去睡觉了。接下来就轮到我和 CPU 哥瞎忙了。

在机箱里的兄弟中,我最喜欢硬盘。他脑子大,记得东西多,而且记得牢。他说话的速度很慢,而且很少说错,这说明他很有深度,我这么感觉。CPU也这么想,不过他很笨,每次都忘了硬盘是谁。开机自检的时候总要问∶“嘿,那家伙是谁?” “ST!”我总要重复一遍。

硬盘很喜欢忧郁,我觉得象他这样忧郁的人不适合做技术活,迟早会精神分裂的,但是他不信。

其实睡着的时候我总是把几乎所有的东西都忘记掉,但是我从来都不会忘记朋友。有一块地方叫做CMOS,那是我记忆的最深处,保存着硬盘、光驱的名字。有些东西应该很快忘掉,而有些东西应该永远记得。我在梦中总是这么想着。

BIOS是一个很奇怪的家伙,他老是睡觉,但是却总是第一个醒过来。让我们自检、启动,然后接着睡觉。我知道如果我在 CMOS里头把BIOS Shadow选项去掉,他就睡不成了,但是看着他晕晕乎乎的样子,也就不忍心这么做了。他对人总是爱搭不理,没有什么人了解他。但是这次硬盘恋爱的事,却使我重新认识了他。

那是很久以前的事了,机箱里似乎来过一块笔记本硬盘,很可爱,说实话我也喜欢她。不过现在除了记得他可爱,别的都忘记了。这就是我比硬盘幸运的地方,我把所有应该忘记的都忘记了,但是他却什么都记得。

自从笔记本硬盘走了之后,硬盘就变得很不正常。每次他的磁头经过一些地方的时候,我们都能感觉到电流很不正常。

“硬盘这是怎么了?”我问CPU。

“谁是硬盘?”

我就知道和CPU没有办法交流,倒是 BIOS没好气地说∶“那个傻瓜恋爱了”。我不知道什么是恋爱,因为我记不住东西,似乎有一些人或者事在我生命中留下过痕迹,但是我都轻率地把他们忘记了。

BIOS对我说∶“对你来说记忆太容易了,所以你遗忘得更快,生命中能够永刻的记忆都带着痛楚。”我不懂,但是我知道BIOS曾经被刷写过,那时他很痛,象要死了一样。我的记忆是轻浮的,不象他们……我很羡慕他们,因为他们拥有回忆,而我们有,从此我也学会了忧郁,因为我在 CMOS 里面写下了“忧郁”两个字。

硬盘一天比一天不对劲,终于有一天,CPU 对问说∶“下条指令是什么来着?” 我一看,吓了一跳∶“format”

“是什么?”CPU 很兴奋,这个没脑子的家伙。

我还是告诉了他, 我不知为什么这么做。

硬盘犹豫了很久,终于说了一句 Track 0 bad,Disk unusable。

电停了,很久很久,我在黑暗中数着时钟……

一个月后硬盘回来了,也许最后的挣扎也没有使他摆残酷的命运,他被低格了。他什么也不记得了,如同一个婴儿,我们很难过,但是这未必不是一件好事,他以后不用痛苦了。

为了恢复数据,笔记本硬盘回来了。“Hi,ST”,她说,“你不认识我了?”硬盘没有说话,似乎低格对他的伤害很大。过了一会,他说∶“对不起,好象我们没有见过……”。

笔记本硬盘显得很伤心,我能感觉到她带泪的电流。“想不到连你也这么健忘”。

“哦……”。硬盘没有回答。

我很难过,笔记本硬盘的心里依然记着他,他却把一切都忘了,而那正是他最不希望忘却的。究竟是幸运,还是痛苦,我说不上来,只是觉得造化弄人,有一种淡淡的悲凉。

这时从 BIOS 传来一阵奇怪电流,我感觉到硬盘的表情在变化,由漠然到兴奋,由兴奋到哀伤,由哀伤到狂喜……

“IBM,你回来了……”。

……

后来 BIOS 对我说,其实他并没有睡觉,自从硬盘把那些文件藏起来以后,他就到会有这样的结局,于是偷偷地把其中一些文件放到了备份里。

“幸好我是DUAL BIOS,虽然藏得不多,还足够让他想起来……”。

我想BIOS保存这些东西的时候一定很疼,当我问他“为什么这么做”时,BIOS轻描淡写的说∶“呵呵,我们是朋友嘛”。

嗯,朋友,永远的朋友……

———————–
转载,来源未知


我是一个硬盘

在一个普普通通的台式机里工作。别人总认为我们是高科技白领,工作又干净又体面,似乎风光得很。也许他们是因为看到洁白漂亮的机箱才有这样的错觉吧。其实象我们这样的小台式机,工作环境狭迫,里面的灰尘吓得死人。每天生活死水一潭,工作机械重复。跑跑文字处理看看电影还凑活,真要遇到什么大软件和游戏上上下下就要忙的团团转,最后还常常要死机。

我们这一行技术变化快,差不多每过两三年就要升级换代,所以人人都很有压力而且没有安全感。每个新板卡来的时候都神采飞扬踌躇满志,几年光阴一过,就变得灰头土脸意志消沉。机箱里的人都很羡慕能去别的机器工作。特别是去那些笔记本,经常可以出差飞来飞去,住五星级的酒店,还不用干重活,运行运行word,上网聊聊天就行了。 但我更喜欢去那些大服务
器,在特别干净明亮的机房里工作。虽然工作时间长点,但是福利好,24小时不间断电ups,而且还有阵列,热插拔,几个人做一个人的事情,多轻松啊。而且 也很有面子,只运行关键应用,不象我们这里,什么乱七八糟的事情都要做。不过我知道,那些硬盘都很厉害,不是SCSI,就是 SCSIII Fibrechannel,象我这样IDE的,能混到工作站就算很不错了。

我常常想,当年在工厂里,如果我努力一下会不会也成了一个SCSI?或者至少做个笔记本硬盘。但我又会想,也许这些都是命运,不过我从不抱怨。内存就常常抱怨,抱怨他们主板部门的复杂,抱怨他如何跟新来的杂牌内存不兼容,网卡和电视卡又是如何的冲突。

我的朋友不多,内存算一个。他很瘦的而我很胖,他动作很快,而我总是很慢。我们是一起来这台机器的,他总是不停地说,而我只是听,我从来不说。

内存的头脑很简单,虽然英文名字叫Memory,可是他什么Memory都不会有,天大事睡一觉就能忘个精光。我不说,但我会记得所有的细节。他说我这样忧郁的人不适合作技术活,迟早要精神分裂。我笑笑,因为我相信自己的容量。

有时候我也很喜欢这份工作,简单,既不用象显示器那样一天到晚被老板盯着,也不用象光驱那样对付外面的光碟。只要和文件打交道就行了,无非是读读写写,很单纯安静的生活。直到有一天……

我至今还记得那渐渐掀起的机箱的盖子,从缺口伸进来的光柱越来越宽,也越来越亮。空气里弥漫着跳动的颗粒。那个时候,我看到了她。她是那么的纤细瘦弱,银白的外壳一闪一闪的。浑身上下的做工都很精致光洁,让我不禁惭愧自己的粗笨等到数据线把我们连在一起,我才缓过神来。开机的那一刹那,我感到了电流和平时的不同。后来内存曾笑话我,说我们这里只要有新人来,电流都会不同的,上次新内存来也是这样。我觉得他是胡扯。我尽量的保持镇定,显出一副很专业的样子,只是淡淡的向她问好并介绍工作环境。

慢慢的,我知道了,她,IBM-DJSA220,是一个笔记本硬盘,在老板朋友的笔记本里做事。这次来是为了复制一些文件。我们聊得很开心。她告诉我很多旅行的趣闻,告诉我坐飞机是怎么样的,坐汽车的颠簸又是如何的不同,给我看很多漂亮的照片、游记,还有一次她从桌子上掉下来的历险故事。而我则卖弄各种网上下载的故事和笑话。
她笑得很开心。
而我很惊讶自己可以说个不停。

一个早晨,开机后我看到数据线上空荡荡的插口。她一共呆了7天。后来,我再也没有见过她。我有点后悔没有交换电子邮件,也没能和她道别。不忙的时候,我会 一个人怀念伸进机箱的那股阳光。

我不知道记忆这个词是什么意思,我有的只是她留下的许多文件。我把它们排的整整齐齐,放在我最常经过的地方。每次磁头从它们身上掠过,我都会感到一丝淡淡的惬意。

但我没有想到老板会要我删除这些文件。我想争辩还有足够的空间,但毫无用处。于是,平生第一次违背命令,我偷偷修改了文件分配表。然后把他们都藏到了一个秘密的地方,再把那里标志成坏扇区。不会有人来过问坏扇区。而那里,就成了我唯一的秘密,我常常去看他们,虽然从不作停留。

日子一天一天的重复,读取写入,读取写入……我以为永远都会这样继续下去,直到一天,老板要装系统却发现没有足够的空间。他发现了问题,想去修复那些坏扇区。我拒绝了。很快,我接到了新命令∶格式化!

我犹豫了很久 ……

track 0 bad,disk unusable

——————————–
转载,出处未知


揭开”同学聚会”所谓的真实面目

【转】揭开”同学聚会”所谓的真实面目 http://timnew.posterous.com/untitled-41610

有钱有势,混得很得意的同学巴不得的天天同学聚会,在精神上压倒男同学,在肉体上征服女同学,将同学时期的意淫变成现实。而比较落魄的同学则害怕同学会上见面,精神上受到摧残不说,还要作为得意同学炫耀财势的一个用来作比较的道具,心里也许还有个小小的奢望,那就是那些混得好的同学能不能帮上自己一把,其实这是幻想,那些混得好的同学之所以乐衷于开同学会,就是来看你现在的落魄和女同学们的艳羡的!!而同学聚会只不过是又一次的表演罢了。

1、 同学聚会的首义者以外地归来者居多,往往已经混得有几分人样。多年衣锦夜行,憋屈得厉害,这回当然在同窗前显摆显摆。他希望来的人越多越好,聚会前夜说不定还要精读《毛主席回韶山》。

2、 当年有些姿色的女生这回一定会脸上精描细抹,衣柜里千挑万选。如果是提前知道消息的,铁定还要饿上几天,争取能穿进那件卡腰的高级套裙。

3、 抢着买单的那位多半当年穷得叮当响,或者成绩不佳。他要告诉大家,象我这样的也是可以混出来的,你们不要老眼光看人。他一定是开车来的。好车。并且他一定很愿意送每一位同学回家,一副情深义重不忘旧谊的样子。

4、 话少的同学并不是老成持重,而是因为经历平淡且混得不好。大家谈论的新潮名词或根本不懂,或掌握不熟练。怕说错了出丑,便索性不开牙。

5、 有富不显,有车不开,有单不抢。这种人多半当年就很风光,经过了也就不在乎了。当然也有当年就很糗,现在还能不动声色的。这类人比较可怕,要么城府很深,能成大事。要么虚伪狡诈,品质可疑。

6、 带老婆出席的有两种情况:一是老婆长得比较争气,带出来有面子。二是老婆担心他跟旧相好的擦出什么火花,一同出席能起警卫和监督之效。出门之前,必要叮嘱老婆几句:“平时怎么糟践我都没关系,但这次一定要给我留面子,我说话别插,不许瞪眼,记得要给我盛饭,递杯子……”

7、 去了趟美国的一定会找机会说出来,谈资本,谈纽约,最后来一句:“其实也就那样。”这边赶紧接茬谈起欧洲八国游,谈人文,谈艺术。那边去过澳洲的插不上话,急得抓耳挠腮。这时你要是能淡淡地来一句:“不才在伦敦呆了八年。”保管当场鸦雀无
声。

8、 当了官的接手机绝不肯离席,拿着电话指挥秘书或部属开展工作,声音不大但是足以保证在座的都能听到。语气较平时蛮横且坚决,表情略显威严且带一丝厌倦,一副运筹帷幄很懂管理的样子。

9、 官当得太大的人不会轻易参加同学聚会。

同学聚会,心眼多的钻被窝,心眼少的在唠嗑,不多不少在乱摸,一个心眼的在唱歌,缺心眼的往死喝!!:(


[转]小规模低性能低流量网站设计原则

小规模低性能低流量网站设计原则
作者: Fenng

到处都是什么大规模啊,高流量啊,高性能之类的网站架构设计,这类文章一是满足人们好奇心,但看过之后也就看过了,实际收益可能并不大;另外一个副作用是容易让人心潮澎湃,没学走先学跑,在很多条件仍不具备的情况下,过度设计、过度扩展(高德纳大爷也说过,”过早优化是万恶之源”),所以,这里反弹琵琶,讨论一下小规模、低性能、低流量的网站该如何搞法。

如果站点起步阶段可能就是一台机器(或是一台虚拟机,比如 JobsDigg.com ),这个时候,去关注什么数据拆分啊,负载均衡啊,都是没影子的事情。很多大站点的经验绝不能照搬,辩证的参考才是硬道理

拥抱熟知的技术
动手构建站点的时候,不要到处去问别人该用什么,什么熟悉用什么,如果用自己不擅长的技术手段来写网站,等你写完,黄花菜可能都凉了。所以,有现成的软件组件可用,就不要自己重新发明轮子。人家说 Python 牛,但自己只懂 PHP ,那就 PHP 好了,如果熟悉 .net ?,那也不错。用烂技术不是丢人的事情,把好技术用烂才丢人。

架构层次清晰化
起步的阶段应该清楚的确定下来架构的层次。如果都搅和在一起,业务一旦扩增开来,如果原有的一堆东西拆不开就是非常痛苦的事情。

Web Server <--> (AppServer)<-->Cache(eg. Memcached)<-->DB层次清晰化的一个体现是(以 LAMP 架构为例):即使只有一台机器,也应该起个 Memcached 的实例,效果的确非常好–一般人儿我不告诉他…不要把什么都压到 DB 上,DB 一旦 I/O 压力走到磁盘上,问题要暴露出来是很快的。没错,DB 本身也会利用自己的 Cache,但 DB 的Cache 和 Memcached 设计出发点毕竟不一样。

数据冗余? 有必要
很多人并不是数据库设计专家,如果应用要自己设计表结构什么的,基本都是临时抱佛脚,但三个范式很多人倒是记得牢,这是大多数小型 Web 站点遇到的一个头疼事儿,一个小小的应用搞了几十个表… 忘掉范式这个玩意儿! 记住,尽可能的冗余数据,你在数据层陷入的时间越多,你在产品上投入的就会越少。用户更关心的是产品的设计。

前端优化很重要
因为流量低,访客可能也不多,这时候值得注意的是页面不要太大,多数流量低的站点吃亏就在于一个页面动辄几兆(我前两天看到一个Startup的首页有4M之大,可谓惊人),用户看个页面半分钟都打不开,你说咋发展? 先把基本的条件满足,再去研究前端优化。

功能增加要谨慎
不是有个 80/20 原则么? 把最重要的精力放在最能给你带来商业价值的地方。有些花里胡哨的功能带来很大的开销,反而收效甚微。记住,小站点,最有价值的是业务模式,而不是你的技术有多牛。技术是为业务服务的,不要炫技。
有些网站不停的添加功能,恰恰是把这些新功能变成了压死自己的稻草。

从开始考虑性能
这一点是可选的,但也重要。设计应用的时候在开始就应考虑 Profile 这件事情。一套应用能否在后期进行有效优化和扩展,很大的程度限制在是否有比较合适的 Profile 机制上。需要补充的是,对性能的考虑必然要把有关的历史数据考虑进来。另请参见网站运维之道的容量规划以及其它小帖子。

好架构不是设计出来的
这是最后要补充的一点。好的架构和最初的设计有关系,但最重要的是发展中的演化:

发展–>发现问题–>反馈–>解决问题(执行力)–> 改进->进化到下一阶段–新问题出现(循环)有些站点到了某个阶段停足不前,可能卡在执行力这个地方,来自用户的反馈意见上来了之后,没有驱动力去做改进。最后也是死猪不怕开水烫了。最怕听到的就是”业务不允许”的托词,试想如果不改进业务都没了,那业务还允许么? 其实就是一层心理障碍。

这篇文章有浓重的山寨风格,所以,你不要太认真。如果在用短、平、快的方式构建某些山寨网站的话,可参考其中对你有益的点,不赞同的地方可以直接忽视掉,就没必要费力留言进行争论了。

–EOF–

•好的业务模式(产品) + 很好的技术 = 大赚钱
•好的业务模式(产品) + 能用的技术 = 也赚钱
•差的业务模式(产品) + 好的技术 = 赚吆喝(现在的SNS就差不多这样了)
•差的业务模式(产品) + 差的技术 = 自己浪费资源


The Linux initating order

Linux 启动顺序 转自 http://blog.csdn.net/Tcrazyalways/archive/2008/11/27/3391243.aspx

了解了Linux的启动顺序有利于在系统启动时enable/disable各种系统服务

Linux 启动顺序:
1、 BIOS自检
2、 运行系统内核并检测硬件
3、 运行系统的第一个进程init
4、 init读取系统引导配置文件/etc/inittab中的信息进行初始化
/etc/rc.d/rc.sysinit——系统初始化脚本
/etc/rc.d/rcX.d/[KS]*——根据运行级别配置服务
/etc/rc.d/rc.local———执行本地特殊配置
其它———不同运行级别的特殊服务

Linux启动运行init程序来启动相关程序初始化,与启动相关的一个概念是运行级,运行级是操作系统当前运行的级别,在不同运行级别上可以定义属于该运行级的启动程序,系统的运行级别可以在/etc/inittab文件指定,与运行级相关运行程序通过从源/etc/rc.d/init.d下链接到目的/etc/rcX.d,这里X为系统的默认运行级别,因此,默认的启动脚本放在/etc/rc.d/init.d下。

# 缺省的运行级,Linux用到的级别如下:
# 0 – 停机(千万不要把initdefault 设置为0 )
# 1 – 单用户模式
# 2 – 多用户,但是没有 NFS
# 3 – 完全多用户模式
# 4 – 没有用到
# 5 – X11
# 6 – 重新启动 (千万不要把initdefault 设置为6 )
#

对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x 下的安全模式类似。
2 为多用户模式,但是没有NFS 支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。
例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是 X11 ,进到 X Window 系统了。
6 为重启,运行 init 6 机器就会重启。

如何让系统在启动是运行指定程序,根据启动顺序中的第四步,有两种方式。
一种方式是根据运行级别配置服务。
一种方式是执行本地特殊配置。
举例,任务在启动是运行命令cvslockd:
方式一:
1. 建立自启动脚本/etc/rc.d/init.d/cvslockd,内容为:
#!/bin/bash
/usr/local/bin/cvslockd

设置文件的属性为可执行:
#chmod +x /etc/rc.d/init.d/cvslockd

2. 查看计算机运行级别,在文件/etc/inittab里看到id:5:initdefault:,则此系统运行级别为5。
3. 到/etc/rc5.d目录下,把你要执行的可执行文件做一个软连接,而且在命名的时候要以大写S字母开头,S之后的数字大小代表执行顺序的先后,数字越大越后执行。
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc5.d/S100cvslockd
#ln -s /etc/rc.d/init.d/cvslockd /etc/rc0.d/K20cvslockd

方式二:
在/etc/rc.d/rc.local 添加 exec /usr/local/bin/cvslockd
该方式是在最后启动cvslockd。


The Game!

Just for fun!


中国民众为什么不以偷税为耻?

原来除了每个月上缴的个税外,我们还通过各种渠道来纳税。不知道其他人如何,我倒是觉得缴税像被旧时恶吏抢劫一样!
以下内容为【转载】,请读者保持自己的主观判断力!

自1995年以来,我国税收连续12年平均增长20%,而GDP平均每年增长却不到10%。全国城乡居民的收入增长,更低于GDP的增长率。

2008年,全球性的金融危机使许多民营企业经营不善,有的甚至陷入困境而亏损倒闭。不少城乡居民下岗,失去了收入来源。而截止到2008年7月,全国财政收入依然比2007年增长了26%。

我们为什么要向政府交税?政府为何要收税?中国的税负重不重?对如此快速增长的税收的使用,中国公民能不能监督,如何监督?

去年底以来,北京的NGO——传知行社会经济研究所编写了《2008公民税权手册》一书,从税收的本质和来源入手,向公民进行“税”的普及,并探讨目前中国税收体制存在的问题。

《人物周刊》就此采访了该书主编岑科。

受访人 岑科(研究员) 采访人 实习记者 陈小瑾

1 我们习惯说“中国政府养活了13亿人口”,而你这本书则希望所有人有一个意识:是我们交的税养活了政府。为什么?

岑科:税的本质,是民众购买政府(人员)服务的费用,体现的是政府和民众的一种交易关系。当然,在历史上——包括今天的世界,某些国家的政府和民众之间确实不是交易关系,而是某种程度的掠夺与被掠夺关系。但那不是正常的税收关系。

在现代文明社会,政府的角色是向民众征收税款,同时负责提供一系列公共物品和公共服务——如公路、街道、路灯、治安、消防、环保等等。本质上,这是一种交易。

2 一般中国人理解个人所得税是交税,其实这笔税收只占中国税收总额的10%不到,我们还交了哪些税?

岑科:在中国,所有商品标价实行的是含税价,价格中包括了国家征收的税金——可能是增值税、消费税、营业税,也可能是城建税和教育费附加等。所以无论是谁,每买一件商品就在向政府交一次税。例如如果花100元买瓶化妆品,其中除14.53元的增值税外,还包含25.64元的消费税和4.02元的城建税。

此外,人们在生活中的其他场合也可能交税。例如,当你的工资收入超出一定标准,要交个人所得税;如果你买车,要交车辆购置税、车船税;如果你买房、卖房,要交相关的契税、印花税,也可能交营业税、个人所得税和土地增值税;如果你办企业,从事生产经营活动,涉及的税就更多,包括增值税、消费税、营业税、资源税、城建税、房产税、城镇土地使用税等。可以说,在生活中的每一天、每一个角落,税收无处不在。人人都是纳税人。

3 “税负的痛苦取决于政府如何使用税收,而不是税率”,这句话如何理解?

岑科:发达国家中有高税国家,比如瑞典,税收占GDP的51%;也有低税国家,比如美国,税收占GDP的27%。但无论是高税还是低税,他们税收的主要用途都是社会保障、教育、医疗保健和公共服务。这些功能一般占税收总额的70%-80%。而政府成本相对较少。

中国正相反,这些支出的比例只占税收总额的25%,大量税收被政府自身消耗了。

在全国政协大会上,九三学社中央副主席、浙江大学教授冯培恩委员列举了公务用车消费、公款吃喝消费、公费出国消费、政府会议消费、“政绩工程”和办公楼建设消费、能源和资源消费等六种政府消费行为,例如公务用车方面,他调查认为我国目前大约有400万辆公车,每年消耗超过2000多亿元,其中真正用于公务的约占1/3;公费出国、公款吃喝每年各不少于2000个亿,至少吃掉一个三峡工程。

4 和这些高税率发达国家相比,中国的税收只占GDP的20%,为什么人们却怨声载道?

岑科:发达国家名义税率高,实际税率低,因为公民纳税后享受的教育、医疗、社会保险水平很高,相当于交的税得到了返还。中国正好相反,老百姓纳税之后,政府提供的福利很少,很多人看不起病、上不起学,缺乏生活保障,所以,名义税负低,但是实际税负很高。

瑞典、丹麦和法国等国家的财政支出中,社会保障、教育、医疗保健和一般公共服务是花钱最多的4项,共占去全部支出的近80%。尤其是社会保障,在这 3个国家的财政支出中都占到42%以上的比例;而教育、医疗支出,合计起来也都占到总支出的25%以上。这意味着民众的社会福利保障非常高。把社保、教育、医疗、环保等公共事务支出加起来,占到了瑞典等国财政支出的绝大部分。

中国的9亿农民,基本没有医疗保障。医院的条件越来越好,但收费也越来越高,许多农民因此看不起病。教育方面,年年有考上大学却因缴不起学费而无缘读书的报道。中国有上千万的失业者,得到失业救济的微乎其微……与发达国家相比,中国民众享受的公共福利很少。

5 书中阐释了一些概念比如“明税”(就是法律规定由税务部门征收的税款)、“暗税”(就是政府在税务部门之外,通过其他渠道向老百姓取得的收入,例如各种罚款、收费)等,在中国,除了税收以外,政府还有哪些其他收入?

岑科:主要还有行政收费、土地出让收益、垄断行业收入等。

根据2005年经济普查,中国的行政收费中,工商、质监、城管、消防、交通5个部门,加上法院,共收取费用9724亿。全体政府部门大约收取行政费用12500亿。

除了行政收费以外,中国的地方政府还有一个重大的预算外收入,就是土地。根据国土资源部统计,2006年全国的土地出让金约为7700亿,与土地出让价格相比,农民的土地补偿金额大约只有10%。政府净收益7000亿。

在正常税收之外,政府还掌握了一些垄断企业,包括电信、石油、金融等。这些垄断企业通过政府保护的垄断地位而获得巨额利润。我们估计其数额在2000亿元以上。

各种暗税加起来,足以让中国的名义税负增加10个百分点。

6 2009年全国公务员考试报名者多达百万,供需比年年提高,你怎么看待这种公务员报考的火热现象?

岑科:公务员成为社会就业的热点不是好事。道理很简单:政府不直接创造财富,而企业却是实实在在地创造价值;官员致力于讨好上级,企业家却要讨好消费者。当更多的就业者希望从市场转向政府时,表明这个社会的创业环境正在恶化,生产财富的动力正在衰减。

7 你的书中写到,“如果纳税人对税收使用无法监管,那么纳税并不光荣”。如何理解?我知道其实现实生活里人们的交税意识很弱,常有偷税漏税发生。

岑科:不能监管的税收,严格地说不是“税收”,而是掠夺。被掠夺当然谈不上光荣。

这是由现行税收体制的弊端决定的。现代国家都有一整套的公民授权、监督、运作税收的方案,而中国的税收往往是行政部门主导,制定和征税成为行政部门不可控制的权力。

单方面制定的税收,不可能具有权威性和正当性。只有政府首先依照合法的程序,在纳税人同意的情况下,确定税收的种类和额度,然后才谈得上公民的纳税义务。对于未经合法程序确立的税收,公民本不应有任何纳税的义务,更谈不上什么纳税意识。

对此,人们往往采取消极抵抗的方式,就是尽可能偷税漏税,或者是为了少缴税向有关官员行贿。既然纳税人被强制征税,他们也就普遍不以偷税为耻,也不以行贿为耻。

8 中国公民对税收的审核和监督如何体现?

岑科:从名义上看,全国人民代表大会是中国的最高国家权力机关,是代表中国人民的民意实体,帮助纳税人监督政府的收支活动,促使政府高效廉洁地为纳税人服务,是它的职责。

到目前为止,我国的各级人民代表大会也对政府财政预算进行审议,但从具体议程看,离“监督政府如何花钱”这一目标相差很远。例如每年开人代会时,代表们审议政府预算的时间最多一天,甚至不到一天;会议公布的预算报告只有几页纸,内容大而化之;具体的预算文本不发给代表,由代表团长掌握;有些地方虽把详细文本发给代表,但会后都要收回;等等。这样的审议,不可能达到了解政府支出状况、提出改进意见的效果。

人民代表大会尚且如此,其他方式能起到多大监督作用呢?

9 和国外相比,中国的财政支出情况如何?

岑科:有研究指出,在过去几年中,与美国、法国、瑞典、丹麦等发达国家用于公共福利的财政支出(占总支出的80%到90%)相比,中国财政的公共福利支出非常欠缺(约占总支出的50%)。2003年,美国公共医疗投入占GDP的比重是13.9%,而中国只有4.5%;2005年,我国的公共教育投入占GDP的2.8%,排在世界各国的末尾——比非洲穷国乌干达还低。

在行政开支方面,以2006年为例,中国政府的预算内行政支出占财政总支出的比重为18.73%,远远高于日本的2.38%、英国的4.19%、韩国的5.06%、法国的6.5%、加拿大的7.1%以及美国的9.9%。如果加上预算外支出,有学者估计,中国政府的实际公务支出至少占政府全部支出的 30%以上。

10 中国现行税制体系的弊端有哪些?

岑科:不经纳税人同意,政府单方面制定税收种类和税收标准,并强制征收,而且不向公众提供对于税收的申诉和抗辩渠道,是目前中国税制最核心的问题,也是所有其他税收问题产生的根源。

在税收立法上,存在着行政法规多、国家立法少,以行政立法取代国家立法的状况,结果是,征税的行政本位突出,没有国家宪法和法律作为依据,使得税收的合法性不足。在实际运作中,有大量“暗税”,其运作过程非常混乱和随意。

这些弊端,导致了严重的后果:第一,政府的征收成本特别高,达到了西方国家平均水平的10倍左右;第二,税收的额外负担很高,对企业、纳税人造成了极大困扰。在税收征管大军的征稽下,大多数企业穷于应付,不得不采取消极抵制的方式与政府周旋;第三,一些暴力执法式征管和变相征管等政府不良行为,恶化了官民关系和社会秩序,对政府形象造成了巨大损害。

(来源:南方人物周刊)