Thursday, February 12, 2009

 

Some notes on Computation Library - 1

1.
from http://cmsir.scinese.com/2008/02/22/using-lapack-in-c/

Using LAPACK in C/C++

Fortran是科学计算的标准语言,无论是性能,库,还是普及程度都勿庸置疑地是老大。作为最古老的计算机语言,这么多年的积累让其它语言几乎没可能改变这一局面。可惜我在大学时只学了C,这得怪我们系里的课程安排……无奈之下,很多时候只能C + Fortran Library来干活。最常用的Fortran库无疑是Lapack,主要就是各种对角化。这篇文章里就把C/C++中调用Lapack的每一个细节都记录下来,主要目的是让我下次编程时可以不用重复回忆(我已经吃过一次亏了,花了一晚上时间来研究怎么在C/C++里面链接dll这种白痴问题)。如果有朋友也碰到类似的问题,而又碰巧看到了这篇文章(这是小概率事件,google虽然触角无数,但也难以伸到我这网络深处的小地方),也许可以帮你少走些弯路。

言归正传。首先我们假设工作的平台是Windows(bs我吧……)。C++编译器我只对Microsoft Visual C++ 8.0(即Visual Studio 2005)和MinGW gcc/g++比较熟悉,所以也就只包括这两种。如果你想从源码编译Lapack,那么还得有一个Fortran编译器(如果是这样,建议直接用Fortran)。对于大部分懒人,从网上直接Down一个编译好的库就可以了。例如去下面这个网页:

LAPACK & BLAS precompiled binaries for Win32 platform

http://www.fi.muni.cz/~xsvobod2/misc/lapack/

注意下载shared version,static version需要Intel Fortran 9.0的一些库支持。此外,别忘了下载底下的头文件。按照C的惯例,把库文件解压到lib目录,头文件到include目录。库当中除了lapack_win32.dll还有一个叫blas_win32.dll的东西,包括Lapack需要的一些函数,就我们的目的而言,直接无视它就可以。

在开始进入如何编译链接这种糙活之前,先简单介绍几个最常用的矩阵对角化库函数。就我个人而言,要对角化的几乎都是Hermitian矩阵,或者是实对称矩阵。前者一般zheev函数足够解决问题,后者通常是dsyev。在include目录下都有相应名字的头文件。遗憾的是,这些函数的声明都相当吓人,动辄十来个参数,一个一个对着是看什么意思都能把人累死。所以地球上就有好心人做了wrap,在声明上再加一层接口,大大简化了我们的使用。比如

LAPACK/ARPACK Header Files

http://www-heller.harvard.edu/people/shaw/programs/lapack.html

由于是跨语言调用,虽然我们使用的是二进制级的代码,但仍然需要注意C/C++和Fortran底层的一些差别。第一点区别是数据类型。简单地说,C/C++中的单精度浮点数float类型相当于Fortran的real,double相当于doublereal。而Fortran中的complex和doublecomplex则可以用C++标准库中的std::complex及std::complex代替。C里面需要我们自己定义一个struct:

typedef struct {
double r, i;
}doublecomplex;
除了数据类型的转换,最主要的一点是二维数组在内存中的布局:C/C++是按行存放的,而Fortran是按列存放的。对于实对称矩阵或者Hermitian矩阵,问题倒也不大。一般来说只要在把C/C++数组传入Lapack函数前做一个转换即可。

写完了程序,我们可以开始编译了。为了让编译器能找到头文件,需要在选项中添加头文件的搜索目录。对Visual C++,相应的命令行选项是/I。例如说Lapack的头文件都在C:\LAPACK\include,那么就必须在微软的C++编译器cl调用时加上命令行参数 /I “C:\LAPACK\include”。由于IDE的发达,用VC++干活的人几乎不可能直接面对命令行;在Visual Studio里面,打开工程属性对话框,在配置属性->C/C++->常规->附加包含目录中设置一下即可。对于gcc,命令行参数是-IC:\LAPACK\include。

下面的问题是如何在C程序中链接dll。如果你用的是MinGW,恭喜你,这个问题几乎不成为一个问题:只要在最后链接时命令行里添上dll文件名(下面会有一个完整的例子)。如果是Visual C++,事情要复杂一些。光一个dll文件Visual C++还链接不动,你还得有一个lib文件来告诉它dll中都导出(export)了哪些函数。还有一个选择是在代码里面用LoadLibrary这个API动态加载。当然,无论如何微软在这件事上都做得比较煞笔,但是我们没有办法,只好照办之。注意,刚才下载的压缩包中已经包含了相应的lib文件了,但是我自己用下来发现里面的lapack_win32.lib有些问题。没有办法,我们只好DIY到底,自己generate一个。从dll生成lib网上这类工具很多,如果你偷懒也可以直接我自己做的。做好了lib以后,先在工程属性对话框->配置属性->链接器->常规->附加库目录里设置一下你的dll和lib的所在地(正常人会把它们放在一块)。然后配置属性->链接器->输入->附加依赖项中把要链接的Lib文件名写上(这里就是lapack.lib)。这些都设置好了,如果你的程序没有问题,编译应该能够通过了。

Friday, January 02, 2009

 

Why I maintian such a blog

下面的这些转贴至少解释了其中一部分原因

1.
from http://blog.farmostwood.net/65.html


在未名上看到一片帖子:《兀自燃烧的句子》。里面长长的一段话,让人忍不住想抄下来:

……我却由此想到另外一个问题:引文和原文之间确实有非常奇妙的关系。有时我们在一篇冗长的论文中发现了作者引用的诗句,就像在一片沙漠中发现一片绿洲那样感到惊喜。这些诗句显得那么生动、新鲜,于是我们迫不及待地去寻找整首诗,结果往往会大失所望。在一片单调的绿色中,几丛灌木并不会引起我们的兴趣。当然,被人引用的往往都是佳句,但恐怕也不能排除那种猝然相见宛然如在目前所产生的心理效果。……而在另外一些时候,我们从我们读过的书中摘抄各种我们觉得精彩、聪明、奇妙的语言,希望它们永远地为我们所拥有,永远保持着鲜亮的光泽,并在适当的时候被我们用来装点自己枯燥无味的文字。然而,这些被分割出来的句子似乎并不能经得起反复的阅读,它们很快就枯萎了,褪去了先前的光泽,像被嚼干的口香糖一样无味。当我们想占有它们的时候,我们已经失去了它们。而原书则依然焕发着蓬勃的生机。借用博尔赫斯的说法,为了保存一滴晶莹剔透的水珠,不忍心看它干涸,我们还是把它放回大海吧,虽然我们只能观看而不能拥有大海。本雅明说过他想写一本完全用引文构成的书,我对他只有佩服的份,因为他竟然自己收集水滴来创造一片大海。

好一个“猝然相见,宛然如在目前”!那是阅读时最大的快乐之一。那些优美、精准、凝练的文字透过别人的引用,叮叮咚咚地落在心上,仿佛在眼前打开了一扇朝着花园却只能瞥见繁华一角的窗子一般,让人心旷神怡而又意犹未尽。——尽管经验告诉我们那花园的全貌也许其实要令人失望的。于是想起我的那个被无数人探询的签名档,“跟个孩子似的相信”。“真棒啊”,他们说,“哪里找来的?”当年我也这么探问锦来着,锦笑着说:“相信我,全文里就那么一段是精华。”我去找了,果然。

然而那些“兀自燃烧的句子”们还是让我一次又一次惊喜着。我由衷地喜爱它们,期望自己也能将文字驯服的那样妥帖。常常眼睁睁的看着自己写下的句子呈现出自己不能容忍的乏味和愚蠢,于是陷入无边的沮丧里,可是越是意识到不能满足,那种审美上的强迫感就越是强烈。在这种情况下,阅读那些清新的、生机勃勃的、像冬日的阳光一样明亮温暖的文字就变得梦境般的美妙起来。如果大海离得太过遥远,那么至少请允许我透过一滴水珠来幻想海风的味道吧。

“忽然间竟有强烈想要说话的欲望,但其实说什么?似乎曾有句子唇边含过,可惜含久了,便忘了它的长短字数,生出一点不是非说不可的犹豫。都是自己每日长久温习反复咂嗼的甘与苦,真出了口,跟假的似的,反倒有过分言重流于做作的嫌疑。于是只有沉默,接着沉默,我总是失语在真正最想说话的时刻。”

——《跟个孩子似的相信》

2.
from http://blog.csdn.net/pongba/archive/2009/02/16/3896311.aspx

为什么你应该(从现在开始就)写博客收藏
(一)为什么你应该(从现在开始就)写博客

用一句话来说就是,写一个博客有很多好处,却没有任何明显的坏处。(阿灵顿的情况属于例外,而非常态,就像不能拿抽烟活到一百岁的英国老太太的个例来反驳抽烟对健康的极大损伤一样)

让我说得更明确一点:用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。Note:碎碎念不算思考、心情琐记不算思考、唠唠叨叨也不算思考、没话找话也不算思考,请以此类推。

下面是我个人认为写一个长期的价值博客的最大的几点好处:

1) 能够交到很多志同道合的朋友。我自己既写博客,也读别人的博客,在这个时代,对于生活中的绝大多数人来说,拓宽朋友圈子的途径几乎只有一个,通过网络,而如何在网络中寻找到气味相投的朋友,如何判断别人和自己是否有共同语言?显然,通过天天在SNS上碎碎念的那些日记是难以做到的。我佩服的一些朋友几乎全都是长期用博客记录想法的人,因此,和他们即便不打照面,也是心照不宣。即便素未谋面也能坐下来就聊得热火朝天。

为什么博客在结交志同道合的朋友方面的潜力要远胜于原始的交谈方式?很简单,第一,博客无地域限制,整个互联网上从A到B只有一个点击的距离,而传统的建立朋友圈子的方法则受到地域限制。第二,也是更重要的一点,即如果按照以前结交朋友的方式,需要互相聊天,交流观点,然后才逐渐熟悉起来,这需要一个较长的过程,而且更糟糕的是,当你遇到另一个陌生人,又要把整个过程重复一次,表达你已经对老友表达过的那番想法。可博客却做到了“一次表达,无数次阅读”,当我看到一个写了好几年的博客,看完了之后我仿佛和这个人交谈了很久,用程序员们喜欢听的话来说就是,“博客极大地增强了话语的复用性”。

我曾在CSDN上写了近六年的博客,在一年半前建立了一个Google Groups(TopLanguage),由于我的博客的长期阅读者都是互相有共同语言的,因此这个Group一开始就热火朝天,而高质量的技术讨论则进一步吸引了更多的牛人的参与,雪球滚起来之后,就很难停下来了,将近一年半下来,从这个Group的讨论中我获益良多[1]。而对于非程序员朋友,科学松鼠会则是一个很好的例子。

2) 书写是为了更好的思考。我在《书写是为了更好的思考》里面详细总结了书写的好处,这里就不拷贝粘贴了。

3) “教”是最好的“学”。如果一件事情你不能讲清楚,十有八九你还没有完全理解。绝大多数人应该都知道在程序员行业面试官经常要求你讲解一个东西给他听,他会说他不懂这个东西(他如果真的不懂的话效果其实是最好的),而你的任务则是说到让他理解为止。

为了让一个不明白的人做到明白,你必须要知道从明白到不明白他究竟需要掌握哪些概念,这就迫使我们对我们大脑中整个的知识体系来个寻根究底,把藏在水面之下的那些东西统统挖出来,把大脑中的那些我们知道、但不知道自己知道的潜在概念或假设(assumptions)都挖出来,把它们从内隐记忆拉扯到外显记忆中。因为只有完全知道、并知道自己知道一切来龙去脉的人,才能真正把一件事情讲得通通透透。

但是,你可能会怀疑,那除了能够讲清楚之外,弄清自己到底知道哪些东西还有其他什么好处吗?如果没有其他好处,那我又何必费这个劲呢?我又不当老师。

TopLanguage上的一位朋友sagasw曾经讲了这样一个小故事:据说在某个著名软件公司里,开发组的桌上会放着一只小熊,大家互相问问题之前,先对着小熊把问题说一遍,看能不能把问题描述的清晰,基本上说的比较有条理以后,答案也就随之而来了。当然,你不一定要对小熊说,你可以在大脑中虚构一个听众,一个不懂行的听众,然后你说给他听。这是可行的,我经常在路上用。不过如果你能坐下来,我建议你还是说给实际的听众听——即写下你的思考,因为书写是更好的思考。

我们的绝大多数知识在绝大多数时候都隐藏在潜意识中,其实我们意识的窗口很小,我们的工作记忆只能容纳寥寥数个条目(记得那个“看你能够记住屏幕上同时闪现的多少个数字”的flash小游戏吗?),我们平时所作的推理过程很大部分都是自动的,发生在潜意识中,而我们只能感知到一些中间结论。不信你回忆一下你在和别人讨论问题的时候有多少次觉得“反正就是这样,我感觉得到它是对的,但是你问我,我也说不清到底怎么回事”,对此你不觉得很奇怪吗?如果你都不能从逻辑上支持你的结论,你怎么就能确信它是对的呢?仅仅因为你的直觉强烈地告诉你它是对的?那如果旁边有另一个人,他和你持相反的观念,而他的直觉也强烈地告诉他他是对的。这时候你又怎么想?“他的直觉错了,我的直觉是对的”?难道你这么自信你的直觉是世界上最可靠的?

我自己则是非常珍惜类似这样的机会,即当“我强烈地觉得它是对的,但我却说不出所以然来”,这时候往往是到大脑中翻箱倒柜的时候,弄清来龙去脉的时候,深入反思的时候,纠正一直以来错误的潜在前提假设的时候。另一方面,“我强烈地觉得这个说法有问题,但我却说不清它为什么有问题,到底哪有问题”,这也是一个极有意义的瞬间,它几乎总是意味着你对一个问题的认识有潜在的偏差,肯定是在你自己都没有觉知到的地方引入了一个潜在的假设、偷换了一个重要的概念,等等。而这种时候就是深入反思的时候,当你终于潜到问题的底层,触摸到问题的实质,把水面之下的冰山整体看清了的时候你会有一种通体舒泰的感觉。

为什么说以上这些?因为刚才说的是你必须等待这样的反思机会,但如果你选择经常总结自己的知识体系,并说出来给你的读者听,你就会发现你自己创造了这样的机会。如果我们平时不反思,我们觉得很多事情都是当然的,但结果如果要你一开口说给别人听,常常会发现事情就开始变得不那么明显了,你说着说着,就开始莫名其妙地发现自己需要用到“反正”这个词了。

于是,反思的机会就来了。

一旦你把自己潜意识里面的东西从幕后拉出来,你就有了面对并反思它们的可能,而不是任它们在幕后阴险地左右你的思维。很多时候我们的思路出了问题并不是我们不会反思,而是不知道自己的思维中有那些隐含的假设(assumptions),如果你只感觉到答案,却不知道你大脑得到这个答案之前做了哪些推理,你又怎么知道哪一环可能出了问题呢?另一方面,一旦你弄清了自己到底是怎么想的,离意识到问题就不远了,很简单的道理——如果别人和你争辩的时候总是只摆立场,你就很难和他辩,但如果他把自己的推理过程原原本本暴露给你,批判起来总是容易得多的。(也正因为这个原因有很多人总是把逻辑藏在背后,不敢暴露出来)

绝大多数时候其实我们都会不假思索地得出一些结论,就像上了发条的自动机,但其实我们并不知道这些结论到底怎么来的,在思维的背后到底发生了哪些事情,故而当我们发现我们的结论错了的时候,一头雾水,没法着手寻找到底在哪错了。如果你注意一下很多人的发言(论坛、博客等等),如果你把他们的发言分为“前提”、“假设”、“逻辑”、“结论”这四个部分,你会发现一大堆人只会不停地下结论,摆立场,却见不到这些结论或离场的前提、假设和个中逻辑,倒也不是他们不愿意写出逻辑,而是因为反思自己的思维过程实在是一件困难非常的事情,我们的推理过程很大一部分发生在意识的水面之下,只有当有了重要结论的时候这条逻辑链才会浮出来冒一个泡,让我们的意识捕捉到。更何况绝大多数时候我们用的其实并不是完整严密的逻辑思维,而是思维捷径。

去教一个完全不懂的人,则是一种最最强大和彻底的反思途径——因为他没有任何预备的知识,所以要让他弄懂你所知道的,你就必须彻底反思你的知识体系,弄清这座大厦的根基在什么地方,弄清它的骨架在什么地方,一砖一瓦到底是怎么垒起来的,你不能自己站在11层上,然后假设你的读者站在第10层,指望着只要告诉他第11层有那些内容就让他明白。你的读者站在第一层,你必须知道你脚下踩着的另外10层到底是怎么构造的。这就迫使你对你所掌握的、或之前认为正确的那些东西作彻彻底底的、深刻的反思,你的受众越是不懂,你需要反思得就越深刻。

4) 讨论是绝佳的反思。另一方面,很多时候我们并不是有机会说给完全不懂的人听,更大的可能性是说给同领域有一定基础的人听,这个时候并不代表就不能促使反思了,实际上,你会发现,如果你公开你的想法,几乎总能看到与你持不同意见的人,然后你通过比较你和他的观念之间的差别,会发现你们在一开始的思路上就存在差异,差异从哪里来的?在进一步讨论中你们就会不断地迫使对方拿出更深层次的理由,这同样也是一种非常有效地促使自己反思的方法,在讨论的过程中双方的理由自然会变得越来越深入,越来越接近问题的本质,一些平时难以注意到的深层面的差异性就会逐渐浮现出来,你也就多了一次难得的机会去审视自己的思维中到底存放了哪些错误的信息。

5) 激励你去持续学习和思考。如果你没有持续学习和思考的习惯,你的博客很快就会没有内容可写,就只能整点碎碎念或者转载,然后你就会失去读者,然后你就会关掉博客,然后一旦关掉博客之后你也就死了写博客的心,然后就少了一条激励你去思考和总结的途径,然后你变得更不高兴总结和思考,然后…

为了打破这个死循环,不要永久停止更新你的博客,就算你两个月,三个月都不写,只要你每篇都是写自己思考的产物,写有价值的东西,在互联网上,金子的确总是会发光的,因为有无数的信息聚合平台在期待这些有价值的内容,有搜索引擎为你的内容提供海量的潜在读者,有海量的人肉在手动挖掘和转载那些有价值的东西。我们所能做的最差的一个决策莫过于停止做一件没有任何坏处,却有一大堆好处的事情。

为了让你的博客有价值,你必须不断总结自己学习的结果,你必须不断思考,给出比别人深刻、独到的见解。这看起来有点本末倒置,但很快本和末就会正过来。

6) 学会持之以恒地做一件事情。很多人在生活中容易觉得迷失,不知道想要做什么,是因为没有一件能够持续地做的事情,用俗话来说就是没有主心骨。用积极心理学的话来说就是没有一件能够创造流体验的事情,而书写自己的思想则是一件容易产生流体验的事情,在书写的时候,特别是理性地书写的时候,大脑逐渐进入推理分析模块,一切不愉快的情绪,烦躁感都会逐渐消隐下去。不过前提是你得开始,并且坚持过一开始的困难期,以后的一切便成了习惯成自然。

7) 一个长期的价值博客是一份很好的简历。这里的“简历”并非是狭义上的求职简历,毕竟现在还没有到价值博客的时代,很多人写博客都是到处转载或者干脆碎碎念,正因此面试官未必拿个人博客当成了解一个人的更可靠窗口。这里的“简历”是指一个让别人了解自己的窗口,虽然我们未必做得到像罗永浩、Keso这样的博客,个人的影响力已经足以支撑出一份事业(牛博和5gme),但至少你会因此而结识更多的人,你的博客价值越高,你结识的人就越牛,跟牛人交流又会让你的眼界得到极大的开阔,打开一扇又一扇你原本不知道的门,于是你就变得更牛… 这是一个良性循环。

(二)怎么做到长期写一个价值博客

注意到我并没有说“怎么做到长期坚持写一个价值博客”,因为当思考和总结成为习惯之后,诉诸文字以及借助书写来进一步思考就变成了一件自然而然的事情,就变成了一件“因为你在思考和总结从而必须书写下来”的事情,博客就变成了副产品。

一开始的时候你是因为要写博客而去使劲地思考和总结,指望给出令人眼睛一亮的东西,到了后来,就变成了因为你习惯了思考和总结,因为你意识到书写是更好的思考,你就必须使你的想法成为文字。至此本和末就会各归原位,不再颠倒。

怎样做到长期写一个价值博客?也许有人会给出很多有趣有用的小技巧来提供动机和激励,譬如如何做SEO,如何鼓励读者留言等等,但是这些我都不想说,我只想说最最重要的,那就是:

让你自己成为一个持续学习和思考的人,并只写你真正思考和总结之后的产物,其他一切就会随之而来。

就像那句经常被人传阅的话:只做你最感兴趣的事情,钱会随之而来[2]。

这方面的具体例子大家可以留意一下,随处可见,就不一一举了。我想再重复一下的是,千万不要碎碎念,我能理解每个人都想偶尔发发牢骚的冲动,但是现在已经有了一个很好的窗口:twitter,所以立即停止在你的博客上碎碎念,阅读博客的人希望得到信息而非噪音。如果实在忍不住想碎碎念的话不妨换一下位置,这么来告诉自己:如果你看到别人博客来上这么一段,你会有兴趣看吗?

(三)可能出现的问题以及怎样应付

即便上文给出了N条写博客的理由,但有时候只要一条不写的理由就会让人停止做一件事情。所以我特别加上一节“可能出现的问题以及怎样应付”,《影响力2》[3]第五章雄辩地证明,“Much of Will is Skill”,意志力很大程度上来源于有正确的方法,而非天生。

1) 担心别人认为没有价值。事实是,你面临过的问题总会有人面临过,你独立思考了,别人没有,你的文章对他们就会有价值。当然,肯定会对某些人没有价值,他们早就知道了,但就算你再厉害,也总是有人比你厉害的,不能说因为这些原因就不记录你自己的想法了,你自己思考了之后理解得最深刻,就算有别人想过了,总有人没有想到的。况且,思考成了习惯,你的思考能力也会越来越强,你的文章也会越来越有价值。重复,无论你面临什么困惑,总会有很多人同样面临过,于是你苦苦思索之后的结果,肯定会对很多人有意义。

或者,你想通了之后觉得其实也很简单于是不愿意或者不好意思写了,但要知道,问题在想通了之后总是简单的,问题的困难程度不在于想通了之后还觉得有多难,而在于从你觉得它难到你觉得它简单需要耗费多少思维体力,你耗费的时间越长,说明有越多的人最终还是没有想明白(路越长走到底的人越少)。

最后,虽然我现在看一年前的文章觉得挺不成熟,但是如果没有那些不成熟的思考,也不会有现在更成熟的思考,我几年后来看现在写的东西,还是会觉得不成熟。

2) 担心想法太幼稚或有漏洞等等被别人笑话。人非圣贤。正是因为单个人的想法总是有漏洞,才值得拿出来交流(《书写是更好的思考》,讨论是绝佳的反思),被别人指出问题正是改进的空间,藏着掖着的想法永远不可能变得更成熟。

Much of intelligence is knowledge,有这么一个非常发人深省的经典心理学实验[4]:

将孩子们分成两组,通过给他们不同的阅读材料让一组相信智力是天生的,不可在后天改变的,另一组则让他们相信智力其实只是知识和技能的代名词,完全是后天习得的。接下来让他们做一组任务,那些被相信智力天生说的孩子,倾向于回避困难的任务,选择较容易的任务,这里的逻辑想必是这样的:如果做困难的任务,就增大了失败的几率,就在降低了自己在别人和自己心目中的智力的值。为了保护这个智力的值不被降低,应该避免那些有失败风险的项目。而另一组孩子则对于有挑战性的事情跃跃欲试,并且在失败的时候明显没有前者沮丧,因为失败也是学得新的东西,不管怎样都是“智力”的提高。

况且,只会批判乃至嘲笑别人的人是最不知道怎么建设的人,忽略他们。

3) 得不到激励。这其实是个最无聊的问题了,只有写碎碎念的博客才会面对“激励”的问题。如果写自己的总结,写自己独立的思考,那么书写下来、理解通透,本身就是一个极大的激励。就算放在自己的私密笔记本里面也一样有成就感。况且,如果你真做到了书写价值博客,那么绝对不用担心你的观点得不到传播,也许一开始会耗时长一点,但是这在任何事情上都是必要的初始阶段,Gmail小组的核心人物、FriendFeed创始人Paul Buchheit,和编程界名博Coding Horror的博主Jeff Atwood都曾经感叹过:Overnight success takes a long time ((1),(2)),不过对于价值博客来说,现在网络上的聚合类服务这么多,机器的、人肉的、半人肉的都有,情况又要好得多了,而且我相信情况还会越来越好。

4) 写不出来。这个问题也比较无聊,思考本不是一件急于求成的事情。长期订阅我的博客的朋友知道我一般发文频率在一个月三五篇,实际上有不少次我个把月也不发布文章,原因很简单,要么是有手头的事情要处理思考的时间被压缩了,要么是遇到比较大或者比较困难的问题需要长时间的思考和积淀,没有关系,如果没有想清楚就再想想,爱思考的人和不爱思考的人有一个本质的区别,前者在生活中总是挂着几个问题在大脑中,它们时常都会冒出来骚扰你一下,让你琢磨琢磨,不爱思考的则是没事不主动想问题,遇到问题还要先想想是否能找捷径(找人帮忙)解决。

无论如何,不用急于求成,在一个主题上深入下去思考,总能挖到别人挖不到的角落。你能让一个问题在大脑中停留的时间越长,就越是能够发现新的东西,一般来说,我认为有价值的问题我会让他在意识或潜意识中待短则一个星期,长则一个月(视问题大小而定),利用走路吃饭的时间琢磨(我发现很多我佩服的人也都有这个习惯),有时即便已经想通了写下来了发出去了,大脑仍然还是会在回味问题,还没有把它撤出潜意识,然后看到某篇文章或某本书的时候忽然又有所新的感悟。

能够把问题长时间停靠在潜意识中是一种技能,能够带来很大的好处,停留得越长你越琢磨得透彻,比别人看到的就越多。我们必须要带着问题的眼镜看待事物才能发现新的视角,否则就会出现视而不见效应,别的不说,广为人知的例子是阿基米德的“尤里卡!”,如果不是长时间琢磨着一个问题,一直把它放在思维中,是不会从洗澡领悟到“排水测体积”的,否则他洗了那么多年澡怎么不早发现呢?[5]

所以,如果你习惯了思考问题,就总会有东西写,先有思考,然后有总结,然后在总结中进一步思考。

当然你也可以试试把不成熟的想法写下来,试图整理成条理清晰的文字,然后看看能否在整理的过程中走得更远。这往往是可行的。比如这篇文章在我的简记里面原本其实只有三行字(包含大约十来个备忘关键词),而最初在我的大脑里面其实只有一个走路时冒出来的问题——为什么要写博客?

--

[1] 你可以看一下我收藏的一些精彩主题。

[2] 尽管我并不完全同意这句话本身,但它这种解决问题链上更基本环节的问题的精神是我赞同的。

[3] 《影响力2》这个名字起得很聪明,其实它并不是《影响力》的作者写的。

[4] 我忘了这则实验的出处了,但实验的精神是记忆犹新的,哪位同学记得原始出处的麻烦提醒我一下。

[5] 对于阿基米德这个故事的真实性是有争议的,毕竟几千年久远的事情谁弄得清呢。但是故事的道理是很本质的,我们平时也经常有类似的体验,加上阿基米德的“尤里卡”实在太出名了,所以我相信用用无妨。

Sunday, June 01, 2008

 

砂之迷图

生まれた日から人は旅して
遥かな星をいくつ数える
无限のきらめきは夜空の嗫き
迷い惑わされて风がさらつていく
ああ连命数える星に导かれ
ああ心の迷图をさまよい绕ける
梦の旅人

地平の果てに人影追つて
アシスの町探してみても
かすかな想い出が描く蜃气楼
迷い惑わされて砂がさらつていく
ああ连命变えてく流砂にまかれて
ああ心の迷图をさまよい绕ける
梦の旅人


かすかな想い出が描く蜃气楼
迷い惑わされて砂がさらつていく
ああ连命数える星に导かれ
ああ心の迷图をさまよい绕ける
梦の旅人

Tuesday, January 01, 2008

 

和子由渑池怀旧

人生到处知何似,
应似飞鸿踏雪泥。
泥上偶然留指爪,
鸿飞那复计东西。
老僧已死成新塔,
坏壁无由见旧题。
往日崎岖还记否,
路长人困蹇驴嘶。

Monday, December 31, 2007

 

Category of TeleStar's Notes in 2007


Tuesday, May 01, 2007

 

约翰·克里斯朵夫 (节选)

  圣者克利斯朵夫渡过了河。他在逆流中走了整整的一夜。现在他结实的身体象一块
岩石一般矗立在水面上,左肩上扛着一个娇弱而沉重的孩子。圣者克利斯朵夫倚在一株
拔起的松树上;松树屈曲了,他的脊骨也屈曲了。那些看着他出发的人都说他渡不过
的。他们长时间的嘲弄他,笑他。随后,黑夜来了。他们厌倦了。此刻克利斯朵夫已经
走得那么远,再也听不见留在岸上的人的叫喊。在激流澎湃中,他只听见孩子的平静的
声音,——他用小手抓着巨人额上的一绺头发,嘴里老喊着:"走罢!"——他便走着,
伛着背,眼睛向着前面,老望着黑洞洞的对岸,峭壁慢慢的显出白色来了。

  早祷的钟声突然响了,无数的钟声一下子都惊醒了。天又黎明!黑沉沉的危崖后
面,看不见的太阳在金色的天空升起。快要倒下来的克利斯朵夫终于到了彼岸。于是他
对孩子说:

  "咱们到了!唉,你多重啊!孩子,你究竟是谁呢?"

  孩子回答说:

  "我是即将来到的日子。"

Wednesday, February 21, 2007

 

いい日旅立ち

雪解け間近の 北の空に向かい
過ぎ去りし日々の夢をさけぶとき
帰らぬ人たち 熱い胸を過ぎる
せめて今日から一人きり 旅に出る
ああ 日本のどこかに
わたしを待ってる人がいる
いい日旅立ち 夕焼けを探しに
母の背中で聞いた歌を道連れに

岬のは外(ず)れに 少年は魚釣り
あおいすすきの小道を 帰るのか
わたしは今から思い出をつ作るため
砂に枯れ木で書くつもり さよならと
ああ 日本のどこかに
わたしを待ってる人がいる
いい日旅だち 羊雲を探しに
父が教えてくれた歌を道連れに

ああ 日本のどこかに
わたしを待ってる人がいる
いい日旅だち 幸せを探しに
子供のころに歌った歌を道連れに

This page is powered by Blogger. Isn't yours?