Tutorial to migrate from Bitbucket to Github

Install mercurial and hg-git

sudo apt-get install mercurial

sudo apt-get install mercurial-git

Note: The version of mercurial should be >= 2.8.

If the default version of mercurial in apt-get is < 2.8. You can install using pip

sudo pip install mercurial –upgrade

You need to create a repo on Github.com

Clone your bitbucket repo

hg clone https://hbhzwj@bitbucket.org/hbhzwj/sadit hg-repo

Convert hg repo to git repo

Hg-Git can also be used to convert a Mercurial repository to Git. You can use a local repository or a remote repository accessed via SSH, HTTP or HTTPS. Use the following commands to convert the repository

$ mkdir git-repo; cd git-repo; git init; cd ..
$ cd  hg-repo
$ hg bookmarks hg
$ hg push ../git-repo

The hg bookmark is necessary to prevent problems as otherwise hg-git pushes to the currently checked out branch confusing Git. This will create a branch named hg in the Git repository. To get the changes in master use the following command (only necessary in the first run, later just use git merge or rebase).

$ cd git-repo
$ git checkout -b master hg

Push the Git repo to Github Server

cd git-repo;

git remote add origin <github-url>;

git push -u origin master;

cd ..;

I also write a script to do this automatically.

 

《摩根财团》读后感 续

 

古人云:“观一叶落而知天下秋”, 摩根财团的历史就是整个现代金融业的这篇叶子。摩根财团长期是现代金融业的典范,学习摩根的历史就是回顾这个现代金融业的建立和完善过程。现代金融业伴随着铁路和电气工业的建立和建立, 在风云变幻的两次大战期间重组和洗牌, 然后在战后建立了以美国为中心的金融新秩序。 《摩根财团》毫无疑问是介绍这段历史的一本不可多得的巨著。作者 Ron Chernow 将摩根的历史分为三个时代:1 领主时代, 2 外交时代 和 3 赌场时代。 每个时代有它鲜明的特征。 从作者严谨的叙述中, 我们可以大略看出金融业的发展的三个大的趋势。 这篇读后感就围绕三个时代和三个趋势展开。

 

三个时代

领主时代(1838-1913)

 

第一个时代是“领主时代”,这一时代适逢铁路业和重工业的兴起,新兴产业所需要的资金远远超过了最富裕的个人或家庭的财力。然而面临如此巨大的资金需求,金融市场还限于当地。而且规模有限。银行家配置经济稀缺的信贷。只要有银行家的批准认可就可以是投资者消除疑虑,银行家深深的参与到公司的经营当中去。比如皮尔庞特利用银行资本,控制美国东部的铁路和钢铁行业。

 

由于对公司有这样的影响力,主要的银行家像接受雇民供奉的领主一样,养成了一种居高临下的作风。他们依照一整套惯例进行经营,后来吧这套惯例叫做绅士银行家准则。

 

外交时代 (1913-1948)

外交时代的国际环境发生了巨大的变化。两次大战的爆发瓦解了三百年的世界殖民体系并摧毁了日不落帝国。美国经济趁势成为了世界领头羊。在这嘈杂的三十多年里,欧洲动乱复兴,然后再动乱再复兴。在整个过程中, 美国的经济干预和援助至关重要,而私人银行充当了先锋。

 

杰克摩根温和的性格和改革银行的措施使得摩根财团适应了外交时代的需要。一支强有力的,有主见的合伙人队伍被组建起来去执行政府的使命。 起初摩根财团把英国的资本吸引到美国来,从而壮大了实力。 在外交时代,这一关系完全颠倒过来了, 伦敦的商人银行由于受到英国政府战后对外贷款的限制,活动范围很小。 相比之下,华尔街的触手伸向了世界各地。

 

一战导致了持续百年的金本位制度终结。参战各国滥发纸币进行战备,停止了黄金和本国货币的兑换。在1925年英国尝试恢复金本位。 不久之后,英国的煤炭纺织品,钢材等在国际市场上面失去了竞争力, 恢复金本位不但没有振兴英国, 反而加速了它的衰落。 1931年9月21日,英国再次告别了金本位。随后美国也放弃了金本位。金本位的问题以后还要经历多次反复,但是无数事实表明黄金已不再适合作为一种标准通货。事实上,现代社会可能根本就不需要什么标准通货。

 

当欧洲经济饱受战争蹂躏的时候,美国经济越过了竞争对手, 并实现了大量的贸易顺差,但是美国仍有一半人口生活在农村。二十世纪二十年代美国大牛市。 史无前例的货币流动性激增。 本斯特朗大幅度提高利率,造成了此后持续几年的紧缩性环境,货币大量涌向金融市场。 股票和债券市场大涨。 但是华尔街的繁荣对于农民来说是虚假的。农业和石油工业都很不乐观。而由于对于农业和石油部门贷款的坏帐, 小城镇的银行以每天两个的速度倒闭。与之相反,但是城市金融和房地产双临佳境。过剩的现金被看成是财富的象征,而不是生产性投资机会缩减的不详之兆。

 

随后1929年的大萧条导致了世界经济的大衰退。华尔街被认定为需要对此负责任。 罗斯福总统在1933年6月16日签署了《格拉斯–斯蒂格尔》法案。这部法案对于美国影响深远。 从这时起,银行或者从事贷款和接受存款,或者从事证券买卖,但不能同时从事两者。 1935年9月日,摩根财团正式分家。哈罗德斯坦利, 哈里摩根,和维摩尤因出来建立了摩根士丹利。

 

赌场时代(1948-1988)

这个时代的最主要特征是领主时代建立的绅士银行家法则开始崩溃。 关系银行业寿终正寝, 华尔街比前任何时候都更加冷酷,吝啬。在赌场时代, 蓝筹公司不再需要银行家为他们开健康证明, 他们的资信往往胜过他们的银行。投资银行无法保持与客户的长期排他性的合作关系,竞争性的招标成为了主流。

 

一个标志性的事件是IBM在1979年的融资。 当时IBM 需要融资10亿美金进行下一代计算机的研发, 要求摩根士丹利接受所罗门公司作为联合主干行来承担这笔业务。这对于具有悠久绅士银行家传统的摩根来说是不能接受的。 摩根要求获得独家发行权, 但是IBM不作丝毫的让步, 仍按计划由所罗门公司牵头这次发行。随后不久,一些投资银行边开始大肆强夺摩根士丹利的其他客户, 打破了绅士银行家的准则。 此后IBM的大部分业务都转向了所罗门公司。 而摩根士丹利则放下架子。同意与别的公司分担通用电器信贷公司, 杜邦公司以及坦尼可公司的债券发行业务。 在激烈的竞争下,摩根财团的三家衍生公司也开始分道扬镳。

 

80年代疯狂的杠杆收购和敌意兼并是这个时代最鲜明的注脚。数以千家的公司被兼并和收购, 被收购的公司往往担上沉重的负债, 而投资银行则可以拿到丰厚的酬劳。

 

三个趋势

信用体系的完善

现代金融业的第一个趋势是信用体系的完善。 在皮博迪和朱尼厄斯的时代,美国的处境和今天的中国有点类似,都是一个快速的崛起新兴的大国,但是仍缺乏健全的金融系统和信用体系。美国的经济发展高度依赖于英国的资本供给,1833年的一个议员曾说,“美国货币的晴雨表挂在伦敦证券交易大厅里面。”  今天的中国也是如此,绝大多数的高科技企业都是在美国上市,中国的经济发展很大程度上是依赖与美国资本市场来提供资本。皮博迪当时的主营业务是在英国经销美国债券,大概就相当与今天的承销中概股。但很有趣的是,那个时代的美国赖账情况很严重。当时皮博迪承销的主要是政府债券,议员为了竞选,通常会许诺减税,这样导致政府没有足够资金偿债,同时赖账还可以迎合排外势力,赢得部分的选票。最终的结果是,美国许多的州都赖账,这严重影响了美国债券承销商在国际上面的声誉。所以美国健全的信用体系也不是一天建成的。这和许多中概股在美国作假被停牌,影响中国公司的信誉是类似的。类似的问题在每一个发展中的经济中都会出现,也会随着金融体系的逐步完善而逐渐得到解决。

银行家对企业影响力的下降

随着时代的发展,摩根的金融权力不再那么耀眼。19世纪末的时候,摩根的融资额已经可以达到数亿美元,这个数目在当时可以控制整个美国经济。在皮博迪,朱尼厄斯的时代,摩根财团随着美国的上升而上升。皮尔庞特时代和杰克当政的初期摩根财团达到顶峰,垄断着美国金融业。皮尔庞特仅仅依靠个人的信用和关系就解决1907年的经济危机。随着《格拉斯–斯蒂格尔》法案的出台,摩根财团遭受沉重的打击,接着随着二战的结束,越来越多的竞争者加入,摩根的影响力着日渐式微。JP摩根成为一个老式的,弱小的商业银行。新的摩根士丹利则成为投资银行业务中的重要玩家。但是即使将他们重新合并,也不再具有皮尔庞特那样对美国金融业至关重要的影响力了。

 

摩根的衰落其实是整个银行影响力下降的趋势的写照。市场从资本稀缺时代进入了资本充裕时代。银行家不再像19世纪末那样凌驾与企业家之上,而转而成为了服务者的角色。同时,金融市场本身也逐渐变得开放,越来越多的竞争者进入金融业,摩根财团的影响力也随之被稀释了。

 

合伙人制度向现代公司转型

最后一个趋势是银行业逐渐从合伙人制度和家族企业制度走向了现代企业制度。早期的摩根各个公司都是合伙人制度,每个合伙人各自出资,承担无限的风险。二战初期,JP摩根完成了从私人合伙制度到公司化转变的最后历程。为什么早期银行业都是家族企业都是以家族姓氏命名的?这是因为在银行业,信用非常重要。一张债券或者票据,必须不论何时何地都可以立即兑现,否则别人难以放心的将钱交给银行家管理。在商业不健全的时代,信用不能用法律来维系,只能通过家族来维系。而随着信用体系的完善,银行不再需要家族关系进行背书,私人银行走向现代股份制便不可避免了。

 

事实上这个趋势不仅仅出来在银行业,也出现在工业中。十九世纪的工业发展造就了洛克菲勒家族,范德比尔特家族这样的家族性垄断巨头。但是到二十世纪五十年代,在美国的经济里, 家庭所有权的这种力量逐渐消失。 威廉范德比尔特曾经有纽约中央铁路的87%的股份, 但是他的后代哈罗德范德比尔特持有的股份,还不到剩余股份的1%。

2013-12-01

王晶

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 myGTD 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://bitbucket.org/hbhzwj/vizevernote

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

小企业,大事业

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

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

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

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

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

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

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

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

 

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

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

 

【开源项目暑期实习】谷歌编程之夏 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/

中国的旋律

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

Follow

Get every new post delivered to your Inbox.

Join 26 other followers