Categories
English

The Personal Analytics of My Evernotes

Jing Conan Wang

Aug. 09, 2013

I started to use Evernote since around 2011. Recently the number of notes in my Evernote account has surpassed 5000. To celebrate this milestone, I wrote some python scripts to visualize my evernotes.

The easiest way to get the Evernote data out is to use the official clients. Both the windows and the Mac Evernote official client can export data in ENEX format. Unfortunately, the development team of Evernote decides not to develop any linux client in the near future, which makes the data export in linux very hard. It may be possible to get the data out using the cloud APIs. But requesting an API key is too cumbersome for this small project.

Although it is the most convenient way, exporting data in ENEX format still has two pitfalls:

First, ENEX is a customized xml format, and it contains some characters, particularly ‘&nbsp’, that cannot be correctly recognized by lxml module in python. To address it, I wrote a script (XMLTOJson.py) to convert ENEX files to regular JSON files.

Second, ENEX file doesn’t provide information about the notebook a note belongs to. Fortunately, the Windows client provides a command-line program ENScript.exe that can export notebooks separately. I wrote a powershell script (export_evernote.ps1) to export the notebooks into a folder, in which each ENEX file corresponds to a notebook. Again I used XMLTOJson.py to convert the ENEX files in the folder into JSON files.

Each note is associated with two timestamps–1. the ‘Created’ time and 2. the last ‘Updated’ time.

Here is a plot of the number of notes I created in each year. Considering that only 7 months is covered, the total number for 2013 should be around 2000. From the plot, I was the most addicted to Evernote in 2012, during which I created over 2500 notes.

The following plot is the number of evernotes I updated in each year. The number of ‘updated’ notes was high in 2011, whereas the number is decreasing over the past two years. In 2011 and the first half of 2012,  I used a Mac Evernote client in my Macbook pro. After that, I switched to a Thinkpad x230 with Ubuntu 12.04, in which the only usable option is the web application (www.evernote.com). Updating notes using Mac client is much easier than the web application, which may explain my decrease of note updates.

 

The following plot visualizes the number of notes I created in every month. There is a welcome note whose ‘created’ timestamp is Oct. 19, 2009. However, I signed up Evernote in Jan. 7, 2011. Why the ‘created’ time for this welcome note is Oct. 19, 2009? I guess this date is the birthdate of Evernote, and the ‘created’ timestamp was deliberately set as the birthdate of Evernote.

The following figure is the number of ‘updated’ notes in every month. Obviously, I suddenly stopped to update notes from May 2015, which matches the time I switched from Mac to Ubuntu. The updates were somewhat recovered since Mar. 2013, because I began to use Evernote as my GTD engines. I need to update my task lists and checklists.

The following two plots visualize the ‘created’ notes and ‘updated’ notes in week level. The number of ‘created’ and ‘updated’ notes during the 12th-14th weeks of 2012 are soaring.  During this time, I was busily preparing for the application of Google Summer of Code 2012. The efforts paid off, I was finally selected into Google Summer of Code 2012 in which I had a very wonderful experience.

Evernote provides a feature to tag notes. For each note, you can add as many tags as you like. Usually I don’t use this feature manually, but when I clip notes from my mobile phone and RSS reader, which I often do, tags will be added automatically. The following figure shows the time of tagged notes. The x-axis is the ‘created’ time and each y-coordinate corresponds to a tag.

I was heavily addicted to Google Reader (GR) when it was alive. In 2011, I often read GR in my iphone using MobileRSS, which added ‘MobileRSS’ tags when I clipped articles. Later, I was irritated when the app asked me to pay the second time after I upgraded to a newer IOS, ignoring that I had already purchased a pro version. As a result, I switched to Newsfy, which does not add tags automatically. After GR was shutted down in July, I switched to feedly together with many other disappointed GR users.

From 2012, I started to add tags manually. One missing feature in Evernote is to assign importance to each note like gmail. I emulated this feature by tag notes with @TOREAD, @✭ and @✭✭.

In Evernote, a notebook is a collection of individual notes. The following figure shows a stacked area graph of numbers of noted I created in each month. I started to use notebook feature systematically after April 2012. Before April, 2012, I mostly used evernote as an archive of web pages and dump most of notes into one notebook.  ‘Programming’ is one of the first notebooks I created, which was divided into more sophisticated categories later.

The ‘cybersecurity’ notebook, which is related to my research, dominated in May and the beginning of June of 2012. From May, 2012 to Aug 2012, my focus shifted to ‘GSOC’ , ‘Programming’ and ‘Python’, which dued to my participation of Google Summer of Code 2012.

There is a visible gap in Sep, 2012 when I had a vacation to recover from demanding work in the summer (that summer was very busy for me). I am a fan of classical music. Even in this busy summer, there were still a considerably large number of ‘Music’ notes. The ‘GSOC’ notebook disappeared after the google summer of code officially ended at Sep. 2012. Considering the number of created notes, the four notebooks I used the most are ‘Python’, ‘Linux’, ‘Music’, and ‘others’. The ‘others’ notebook was created in June, 2013 to store miscellaneous notes.

The following figure shows the number of ‘updated’ notes in every month for each notebook. An interesting observation is that few notes in the ‘others’ notebook is updated despite its considerable large size. This observation indicates that I rarely review the notes in ‘others’ notebook. This bad habit should be improved in the future.

The following two figures show the number of ‘created’ and ‘updated’ notes in every week for each notebook. For most notebooks, although the number of ‘created’ notes doesn’t change significantly, the number of ‘updated’ notes increased rapidly in the 12th week of 2013. The reason is that I categorized many notes manually in that week.

The blog is inspired by Stephen Wolfram’s blog: The Personal Analytics of My Life.

I fully agree with Mr. Wolfram that personal data is very useful and everyone should log their own life as much as possible. Evernote is a good tool to achieve this goal.

Surely there is more information I can dig out. But the information in this article provides a good starting point.  The source code of this project is available at:

https://github.com/hbhzwj/VizEvernote

If you are interested, you can try to analyze your Evernote data using these codes. Any suggestion, bugfix or improvement is welcomed.

Categories
中文

小企业,大事业

我们常会听到这样一种说法:国有大型企业是中国经济的中流砥柱,个体经济,私营经济只是补充。自从国企改革之后,中国的国企越来越大,似乎这种趋势日趋明显。前些日子看到一个报道,120家央企的营业额和全国1000万家私营企业相当,也就是说,一家央企可以抵十万家私营企业。

在我看来,经济分为存量和增量两个部分。 存量对应的是技术已经完全成熟的产业,或者是资源垄断性的产业。这样的产业需要的是通过垄断来降低内耗,比如电力行业,汽车行业。 增量对应于正在蓬勃发展的产业,我们这个时代最明显的就是计算机和互联网工业。 中国的国营企业虽大,但是都是资源垄断性行业,或者政策垄断性行业。 而比较活跃的领域,国营经济都难以站住脚。所以有个说法是国营稳住存量,私营经济激发增量。

中国的私营企业发展模式不同于美国。 美国的企业终极发展目标是超大型企业,最终通过全行业垄断来提高生产效率。 中国的私营企业,更加适合走蚂蚁雄兵的中小型企业道路。 在现有的政策体制下, 一旦一个产业变得成熟,从增量变为存量,国营企业的政策性优势就会变得明显, 大型私营企业难以与之争风。

除了体制的因素外,下面两个因素也导致了中小型企业群的发展模式更加适合中国。

1. 中国劳动力过剩。 大型企业解决就业的能力不如中小型企业。 企业本身有自身的管理瓶颈, 一个超大型企业所雇佣的员工也不过数万。 世界500强全在中国也解决不了中国的就业问题。

2. 中国人生活方式的不同。 美国人的生活方式是高度“单一”的。 从波士顿到洛杉矶, 人们的生活方式完全一样。 开一样的汽车,吃一样的汉堡,买一样的衣服, 整个美国从东海岸到西海岸的差异甚至小于中国两个相邻的县城。 美国幅原之辽阔,并不亚于中国,美国拥有世界各地的移民,远多于中国的56个民族,那为什么会出现这样的情况呢?

这首先是因为集约型大工业需要广阔而单一的市场。 大工业时代普遍的商业模式是通过降价(甚至降至低于成本)来吸引顾客, 在资金链条断裂之前做到一定规模。在标准化的生产和物流下,随着规模的扩大,成本会逐渐降低,最终将低到有利可图。 沃尔玛的天天平价,Amazon免费物流,Google的各项免费服务, 说穿了都是这个模式。 规模在这个过程中至关重要。美国公司不会生产不能上规模的产品, 美国人民也买不到个性化的产品。 久而久之,美国人的生活方式就被大工业的熨斗熨成了平板一块。 另一个重要的因素是美国的历史较短,新移民由于在适应新的社会的过程中生活方式已经发生了改变,对于改变生活方式的抵触较少。

而与之相比较,中国人的生活方式就复杂而精致的多。 中国人,每到一个城市旅游,绝对少不了品尝当地的小吃。 而小吃的生意方式是美国的商人无法理解的。 夫妻开的小吃店,每天最多招待一百用户,怎么赚钱? 另一个例子,中国很多的手工艺品,比如绣品,工序多达数百,每年的销量也不多,这样的产品,是没有办法放到流水线上去的。 这样的情况下, 市场不可能由少数几家大型公司来垄断,而只能由小企业,个体户来满足。

 

有一个看法是,小企业因为缺乏规模效应会降低社会的生产效率,美国的大工业模式才是发展的唯一正途。 这就是为什么小煤矿都被整合成了大煤矿。 而中国的个体户十年来锐减三分之一。 确实小企业何个体户有自己的弊病, 比如生产单元过细导致信息流通不畅, 又比如企业过小导致没有能力负担改进生产工业的投资。 但是中国的国情决定了最为可行的道路是将这些小企业何个体户整合成为蚂蚁雄兵。 在中国,最有可能出现的大型私营企业不是面对消费者的企业,而是帮助小企业进行整合的企业。

这就是阿里有这么大的想象空间的原因。 美国的Amazon远比ebay成功, 自发性的个人集市在美国这个单一市场上难敌集约化的Amazon。 而在中国,情况就完全不同,淘宝上的数百万个体商户构成了一个有机的生态系统,这个系统是中国私营经济的微缩版。 阿里目前的目光,还是放在已经在互联网上的商户上。 但是一个事实是, 中国绝大多数小企业和个体户,还和互联网没有什么联系。 让这些中小企业何个体户们跟上信息时代的节奏, 将会是一个非常波澜壮阔的事业。

 

Categories
中文

【开源项目暑期实习】谷歌编程之夏 Honeynet Project

谷歌编程之夏Google Summer of Code是由谷歌赞助的针对开源社区的暑期活动。学生可以通过这个项目参与开源软件的开发,并且得到5000美金的报酬。对于学生来说是个很好的经历。

 

参加者条件:

必须是大学本科或者研究生在读(不包括五月即将毕业的,或者九月入学的同学)。对开源事业有浓厚的兴趣。

 

更多信息请见:

https://developers.google.com/open-source/soc/

 

Honeynet Project 是一个活跃的网络安全的开源社区。今年Honeynet Project也继续参加谷歌编程之夏。有兴趣的同学可以访问下面的网站,选择一个感兴趣的idea,然后和对应project的mentor联系,或在honeynet maillist中询问

 

http://www.honeynet.org/gsoc/ideas

如果有同学对于network malware simulation感兴趣的,可以与我联系。我的email是hbhzwj@gmail.com

 

更多信息请见

 

http://www.honeynet.org/gsoc/ideas#project8

 

http://people.bu.edu/wangjing/open-source/imalse/html/

 

http://people.bu.edu/wangjing/open-source/sadit/html/

Categories
中文

中国的旋律

回家的旅途是辛苦但是富有收获的,在路上读了两本书《激荡三十年》和《邓小平传》。在这里结合以前读的《沸腾十五年》一起写一个随想。

林军的《沸腾十五年》和吴晓波的《激荡三十年》是两本关于中国产业变革的好书。前者讲的是中国互联网的发展,而后者则宏观的讲述了中国自从改革开放以来的一部经济改革史和企业史。在我初读《沸腾》的时候并没有太多的震撼,但是当读完《激荡》一书之后,我对于《沸腾》一书中的许多史实有了全新的认识。同样的,在读完《邓小平传》一书后,我对《激荡》一书也有了更多的感悟。

单一产业的发展从来是离不开整个国家的经济形势和政策,尤其是在中国这一个动荡转型的国家。理解了中国发生了什么,我们才能更好的理解经济和互联网领域所发生的这一切。

计划经济的弊病已经是无需证明的事实。中国三十年的改革开放,就是国家统死到放权给市场的过程。邓小平和朱镕基两个人在其中扮演了决定性的作用,可以说,中国的改革是由邓小平一力促成,而由朱镕基具体施行的。

1978年三中全会到1992邓小平南巡是改革的上半场,由邓小平主导。92年至今是下半场,实际的改革路线在92年到2002年的十年间由朱镕基确立。

在中国这样传统而又古老的社会,改变人们的观念从来不是一个容易的事情。中国花了14年的时间才最终下定了决心市场改革,而在1970年代末的中国,只有少数人对改革的必要性有清醒的认识。所幸的是,邓小平是其中一位。

和毛泽东不同的是,邓小平少年留法的经历使得他具有国际化的视野,他非常的清楚中国的落后和西方先进技术的重要性,并且邓小平具有更加灵活的思维。在改革的早期,邓小平着力破除毛时代留下的对于阶级斗争的观念,向全社会灌输尊重科学规律的观念。中国从此进入了一个不信马列,而信科学的时代,高考恢复,文化事业百废待兴。这为后来的一系列改革铺好了路。

正如清朝末期的改革一样,邓小平的改革开始也是仅仅限定于引进国外的先进技术,并不涉及市场经济体制。由于旧体制运行的惯性,国家妄图通过一次性引进120个大项目来迅速推进国民经济,但是实际收效甚微。国营工厂在这个时候已经积重难返,仅仅通过引进技术已经不能挽救这些共和国的长子们,国企的救赎最终在十几年后由朱镕基完成。

所幸的是另一种来自民间的力量在无意之中接过了改革的接力棒。在官方的宣传里邓小平是改革开放的总设计师,似乎是邓小平绝顶聪明,设计好了改革开放的每个步骤,其他人只是按照他的想法执行。这只不过是中国传统的脸谱式的描述方式。实际上改革开放的许多构想并非邓小平所提出,1980年代初的邓小平也没有对于中国该向何处去的清晰构想。他的伟大之处,在于给予民众试错的自由,随时准备接受每一个可行的方案。

伟人通常都是冷静而沉稳的,随时观察周围的世界,不因狂热否定任何一种可能。邓小平就是这样一位,他的做事风格使得他治下的中国人能够有更多自由,小岗村的包干到户,温州小商户的崛起,这些都是源自民间的尝试。而这些尝试,逐渐的使邓小平认识到,市场经济能够解放生产力,使得中国人过上计划经济时代不能想象的富裕生活。那么,为什么不呢?

可惜的是,这样的认识并不能一下子被整个执政阶层接受,于是出现了温州“八大王”事件,傻子瓜子事件。整个八十年代,像这样对于民营经济的迫害仍不少见。但是历史的车轮滚滚前进,民营经济最终成为改革开放的中流砥柱。过去三十年在中国发生的一切再一次论证了:一旦被给予自由,民众对于幸福生活的欲望将化作一个势不可挡的力量。

1989的运动使得改革的道路出现了曲折,左派重新开始抬头。在这个时候,邓小平以南巡的方式终结了全国对于改革的争议。南巡看到的成就使得邓小平下定了决心,他明确的表达出了对于市场改革的完全支持,对于极左派思想的反感。中国这艘航船开始向着市场经济这个方向大步前进,再无回头的可能。

和邓小平不同,学者出身的朱镕基更多的依据他的学术经验来进行中国的经济的改革。他治下的影响最深远的两个举措就是放宽汇率和国企改制。前者导致人民币大幅贬值,使得中国具有了强大的出口竞争力,中国成为世界工厂正是得益于这个措施。后者以一种非常痛苦的方式解决了国企积留的问题,抓大放小,国营经济仅仅控制能源矿产通信等国民经济命脉,其他的都放手给私营经济,现在中国的经济还是没有离开当时朱镕基设定的框架。最终国企得以重焕光芒,但是这也导致了相当长的一段阵痛期,遗留了一些社会问题。

在这样的背景下,中国互联网的许多事情就容易理解呢。中国错过了1970年代末到1980年代的PC产业革命,因为那个时候的中国虽然已经开始改革,但是整个社会并没有完全做好准备,市场环境刚刚处于萌芽状态,不可能去承载这样一个巨大的产业革命。

但是到了互联网兴起的1990年代中期,情况就完全不同呢。市场经济的总方向已经完全确定,创业不在会有八十年代那样的政治风险。加上78年高考以来储备的大量人才,中国第一次有了跟世界先进国家大约在同一起跑线上竞争的权利。

如果说中国和美国相比有什么优势的话,唯一的优势就是中国拥有大量精通美国社会的留学生,而美国人对于中国知之甚少。相对完善的市场环境,使得海归成为可能。于是田溯宁,丁健,张朝阳纷纷回国。这在1980年代是不可想象的。

资本的原始积累少有光彩的,尤其是在中国这样动荡转型的国度。中国的民营企业的资本积累通常有几种。第一种是来自于国有资产,这成为了这些企业家的原罪,许多企业家都因此落马,如伊利的郑浚怀,红塔的zhu时健。第二种是来自于变相非法集资和股票市场圈钱,早期市场监管的缺失时代使得许多人钻了空子捞到了第一桶金,他们中的一部分人最终将自己洗白,但是更多的人沉溺这种资本游戏中不能自拔,最终自食其果,比如牟其中。最晚出现的,也是罪阳光的一种资本积累的方式便是风险投资。风险投资是随着一批批海龟回潮而带入中国,最早在中国引入风险投资的人是张朝阳,他在1995年年携20万美金的风险投资回到国内创业,这时候距离改革开放开始已经有18年的时间。随着搜狐,百度,携程等一批批企业的成功,风险投资在中国逐渐的发展壮大。可以断定,由于社会转型的逐渐结束和金融监管的逐渐完善,风险投资最终必将成为最主要的资本积累方式。

最近三十年发生在中国的一切可以说是一种奇迹,在一个历史如此悠久,经济如此落后,社会如此复杂的国度进行改革,其难度可想而知,而改革一旦成功,其迸发出来的活力又是如此的令人吃惊。

常有人恨生不逢时,觉得现在已经没有机会了,我看并非如此。中国经济改革的舞台还远未到落幕的时刻,事实上,舞台的帷幕都尚未被完全掀开。中国,中国经济甚至中国互联网都远未成型。邓小平曾说:中国的改革是摸着石头过河。过去三十年虽然成绩斐然,但是我们的高速发展仅仅是在补以前落下的功课,而当我们真正迈入深水区,中国真正开始获得制度性的创新力的时候,更多的机会将会来临。

 

Categories
中文

Chinese Translation of Complexity is the enemy

I just came across a good article about software design written by a Google engineer. I have found a Chinese translation, but some parts, particularly the last paragraph, are not satisfactory enough. So I simply put up my own.

复杂是敌人
作者 Evan Martin
原文地址:http://neugierig.org/software/blog/2011/04/complexity.html

我来到谷歌都快要满七个年头呢。我在这里学会了许多,远比我能写下来的要多得多。我想我至少可以和你们分享一些经验。

复杂是软件的死敌。它非常难于定量描述,而且日积月累。它像一个逐渐变烂的脓包,通常发现它时为时以晚。另一方面,通常增加复杂度的好处显而易见:新的间接曾允许新的特性,另一个例子是,把运行在一个机器上的程序拆分成为两个,在两个机器上面分别运行来解决扩展的问题,但是你必须实现一个RPC层来管理这两个机器。

不论新手老手,上面这些好处都是显而易见的。通过这几年的工作,我认为我已经可以很好的平衡什么时候该加入新的复杂度,而什么时候不该。我经常回想我的一个朋友对Ken Tompson的Go编译器的评价:它很快,因为它做得很少,也正因此它的代码简洁明了。

写一篇长博客很容易,但是言简意赅的表达相同的观点就很难。同样,写简洁明了的代码也很难。最明显的例子就是程序语言设计;新手设计的语言总是有很多特性,但是缺乏c语言那样的清晰性。在现在的程序开发中有一种不好的风气,程序的优劣在于它用了多少对象,而在分布式系统中,在于有多少可以活动的部件。

另一个对于这个问题的描述是“过分聪明”。引用一位c大牛的话说: 调试比写代码难一倍,因此,如果你的代码写的太聪明,调试的时候你就得抓狂呢。

怎么才可以解决这个问题呢,我怀疑是不是只有通过痛苦的经验来解决---等你调完其他人用“元编程”写的程序你就明白呢。不过我发现如果加入一些设计目标用于评估新的代码,这个问题可以得到有效的缓解。因为这样你就可以更容易的判断新代码能否帮助解决开始的问题,从而决定是否应该拒绝。在谷歌内部的设计文档模板开头都有一个None Goals 列表:你需要合理拒绝的项目扩展。

具有讽刺意味的是,我发现使用较原始的工具能够有效的降低复杂读。你不太可能写一个很复杂的c语言程序,因为c语言所能做的不多。c语言倾向于使用数组这种原始的结构,因为数组确实很棒,紧凑的存储,O(1)的存取复杂度,很好的数据局部性。我这样说并不是倡导使用原始的工具。事实上,我的经验是:写python的时候最好将它当做c语言对待。

Reference

This is the translation I noted in the beginning of the article, thanks the translator, too.
http://photo.weibo.com/1915548291/wbphotos/large/photo_id/3520526301358418?refer=weibofeed

Categories
English

Work Efficiently In the Information Age

Categories
English

Python Program Configuration

Categories
English

Python Code Optimization

Code optimization is very important, especially for dynamic language like python. Recently I finished a python program of Approximate Dynamic Programming. One part of the program was to use dijkstra algorithm to calculate the shortest path distance in the network. Since the network is really large(about 1 million node), the first version of code was really slow which took about 2000 seconds each run. After code optimization(it took me about 6 hours), each run just takes 0.2 second. This is incredible improvement.

I used the  the following tools during the process, which I highly recommend:

  1. python cprofile module  –> this is a builtin profile module
  2. runsnakerun –> this is a viewer of the cProfile output
  3. line_profiler –> this is line by line profiler


The usage of runsnakerun is quite easy, just use the following two commands
$ python -m cProfile -o <outputfilename> <script-name> <options>
$ runsnake <outputfilename>

line_profil\ is a line by line python profiler and its webpage is:
http://packages.python.org/line_profiler/

add profile decorator to the function you want to optimize
$kernprof.py [-l/–line-by-line] script_to_profile.py

$ python -m line_profiler script_to_profile.py.lprof

 

Here are some tips to improve python performance:

1. in operator is really slow when the list is large. You may often use

if a in S:

           somehting

else:

          other thing

When S is very large, thousands, for instance, in operator will become a bottleneck.

 

A good way to optimize this is have list with binary value to indicate whether a element is in the set or not. Then the code will be:

if I[s]:

        do something

else:

        do some other thing

Of course, it will use more memory.

2.   Call the library function as much as possbile.

Most of the library functions are highly optimized, or implemented in C++.  So if you can call library functions, don’t implement it by you self in python. The for loop in python is slow. You can use scipy vectors to accelerate the program. You should try your best to reduce the for loop in python.

3  Don’t check each time for rare case.
you may have list with 100 elemnent, you will receive a index may or may not within range(0, 100). If it is in the range return the corresponding value, otherwise return -1. but 99.99% of the time the index is in the range.  The bad is:
if idx < 1000:
B = A[idx]
else:
B = -1
A better approach is:
try:
B = A[idx]
except IndexError:
B = 1
Be careful that don’t use broad Exception, use specific type of Exception.

 

Categories
中文

杂论

最近眼睛一直不太舒服,应该是暑假对电脑时间太长了,平时Research一直要对着电脑,暑假做Google Summer of Code,要编程的时间就更多了。我从小都有弱视眼,长时间的面对电脑屏幕使我的眼睛不堪重负,被迫尽量多的远离电脑屏幕,工作虽然受到影响,但也多了一些思考的时间。

以前,我应该算是一个唯心主义者,觉得只要是下定决心做的事情就一定可以完成。但是随着年纪的增长,我越来越意识到任何食物都是有极限的,人也不例外。做什么事情都要顺应人的自然规律,硬来是没有好结果的。

中国有句谚语叫做“人贵有自知之明”。自知之明就是知道自己的极限,知道一件事情自己是能够做还是不能够做,如果实在是超出自己的能力范围或者外部条件不允许的,就不要犯傻劲。

当然,在更多的情况下,这句话充当了失败者的借口和挡箭牌。对于在自己能力范围之内的事情,就要义无反顾的去做。最忌讳的事情就是没有充分的调研和分析就轻易的放弃,这实际上就是“懒”筋在作祟。

最近在阅读哲学入门读物《苏菲的世界》。小的时候,我就看过同名电影,当时就觉得非常的震撼。前些日子听静雅思听的时候又听到了苏菲的世界的连载,勾起了我的兴趣,于是在Amazon上面买了Kindle的电子书。

我们中国人有一种特殊的自负情绪,大约就是虽然我们现在是第三世界,但是在古代我们是独步世界的。这在一定程度上也是事实。但是今日中国的落后的根源,是早在我们文明灿烂的古代就埋下了的。

中国自从董仲舒罢黜百家独尊儒术之后,实际上就没有了真正的哲学。儒家之思想,本质是“入世”的。所以儒家研究的修身齐家治国平天下归根结底,都只是御人之术。而欧洲一直都没有放弃哲学的本质,那就是思考“世界是什么,人是什么,人存在的意义与世界的关系”。顺着这一哲学的脉络,欧洲诞生了“民主的政治观念”和“科学的研究精神”。中国之所以没有德先生和赛先生,就在于中国没有如此这般“出世”的哲学。

古代希腊哲学三大家苏格拉底,柏拉图和亚里士多德系统的阐述了人与世界的关系。苏格拉底因为没有留下成文著作,思想主要是由柏拉图阐述。柏拉图人为,世界分为自然世界和超自然世界。超自然世界并不是我们通常所说的“神魔鬼怪”构成的世界,二十由万物的理想模型构成的世界。我们常常说一个东西是圆的,但是谁又见过真正的圆?可能你要说我们在数学课本的插图上面见过圆,但是那些插图实际上并不是圆,它们只是看起来像圆的图案而已。你用足够精确的尺子去量,它必定有一些地方宽一些,另一些地方窄一些。数学定义里面的圆是半径处处相等的图案。显然这样的图案不存在与我们的自然世界中,真实世界中的所有物体都是有缺陷的。圆作为所有圆形物体的理型,只存在于理想世界中,也就是柏拉图所说的超自然世界中。

柏拉图人为理型是独立并且先于真实世界的,也就是说我们这个世界中的所有物体,包括人自己,都是用理想世界中的理型制造出来的,就像姜饼人是用相应的模子制造出来的一样。

亚里士多德却不这样认为,亚里士多德认为只有一个世界,那就是我们所处于的真实世界。所以理想模型只是人在接触了许多类似事物之后抽象出来的,并没有独立于实体的理想模型。

古希腊的思想哲学深刻地影响了欧洲几千年,柏拉图依据他的哲学思想构建除了社会的理型,也就是他的理想国。后世的哲学家的哲学家在他的基础上总结出了自然法。自然法就是我们现在所说的人权和普适价值。为什么这些价值普适,因为它们适用于社会的理型。而亚里士多德注重于观察和实践的哲学思想催生了科学。科学就是自然哲学。这就是为什么所有的理工科的博士仍然被称为哲学博士。科学之用意就是要通过对自然之观察和人类与生俱来之理性总结出自然的规律。

2012年7月27日

Categories
中文

神舟猎鹰:谁是航天工业的希望

前两天美国的SpaceX实现了第一次私人太空船与国际空间站对接,今天中国的神舟九号将第一位“神女”送上了太空。两个相差不到十天。

上个世纪五六十年代是航天工业的全盛时期,美苏两国不惜血本投入航天工业,实现许多至今人们还无法超越的成就。但是短暂的辉煌之后,美苏两国的官员和人民都开始质疑:为什么我们要将人送入太空?接踵而至的预算紧缩导致了延续至今的航天工业萎靡阶段,如今的航天产业,基本上属于国家玩具,朝鲜金胖子花了几亿美元放了一个冲天炮,不知道他乐呵了没有。

回想五百年前哥伦布发现美洲新大陆的时候,当时人们也在问,为什么我们要去新大陆?多数人的答案很简单:金子。虽然事实上美洲并不盛产金子,但是信息流动的滞后还是让欧洲的许多人相信新大陆里遍地黄金。金子驱动了美洲东岸十三个殖民地的建立,驱动了美国的西部大开发,当最初淘金狂热淡去之后,人们发现美洲土地肥沃,气候远胜欧洲,随着数十代人的拓荒和开发,直至如今,新大陆已经远远超越了旧大陆,成为了人类文明的中心。

那么在开拓太空的时代,什么是我们的动力?不幸的是,绝大多数的人都没有找到答案。没有人愿意无休止的向一个无底洞里面砸钱。任何一个事业,只有产出大于投入才可能持续的发展。如何在太空中捞到真金白银是太空产业能否持续发展的至关重要的因素。

SpaceX已经走在了世界的前面。Elon Musk于2002创建了这家太空startup,短短八年的时间,自行研发出来可以将10吨货物送上低轨道的猎鹰火箭,八年总成本不超过八亿美元。虽然目前还没有实现载人航天,但基本上也只是时间问题。SpaceX作为一个美国公司,单次发射成本只有五千四百万美元,甚至低于中国的发射成本,而在技术层面上已经超越了中国。随着研发成本队的分摊和工艺的改进,成本还有可能进一步降低,SpaceX的目标是将载人航天的费用降低为50万美元每人,到那时去太空度假不是是可望不可及的梦想呢。

相形之下,我们的神舟系列走的是苏联的老路,靠的是国家投入和民族荣誉,没有任何商业化。随着越来越多的航天员进入太空,民众敏感度降低,国家投入势必减少,神舟飞船或许那个时候连神舟电脑都不如。
虽然美国航空航天局目前失去了将人送上太空的能力,但是可以说,在新一轮的太空竞赛中,美国已经走在了前面。

美国的优势是完备的市场竞争环境、丰富的技术创新经验以及富于开拓精神的人文环境。三要素的齐备,使得美国的诞生了无数的改变世界的卓越人物,比如:

  • 希拉斯·菲尔德: 创办大西洋电报公司,接通了美国到大西洋第一条电缆,第一次实现了跨越地球的光速通信,
  • 亨利·福特:创办福特汽车公司,将汽车送入千家万户,极大的改变了世界的交通方式,
  • 爱迪生:创办通用电气公司。 普及了电灯,直流输电线路,
  • 尼古拉·特斯拉:创办西屋电气公司,交流输电线路,无线电传输技术
  • 肖克莱与八叛逆:仙童半导体公司,发明晶体管,开创了电脑工业时代
  • 拉里佩奇,谢尔盖布林:谷歌公司,改变了人类搜寻信息的方式

在不久的将来,Elon Musk的他的SpaceX很有可能也出现在这个名单里面。在同时代的人眼中,他们所解决的问题和和我们这个时代去太空周末双人游一样不可思议。正如Elon Musk自己所说,虽然中国是世界发展最快的经济体,但是美国优越的创新环境让美国在新的竞争中立于不败之地。国内普遍存在一种二十年内超越美国的乐观情绪,我只想说,要超越美国,我们要学习的东西还有太多。 只有等到有一天我们的体制也能培育出真正改变世界的卓越人物,我们才能说我们赶上了美国。

二零一二年六月十六日