2019/8/7

毛泽东:寻乌调查

我做的调查以这次为最大规模。我过去做过湘潭、湘乡、衡山、醴陵、长沙、永新、宁冈七个有系统的调查,湖南那五个是大革命时代(一九二七年一月)做的,永新、宁冈两个是井冈山时代(一九二七年十一月)〔1〕做的。湖南五个放在我的爱人杨开慧手里,她被杀了,这五个调查大概是损失了。永新、宁冈两个,一九二九年一月红军离开井冈山时放在山上的一个朋友手里,蒋桂会攻井冈山〔2〕时也损失了。失掉别的任何东西,我不著急,失掉这些调查(特别是衡山、永新两个),使我时常念及,永久也不会忘记。寻乌调查是一九三○年五月四军到寻乌时做的,正是陂头会议〔3〕(二月七日四军前委与赣西特委的联席会议)之后,汀州会议〔4〕(六月四军前委与闽西特委的联席会议)之前,关于中国的富农问题我还没有全般了解的时候,同时我对于商业状况是完全的门外汉,因此下大力来做这个调查。在全部工作上帮助我组织这个调查的,是寻乌党的书记古柏同志(中学生,破产小地主,曾任小学教师、县革命委员会及县苏维埃主席,篁乡区人)。在材料上与我以大量供给的,是郭友梅(五十九岁,杂货店主,曾任县商会长,本城人)、范大明(五十一岁,贫农,县苏〔5〕职员,城区人)、赵镜清(三十岁,中农,做过铸铁工,做过小商,陈炯明〔6〕部下当过兵做到排长,现任县苏委员,双桥区人)、刘亮凡(二十七岁,县署钱粮兼征柜办事员,现任城郊乡苏维埃主席,城区人)四人,他们都是经常到调查会的。此外李大顺(二十八岁,贫农,曾任区苏委员)、刘茂哉(五十岁,老童生,开过赌场,做过小生意,原是小地主,降为贫民,曾任县革命委员会委员,现任区苏委员)两人,也供给了一部分材料,间或到我们的调查会。还有刘星五(四十六岁,农民,做过小生意,乡苏委员,城区人)、钟步嬴(二十三岁,梅县师范生,区政府主席,石排下人)、陈倬云(三十九岁,自治研究所毕业,做过缝工,做过小生意,当过小学教师)、郭清如(六十二岁,秀才,赴过乡试,做过小学教师,城区人)四人,到过一二次调查会,稍微供给了一点材料。我们的调查会,就是我和以上十一个人开的,我做主席和记录。我们的会开了十多天,因为红军部队分在安远,寻乌、平远做发动群众的工作,故有时间给我们开调查会。

2019/8/3

Google Maps的故事

Google Maps的故事:纵横天地间

本文转自微信公众号:余晟以为(ID:yurii-says),作者:余晟
GeoEye-1
2008年,Google Maps已经覆盖了54个国家,无论Maps还是Earth都有几千万用户。但是,无论创始人布林、佩奇,还是CEO施密特,都在发出同样的信号:快一点,再快一点。同样,投入也一再增加。到2008年,Geo团队的人数已经超过1200。
也是在这一年,John做主,Google买下了一家叫Image America的公司,它的老板是Kevin Reece。长期以来,Image America都在给Google Maps提供数据,2005年卡特里娜飓风袭击之后,它及时提供了航空摄影图片,(之前的文章里提到过)信息及时更新的Google Earth帮助海岸警卫队挽救了数百人的生命。
但是现在,Google不再满足从Image America购买数据,而是把Image America收入囊中。收购完成之后,Google瞬间就拥有了自己的侦察机队。Google从没有公布它们拥有的侦察机数量,但是媒体已经用“Google空军(Google Air Force)”的说法。
加入Google之后,Reece与负责街景开发的Luc Vincent、负责Maps技术的Brain通力合作,改进了航空摄影技术。Google的侦察机在飞行过程中,镜头会前后摆动,这样不但能获得更清晰的照片,还可以同时获得3D数据,用于对地面进行3D建模。出于重视,Google甚至为这个项目专门定制了数据处理芯片,拉里·佩奇也亲自参与到这个项目中来。
到现在,Google Maps基本形成了“天地一体”的数据体系:最上面是卫星照片,生成地图的“缩略图”;低一点的是航空照片,生成大比例尺的图像,以及3D建模;再往下是地面,有街景车实地拍摄的街景图像。除此以外,还有“拍不到”的行政地图,比如路名、建筑名、区域边界等等。
我们使用Google Maps时,可以自由缩放,自由切换视图、视角,感觉是相当自然而且平滑的。在这背后,地图团队需要做大量的工作,将不同数据源的数据悉数对齐,保持一致,即便出现变更,也要保证各来源各层的数据保持同步变更。这工作听起来已经足够繁琐了,但Google仍然不满足,它希望依靠机器和程序把这些工作自动化(之前提到过,Google放弃了使用SketchUp来做3D建模,就是因为没法自动化、规模推广),可谓雄心勃勃了。
不过,Google的野心还不限于维护和对齐数据,对于数据,它有更大的胃口。2008年,它的目标之一就是当年将要发射升空的GeoEye-1卫星。
GeoEye-1卫星是GeoEye公司研制的最新一代卫星。之前,微软和雅虎从GeoEye购买航空照片用于自己的地图,试图赶超Google Maps。将要发射升空的GeoEye-1卫星可以提供0.5米精度的卫星照片(实际上无论是GeoEye-1还是之前的QuickBird,民营公司能拿到的照片都不是最高分辨率的,最高分辨率照片只提供给美国军方),这当然引起了新的一轮争夺。施密特深恐微软的竞争手段,他对负责商务拓展的Daniel Lederman说:“这场仗,我们绝对不能输。”
最终Daniel不负众望,GeoEye接受了Google的投资,微软则败下阵来。
不过事情没有那么简单,卫星行业有自己的玩法:“投资”了卫星,光给钱是不行的,还有两件事得做:第一,在火箭上打上你的logo;第二,你得亲自到发射场,亲自见证卫星发射升空(另一个意思是,万一发射失败,你也在现场亲自见证了)。
对Google来说,第一点好办,第二点不好办。布林和佩奇实在是太忙了,很难联系上,而且行踪不定——今天在这里,明天在那里,没有人能提前约到他们的准确时间。但是卫星行业的惯例是不会为金主改变的。所以,千斤的重担压在了Daniel身上。
GeoEye-1发射时,火箭上有Google的logo。图片来源:pando.com
GeoEye-1的发射时间定在2008年9月6日,直到9月5日,Daniel才收到布林和佩奇的助理的电话:
好消息,他们明天会来看卫星发射。
太好了!
不过,还有件事情,他们想要直接落地在范登堡机场,不想先落地在其它地方,再坐车去发射台。
什么?你是认真的吗?是范登堡,那个空军基地?
对,没有错。他们想要直接在那里落地,观看卫星发射,然后上飞机离开。
你TM在开什么玩笑?
不,我可没开玩笑。你问问能不能这样安排,只有这样安排他们才会来。
这是“意料之外,情理之中”的要求。
布林和佩奇的行事一向天马行空,两位创始人之前买了一架波音767飞机,他们争论的一个点是:飞机上到底是要装双人大床还是装吊床。所以放下电话,Daniel连忙去联系GeoEye公司的人,得到的答复是一样的:“你TM在开什么玩笑?”
不过,Daniel总是有办法搞定了这一切。
第二天早上,布林和佩奇的湾流公务机降落在范登堡空军基地的机场,舱门打开,走出来的是佩奇和他的未婚妻,布林和他怀孕的妻子。布林的打扮和平时一样:T恤、牛仔裤、洞洞鞋。机场上,迎接他们的是整齐着装的GeoEye公司代表和军人。
在众人的注视下,卫星顺利发射升空。下午2点18分,他们乘上飞机离开了。
2008年10月,Google收到了GeoEye-1传过来的第一份数据。GeoEye-1迅速成为了Google Maps的重要数据源,并保证Google Maps对竞争对手的优势。 
GeoEye-1拍摄的50厘米分辨率照片。上图为美国俄亥俄州游乐园,下图为澳大利亚堪培拉市体育场。
GeoEye-1如何能从683千米的高度拍摄那么高精度的照片?据美国《流行科学》杂志介绍,GeoEye-1的拍摄过程如下:
1. 入轨。发射升空进入683千米的轨道之后,在7年寿命内,还可以依靠燃料机动100千米(受地球引力影响,卫星高度会不断降低,所以需要“升高”)。
2. 接收指令。操作员可以从阿拉斯加、弗吉尼亚、挪威、北极四个基地向卫星发送指令,指定具体的拍摄地点和时刻。
3. 定位。GeoEye-1是第一颗具备军用GPS定位精度的民用卫星。其地面定位精度可达2.7米,是之前水平的1.5倍。
4. 对齐。在卫星准确定位之后,卫星上的滚轮会反向旋转,抵消卫星自转的影响,以便镜头对准目标。
5. 测光。地面操作员根据当时的太阳光线和卫星位置,确定曝光时间。卫星的精度很高,所以拍摄元件的工作要求也非常苛刻,它们封装在一个圆筒里,工作时必须保证温度稳定在72华氏度(22.2摄氏度),绝不能直接暴露在宇宙中。曝光时间确定后,卫星上的密封门打开,完成拍摄,密封门立即关闭。
6. 拍摄。卫星每2秒钟拍摄一幅20000 x 37500(7.5亿像素)的照片,单次拍摄任务总计2分钟,共获得约900亿像素的图像,覆盖范围6000平方英里(约1.5万平方公里)。然后,处理芯片将数据写入卫星搭载的1T容量的SSD硬盘。
7. 传输。卫星每天可以拍摄的面积约为德州大小(约69.1万平方公里,作为参考,四川省面积为48.5万平方公里),每天与地面进行无线电通讯40次,将数据加密传输至地面。
Ground Truth
如果之前Google Maps所做的一切,大都符合普通用户的直觉经验,能够简单感知的话,Ground Truth项目则真正代表了Google的野心:把物理世界装进去,让物理世界可以搜索。要了解Google Truth,还得从历史说起。
2007年iPhone面世之后,2008年Android也面世了,随着移动互联网的爆发,地图业务也在高速增长。通常,互联网公司很擅长解决规模的问题,只需要简单增加机器就可以,成本并不会随业务规模增长而飞速上升。不幸的是,地图业务不是这样。
Google Maps所有关于道路的数据,都来自荷兰的Tele Atlas和美国的Navteq两家公司。所谓道路数据,指的是单行、限速、限高、车道数量等等。以前,每个国家都有几家公司做这种业务,每家公司都有众多数据标注人员,负责标注各种数据,保持数据库的更新。到了2008年,此类公司不断集中,Tele Atlas和Navteq成了统治世界的两大巨头。
既然身为巨头,当然不会放弃攫取利润的每一个机会。
掌握了道路数据,就掌握了车载导航仪市场的命脉,车载导航的市场正在爆发式增长。Tele Atlas和Navteq指导,虽然Google Maps是它们的大客户,但不是唯一客户,而且,它们也很恐惧Google的技术能力。不止如此,市面上的其它导航仪厂商,比如Garmin, Tomtom等等对Google Maps也非常紧张,从这个意义上说,Tele Atlas和Navteq的利益是一致的。
这样,Google Maps就处于非常不利的地位。
随着用户数的飞速增长,获取道路数据的成本在以更快的速度增长。因为道路数据的计价并不是按数据容量来,而是按数据使用量来。换句话说,某份数据被浏览了一次,就收一次钱,再浏览一次,再收一次钱。Google Maps追求的是流畅、生动的操作体验,所以需要大量的数据。也许你只是在Google Maps或者Google Earth里简单拖滑了几下,Google要付给Tele Atlas和Navteq的钱却在哗哗增长。
2008年,因为成本高企,John和Daniel去Navteq谈判,要求改成固定费率。但是谈了48小时过去,Navteq仍然坚持高昂的价格,这还不包括导航功能。于是John和Daniel换了策略,打算收购Tele Atlas。等待他们的是Tele Atlas的投资机构给出的数十亿美元的报价,而且还不是“一揽子”方案,数据的使用仍然有诸多限制。
上面提到,2007年,斯坦福大学研究无人车的Sebastian Thrun和他的团队加入了Google,他们把街景业务做起来了。2008年,Thrun有了个新的想法,他找到Google Geo负责技术的Brian说:
没准,我们可以直接从街景数据里直接提取道路信息?
街景团队每年投入在几千万美元,但是如果能直接从街景数据里提取道路信息,就可以为公司节省下几亿甚至几十亿美元。而且好处不只有省钱,还可以大大提升地图更新的速度。
如果道路数据掌握在Tele Atlas和Navteq手里,Google Maps的用户发现标注错误,比如本来不应该是单行的地方标注了单行,他们只能报给Google,然后Google报给Tele Atals或Navteq,公司再安排对应的标注人员去勘查、核对,如果真的需要修正,修正之后再更新到公司的数据库里,然后同步给Google,这样Google Maps的用户才能看到。
这个流程实在太漫长,按照职场的经验,一旦流程涉及的环节太多,效率和准确性必然下降。普通用户或许还能忍受,但Thrun和Levandowski领导的自动驾驶团队当时自动驾驶团队已经有90人,地图的准确性、及时更新,对他们来说至关紧要,绝不能忍受那么漫长的流程。
2007年末,Google已经开始使用街景数据核对商户的地址。如果商户告诉Google,自己的地址被标错了,那么Maps团队就会直接调用街景的数据,核对并更正。在这个基础上,Thrun打算更进一步:直接从街景数据中提取道路信息。或者说,直接从街景数据中还原所有的地面信息。
Google的算法可以从街景照片中识别出各种对象。来源:CNET
在Thrun游说John和Brian之后,2008年,Google正式启动了这个项目,它的名字很直白:Ground Truth。
Ground Truth,这是一个雄心勃勃的项目,它的愿景远远超过了之前的Google Maps,更符合拉里·佩奇最初的想法:让物理世界可以搜索。这个目标当然需要巨额投入——为了维护准确的道路信息,以前需要成千上万名人来做绘图和标注,现在起码也需要数千人(正式的称呼是“操作员 oprator”)来维护。这个项目一旦开始,就不可能再有回头的机会。
拉里·佩奇承诺,对Ground Truth“支持五年”。2008年夏天,他下达了项目启动的命令。
Ground Truth当然很好,但这是个前无古人的项目,没有人知道到底要怎么做。Ground Truth团队做的第一件事,是开发标注平台,它的名字叫Atlas(巨人)。它有点像Esri的专业软件,但为Google Geo团队的具体情况做了很多的改进。据看过它的人说,其界面有点像三款软件的混合:Google Earth,Street View,Adobo Illustrator。使用者可以直接在地图上画线,添加注释。
Ground Truth所用软件Atlas的界面。来源:CNET
Atlas的数据来自Google Maps、Google Earth,还有TIGER(Topologically  Integrated Geographic Encoding and Refrencing,拓扑统一地理编码参考文件。1990年美国人口普查局用于支持人口普查程序和进行调查分析所使用的数据结构。TIGER文件包含街道地址范围和调查区边界。这种描述性数据被用来把地址信息和普查数据与图层特征联系起来),以及最新的航空、卫星地图。虽然据Ground Truth的人说,TIGER的数据质量比较差,但它们是免费的。
Ground Truth的操作员把各种来源的道路数据对齐。来源:CNET
这些数据在Atlas中混合起来,首先用计算机处理,识别出街道和地址的铭牌,以及限速标识、学校标识、车道数目、左转—右转闲置等等,识别出的每一处信息都需要综合多种数据进行核对。比如识别出某处标有单行标识,而且路上所有车都驶向一个方向,那么这个识别应当是对的,反过来,如果有单行标识,但路上有双向的车流,这个识别多半有问题。
人工标注的道路编号和行驶方向(红色为禁行)。来源:CNET
因为机器识别不够智能,不够准确,Atlas项目还需要人工干预,大量的人工干预。
不久,Google总部的45号楼里秘密搭建了Ground Truth的工作室。与一般办公场所不同的是,这里没有办公座位,桌子上只有一排又一排的电脑,员工甚至都没有座位。每天三班,每班8小时,一批又一批的操作员进入工作室标注、核对地图数据。为了保证数据的准确性,所有的操作都对主管透明,所有的电脑都只能运行Atlas而不能运行其它软件,所有的员工都不能带手机进场。
最初,Ground Truth项目雇佣了200名操作员,很快扩张到500人。然后在过道里增设了更多的桌子,更多的电脑。继而人员扩张到2000人,再扩张到5000人…… 
左图是机器生成的路径,右图是人工修正之后的路径。来源:CNET
到2009年夏天,Ground Truth项目已经取得了惊人的进展,但数据还不够好,还不足以替代Tele Atals和Navteq的数据。所以,John还得忍受两大巨头的傲慢和挑剔:“今年还按去年的价格来?只要你们动一动念头,今年就免谈。”
Tele Atlas不但要求高价,而且提出:要续签就必须续签两年。但是Tele Atlas和Naveteq不知道,它们的要价开得越高,Google搞Ground Truth的动力就越足。这中间,Tele Atlas大概感知到了一点什么,所以试图在合同中加入条款,禁止Google自己搞道路数据,但是John和Daniel当然不会同意。
合同的拉锯一直延续到2009年秋天,终于要签字了,Google邀请Tele Atlas的人参观Google在瑞士苏黎世的办公室。那里,室内有一根滑杆从5楼直通1楼,平时员工可以玩消防员的游戏,从5楼抱住滑杆,就直接滑到1楼。Google邀请Tele Atlas的人一起玩这个游戏,CEO同意了,但作为谈判主力的营销负责人De Taeye拒绝了,于是大家继续谈。终于有一天,他让步了:“好吧,我从这里滑下去,然后就签字。”
合同终于签订了,六周以后,De Taeye应邀来到谷歌山景城总部参观。在所有人的职业生涯里,大概没有人有比这更悲惨的经历了:他亲眼看到了功能接近完备的Ground Truth。更糟糕的是,按照Google和Tele Atlas的合同,收费单位不是地图数据量而是使用次数,不过Google没有“义务”使用这些数据。
John同时故作轻松地告诉他:“我们打算在三天内,把Ground Truth的能力应用到Google Maps和Google Earth在全世界的服务里。” 
后来每次回忆起这段经历,John都特别得意:
“就好像跟人在打扑克,而你知道自己手里握着王牌。”
此后,Google Ground Truth再接再厉,朝着“让物理世界可以搜索”的目标不断前进。如今,有赖于Google强大的计算能力,专业的操作团队,用户在Google Maps中反馈的错误标注,几分钟内就可以被核实、修正,然后同步到全世界所有的Google Maps使用者。
耗资9.66亿美元收购Waze之后,Google可以把交通事件(事故、临时管制等)以近乎实时的速度推动给用户。耗资5亿美元收购Skybox Imaging之后,Google具有了自己发射卫星的能力,虽然它从来没有公布过自己的卫星数量…… 
尾声
2010年10月,拉里·佩奇给所有Google员工发了一封邮件,宣布组织架构重组:Google搜索的熟悉工程师Udi Manber升任产品管理和工程的总负责人。而在之前的分工里,梅姐主管搜索的产品,Udi Manber主管搜索的技术,现在,Udi Maner已经统管了一切。那么,梅姐怎么办?
在这之前,梅姐已经给John打过电话了。梅姐告诉John,组织架构将有大的调整,Udi Manber的地位更加巩固,而梅姐相对边缘化。
“John,以前我只花了5%的精力在Geo团队,现在,我希望花上100%。我希望你留下来,我希望我们可以和睦相处。
梅丽莎,这是个好主意。”
之前,梅姐和John的关系已经缓和,大家建立了日常的交流,梅姐甚至邀请John去参加了她的婚礼。但是放下电话,早已心生退意的John想:是时候离开Google,去寻找新的方向了。
六个礼拜之后,梅姐召集Geo团队,宣布她将成为负责人,同时,她公布了John要离开的消息。 
再过不到两年,2012年7月,梅姐宣布离开Google,赴Yahoo任职。
而Google Maps还在继续进化,继续为千百万用户服务。
一点个人感想
除了写作和翻译技术图书,我已经很久没有为某个主题做过这么久、这么密集的写作了。最初我只是想讲Keyhole的小故事,不料引起了非常广泛的兴趣,大家的热情鼓励,促使我继续写下去。
Keyhole加入Google之后的故事也相当精彩,但写作起来难度更大,大致有下面几个原因。
第一,Keyhole前期经历没有太多人知道,只凭Keyhole的人自己说就可以,但Google Maps的故事有各种报道,所以需要广泛阅读、比对。
比如Where2团队的故事,ZipDash团队的故事,书里都很少或者没有提及。我们没有办法强求Keyhole的人有国际主义的博爱(毕竟这只是写他们自己的经历),但对Google Maps来说,各个团队都是有贡献的。同时,原书的描述也有一些地方不够准确,Google Maps需要把行政地图、航拍地图、卫星地图对齐那样,写作它的故事时也需要把各种资料对齐。
第二,Never Lost Again的各章不是严格按照时间顺序来的,而是按照不同主题来的。
要想写得更立体全面,就必须适当打乱重组原书的结构。有几个时间点我反复对比了好几次才有敢下结论,而且不会有百分百的把握。最终我做的调整不大,很大程度上仍然是按照原书的结构来展开叙述的。
第三,涉及到科技历史的写作,如果能提供图片是最好的。
不幸的是,虽然我买的是精装版(Hard Cover),但书里全都是文字,所以只能上网去找对应的图片。有一些老的图片只能搜到分辨率很低的版本,不过我运气不错,根据文件名修改后缀(去掉small, thumbnail之类后缀)猜测,都找到了原始的图像。另外,“Google Maps”刻在石头上的照片怎么也找不到,甚至在Google工作(可惜不在Geo团队)的朋友也不知道在哪。不过我运气不错,联系到了原书作者Bill Kilday,他热心发来了照片。
现在想起来,写这一系列文章的过程竟然有点像Keyhole的创业经历:从一个小小的点萌发,最后的结果远比之前想象的大。这是一种奇妙的经历。
回到故事本身,Keyhole是一个典型的创业团队。用我的话说,在加入Google之前是“草台班子”,在加入Google之后是“独立大队”,没有中文报道里常见的微言大义、“抢占风口”的夸张,没有那种滥情的、刻意把经历碎片与宏观脉络“拟合”的做作。所以,我们看到的始终是“在不同的阶段遇到不同的困难,抓住重要的问题,去做正确的事”。这样讲故事才真实,真实才显得可信,才有感召力。
纵观全书,Google Maps的发展并非一帆风顺,其中的一条主线是Keyhole和Google的意见分歧。有几个典型片段可以说明:
第一,Keyhole的人想知道目标是“一千万营收还是一千万用户”?布林和佩奇的答案是“我听不懂,你们应当考虑大得多的问题”。
第二,Google Maps API是否要收费?Kilday觉得应该收费,但Google的人一致认为不应当收费,“这就是Google一贯的做事方式”。
第三,Google Earth被海岸警卫队用来救灾,挽救了几百人的生命,是否值得宣传?Kilday认为应当宣传,Google的人一致认为不应当宣传,“我们甘愿做幕后英雄”。
第四,是否要做街景?Kilday觉得投入巨大,看不到明显的收益,但Google决定要做。结果在Ground Truth面前,Kilday也坦白承认“我之前错得离谱”。
从第二和第三点我们可以发现,Kilday行事更多的是按照普通的商业逻辑来展开思考。这当然无所谓对错,但是Google有自己的技术文化,而且Google始终没有把地图定位为短期变现的业务。有独特的技术文化当然是好的,但也不是每家公司都像Google那样,有广告业务作为现金提款机在背后支撑,我们在讨论和思考时不应忽略这个前提。
相比之下,第一、第四点分歧不太可能发生在John和Marissa之间,而只能发生在John、Kilday与布林、佩奇的碰撞中。我们经常说公司的创始人应当有远见,有愿景。那么,“一千万用户还是一千万营收”,“要不要砸钱做街景”这种重大问题,已经不是普通的商业逻辑可以判断,只能靠布林、佩奇来做决定。他们的决定很迅速,很坚决,最终成果也很显著。
美国作家大卫·哈伯斯塔姆在回顾朝鲜战争的《最寒冷的冬天》中提到,历史上的重大决策基本都不是基于数据和逻辑,而是基于直觉和经验。我以为是相当有道理的——回顾整个故事可以看到,无论是全球地图、街景还是自动驾驶,都不是临时起意,都是在很早就思索过、尝试过,只是要等到时机成熟,有合适的人和技术,才能真正做出来。这种想象力、魄力、胸怀,值得公司的创始人学习,也值得雇员在挑选老板时参考。
回头来说,因为Keyhole的文化相对独立(年纪偏大些,也非名校出身,加入Google十多年后,Hanke独立创业时,原来的29人有8人跟随,确实是很难得的),故而他们和“Googler”之间一直存在着某种冲突的张力。Kilday简单直接的讲述方式,让我们有机会窥探IT大公司在光环之下的运作。
这种运作有着复杂的光谱,即便不同的团队之间有各种紧张关系,Google Maps的迭代速度还是一骑绝尘的。无论是从公司治理的方面,还是从个人职业道德的方面,都有很值得思考的方面。当然Googler也并非铁板一块。大家都知道搜索对Google很重要,也认可Marissa的工作能力。但是Google的不少“老”人,比如Rosing、Rosenberg、Megan,都为Keyhole的团队提供过支持和庇护。
我相信这绝不完全是因为个人恩怨,而是有为公司整体业务、生态健康的考虑。
而John和Marissa之间虽然有矛盾,即便在两人关系很僵的时候,其实呈现的仍然是复杂的生态,双方的死党Kilday的Debbie保持了比较密切的关系。想想我们身边,有些人在应对这种形势的时候,敌意特别强,要求手下个个表态、人人站队,造成泾渭分明的局面,看起来有统治力,有所谓“霸气”,其实相当愚蠢。
还有外部的因素也不可忽略。在移动版Google Maps还不确定归属给John还是Gundotra的时候,来自史蒂夫·乔布斯的“神助攻”,堪称神来之笔,给问题敲上了句号。公司内部的纷争要受外部因素的牵制,这种现象并不罕见。
此外,在Google Maps的名字已经确定之后,Marissa明摆着已经输了一阵,但她仍然希望直接对话John,而不是找人传话。在我看来,这也是职业素养的充分体现。
当然我个人更喜欢的是作者Bill Kilday平凡朴实的生活态度:身为德州人,他更希望自己的女儿在德州而不是加州接受教育,所以放弃了Google的高薪从加州回去德州;后来John拉他出来创业时曾问他:“Google Maps做得是不错,但你甘愿一辈子只成功一次(one-hit wonder)吗?” Kilday的回答是:
我觉得很好了,强过一辈子一次也没成功过(no-hit wonder)。
按照时下流行的某种观点,这种“不求上进”的知足是值得鄙视的。但是这种知足,一点也不妨碍他把Never Lost Again写得如此引人入胜。
就是这样。

2019/6/11

中国互联网网站统计史

本文来自知乎专栏 caoz 的梦呓,原名《中国互联网网站统计史》。
作者曹政,资深IT人,从事互联网工作14年,厦门 4399 小游戏首席架构师;曾参与创建一统统计,cnzz 站长统计,并曾主持搭建百度商业分析支撑平台。
很早就有朋友建议我写关于网站统计的东西,我总推脱来日方长,最近闲暇,想想还是整理一下,给大家当个故事看看也好。
  初识统计网站
  从 1998 年开始说吧,那时候互联网上还看不到太好的统计系统,只有一些所谓的计数器程序,很多都是 perl 的,贴在网站底部,显示当前网站的访问次数。
  这又分三种,一种是需要你装到自己服务器上,用 cgi 方式执行的;另一种是在线注册后给你一段 js 代码,让你自己嵌入到网页里显示的。此外还有一种,是在服务器上通过跑 web server 日志去统计的,然后每天给一个报告的,第三种也非常非常早,在 97 年我一边读书一边兼职给虚拟主机公司打工的时候,就知道有这么个东西,但是那时候对所有互联网的产品感觉上都傻傻的,没有认真去分析过,只是知道老板有在用,当作服务卖给客户,并没具体去研究过技术和需求。
  有一家最大的一家嵌入统计的,也就是上面的第二种,美国的,名字我都不记得了,好像是 fastcounter 类似的,当时被微软收购了,微软那时候搞了一个 bCentral 的平台(好像是这个名字,商业中心的意思),把一些基础服务合并在里面,提供给网站使用,我当时还很推崇来着。但是这玩意后来也没有后来了。
  让人眼前一亮的是网易的易数统计,我一直觉得,在 2000 年以前以及 2000 年左右,网易绝对是中国互联网最具有创造力和探索精神的公司,除了大家熟知的中国最早的免费邮局之外,网易还做了免费虚拟域名服务(弹窗广告,日点击至少万次,在那个年代,是惊人的数字),虚拟社区(中国最早的大型论坛,在我印象里比新浪前身四通利方的规模大多了,看上去版式也舒服多了)服务,以及最早的免费网站统计服务。
  易数统计是我非常热衷使用的产品,除了我自己的网站在使用外(1999 年-2001 年我有创业做个人站),我每天必看的是易数排行榜,当时为了推广我的交换广告服务,我给排行榜从第一名到第一百名挨个手写发邮件,那是互联网的萌芽期,也是电子邮件的黄金期,那时候,人家的回复率和应答率还是很高的,和现在不能比。
  然后,为了提高影响力,我通过我的广告交换平台刷排行榜(同行也在刷),当时争不过杭州的太极链(太极链的创始人有两个,其中一个是傅政军,人家后来搞了超级赚钱 9158,除此之外,把 kaixin.com 卖给陈一舟的也是他。),他们排在商业网站榜单第一,于是我抢了个人网站榜单第一,这也给我的服务带来了不少会员用户。(很多优质站长都在看排行榜)
  易数统计已经比传统的计数器先进了很多,增加了诸如地区分析等功能,在那个时候让人觉得不可思议。(惭愧,虽然现在我经常说把高并发下的 Ip 地址反查当作经典面试题来出,但是当年我把这个东西搞明白足足好几年。。。)
  感谢朋友提醒,当时还有一个热讯统计,热讯当时也是个有趣的公司,推出了一堆小工具,在早期互联网,我还是蛮喜欢那个公司的,然后,也没有然后了。
  重新发现价值
  2000 年前后我短暂加入了当时处于竞争关系的天图科技(后来经过合并成了现在的互动通,当时是太极链的创始公司),当时互联网一片混乱,谁也不知道未来究竟怎样,天图科技那时候也在寻找方向,想把会员网站联盟化,于是搞出来了太极榜,此时网易似乎对易数统计已经放弃,太极榜无论性能还是功能都有了新的超越,很快就成为新的市场第一,并牢牢把持了好几年。
  直到 2004 年,互动通在视频广告上尝到了甜头,太极榜似乎也被沦落放弃,那时各种 js 嵌入的东西非常不规范,又是插件流行的时代,各种弹插件的统计大行其道。
  2004 年下半年的时候,吴京川(百度联盟的创始人)跟我说,知道么,zhao123 这样的统计系统,一个月收入不少呢。我听了很震惊,重新思考统计系统的价值。另外有人跟我说,50bang 被某巨头投资了,价值极大。当时我蹉跎了好几年,还在安全行业干了两年程序员,我的广告交换服务虽然没有停止,但已经江河日下,市场地位岌岌可危。我想着用统计服务做增值服务来救活我的广告交换,其实思路完全是错的。(根本原因是,搜索引擎起来后,站长交换链接的目的是权重,而不是流量,搜索引擎的兴起彻底扼杀了广告交换网络的空间,除了色#情外,几乎没有什么大网站会上广告交换。而我胆子最小,色#情会员我是完全不会去发展的)。
  但这个东西我却去尝试了,尝试后发现广告交换无可挽回,不过统计服务是可以独立出来的。
  在与一些 QQ 好友的交流合作下,我先后推出了 tong123 和「不错统计『两个版本,第一个版本非常烂,bug 极多,第二个稍好,但也很烂。然后遇到了一个重要的买主,庞升东。
  庞升东 2000 年左右就是我广告交换的会员,还给我打电话劝我去宁波和他创业,那时候心高气傲的我哪里知道他是谁,当然一口回绝,04 年他找我合作统计,说实话,我真不觉得这代码多值钱,狠狠心,咬咬牙,报价 2 万多人民币就卖给他了。
  然后 1tong.com (编者注:1tong.com.cn)出来了,并且很快成为市场第一。(通过统计,庞挖掘了一个活跃度非常高的社交社区,并收购了下来,重新包装,推出了 51.com,这个域名的交易在北京,我有见证,并荣幸的和买家庞升东,卖家陈鹏,吃了一顿高档面条,陈鹏凭借 51.com 域名所得 98 万,再次创业成功,成就很大的事业,也是一段佳话)。
  这里补充几个细节,第一,做统计的时候,我去一个站长群里了解情况,是杜雪骞 杜和尚的 QQ 群,我去问,站长们觉得哪个统计好用,我列了好几个,但是最后答案让我意外,是不在我列表中的 hitsun.com(好吧,这个网站已经不存在了)。itsun 有同时在线功能是站长们非常强调的,这个意义我后来才搞明白,到今天谷歌统计都没有,百度统计推出来很长时间才想到去做。但是为什么 ITSun 没有成?因为他们技术没跟上,对并发的支撑完全不行。
  第二,关于代码的价值,我当时还停留在软件工程的角度思考问题,这玩意用我一个人能多少时间?一个月了不起了。(断断续续做的,当时还在做其他的东西,自己弄一个不成器的 OA 系统在卖,非常烂,不好意思提了)按照人月评估,我估计最多 1 个程序员 2 个月就可以搞定,当时月薪过万的程序员已经很出色了。所以我觉得报了 2 万多已经很过份了,而且网上,真有免费的开源代码到处下载(就是撑不住并发)。
  CNZZ的推出
  1tong 超越了 50bang 成为新的市场第一,但是 1tong 的运营负责人不断跟我抱怨,系统太不稳定,问题很多,这事我真的承认,确实写的代码不好,有很多 bug,我老老实实的总结了一些问题,列出了升级优化方案若干,然后,他们的每一任技术负责人,都是抱怨代码太烂,后来我听说他们有人还打算改写 awstats(一个著名的基于服务端日志的统计系统,实话说,的确功能很强大,但是真的撑不住并发,而且和网页嵌入式的很多技术原理不同)再建一套统计,但此事最后也不了了之,总之,我就一直要听着他们的抱怨,看着他们对我系统的无动于衷。
  1tong 成为市场第一,从技术上说,完全不是 50bang 的对手,(后面提到的 cnzz 也一样),从产品上说,学习的 itsun,也不是自己多创新;但是恰恰是因为 50bang 的设计者对需求把握不到位,而 ITsun 的技术能力不足,让这个产品有了脱颖而出的空间,当然,运营者的魄力也很重要,在那个时候,玩统计是纯花钱的东西,庞升东算是很决断的投入了。
  这里多说一句,在 2004 年还是弹插件盛行,但是 50bang 不弹,后来新出来的都不敢弹了,因为站长肯定选择不弹的。所以不弹插件后,统计怎么赚钱,真是个伤脑筋的大问题。
  其实 2004 年底,我的职场有了重大的改变,简单说,结束第二次失败的创业(搞一个不成器的 OA 系统,也是全自己开发的),加入百度了。
  2004 年底我向上司俞军请示,我入职之前有和庞升东完成统计系统的交易,但是一直还没完成搭建,那么现在入职了,我怎么处理此事,俞军说自己私下处理完就好。所以 1tong 实际上是 2005 年初完成发布上线的。而 2004 年底,我将机房里的服务器拿了出来扔在家里,彻底结束了我的广告交换服务。
  八卦一下文本广告交换,第一个做的是太极链,两个创始人,一个是韩啸,现在还在互动通,在一家公司做了 15 年,很了不起吧。他对中国互联网的贡献是,除了最早定义文本广告交换之外,还最早引入了网站视频广告技术。当时这个东西挽救了新浪,也挽救了互动通。
  另一个是傅政军,后来离职后创建了 9158,也是互联网的传奇人物; 做文本广告交换我是第二家,声势一度追平太极链,当时连 hao123 都是我的会员,但是由于胆子小,策略保守,不思进取,就慢慢停止了增长,后来领先的是 51link,也就是无忧链,创始人周浩,然后转型做广告联盟,在 2008 年最早推网页游戏的广告联盟。
  我在百度做数据分析,看到了他们的投放流量,流量大的让我震惊,又转型做游戏开发,前一年他的公司要玩科技卖给了上市公司,凭这笔交易个人身价已经超过 6 个亿。此外还有凤凰链,也做的不错,后来也成功转型,然后似乎就出国定居了,消息不多了。反正我自己是最懒最笨的,这个必须承认的。
  到了 2005 年下半年,庞升东已经开始将重心放在 51,1tong 的价值已经极大降低。而此时百度的大客户部门,提出需要一套商业统计为客户服务,当时我已经换岗到商业产品部门,他们在选型时征询我的意见和建议,我毛遂自荐,这事我来做就好了,结果遭到上司的反对,让我专注本职工作,那么不甘心的我私下还是把之前的统计代码改了一下(其实更深层的目的是,我对 1tong 的抱怨非常不爽,想证明给他们看,我提出的优化改进方案是有用的,是他们自己不弄而已。)然后给领导去看,我已经做好了,能不能试试?领导给了我一个测试的机会,但是评测结果是不行。(具体原因似乎是这样的,第一,是没有一个他们认为客户可能需要的功能,其实那个功能很简单,但是我 js 不太灵,需要前端处理的有点扎手,又觉得那个功能意义不大;第二是展示报告太简单了,这个,我不是设计师,不是前端工程师,我只是罗列统计数据,来证明系统的可行性。)
  此事在百度不了了之,知情人都仅限于几个人。但是说实话,心理还是很不服气的,人总是想证明自己,那时候我记得百度上市了,一下子 100 多美金一股非常超心理预期,我也算有些期权,算算自己是有点钱的人了;后来代码很廉价(百度上市后,真的不是贪那点钱)的给了姚剑军(阿飞这个名字是不是更有名?),然后阿飞很快就推出了 cnzz.com。
  崛起之路
  cnzz.com 一样有 bug,有问题,有很多不足;但是比起 1tong 而言,稳定性有了很大提高,功能性也有了一定的提高。而更重要的是阿飞的参与度;我一直说自己不是什么牛逼的技术,这话不是自谦,是实事求是,1tong 的各任技术负责人(人员流动好快的说)都说我代码不行,我承认他们有道理,但是阿飞觉得行,行在哪里呢?
  第一,他需要的东西,我都解决了,从功能到性能;第二,代码我大概说说他就看得懂,自己能改。阿飞本身也不是科班技术出身,他一直想做统计,还专门找人开发,但是总是卡在关键问题上处理不过来,拿过我的代码,界面不行,展示太粗陋,他找个美工设计一下,自己从代码里咔嚓就改了。有什么需要升级更新的,我跟他大概说说,他自己咔嚓就改了。所以 cnzz 成为市场第一,他是贡献最大的。
  而且,从一开始没多久,cnzz 就有一个综合搜索分析后台,类似现在的 data.cnzz.com,但功能更强悍,这个后台并不针对个站,而是综合分析所有搜索来路的数据,并给出每个搜索引擎的流量分布,地区分布;每个地区的搜索引擎流量分布(当时发现,上海的 google 使用率是东北、湖南的 5 倍以上;所以当时一些调研机构集中在北上广做搜索引擎市场使用率调研的数据,基本没法看。);每个客户端的搜索引擎流量分布;更重要的功能是,每个搜索引擎的渠道分布!完整掌握百度,google, soso,sogou 的流量渠道构成,以及彼此的对比(比如 hao123 给百度的贡献以及 265 给 google 的贡献,以此类推)。这个数据现在 cnzz 也不敢开放出来。
  我最近才明白我的优势在哪里,我技术肯定不是最好的,但是遇到问题时候我还是有很多野路子使的(这就是被人正规技术一直鄙视的原因,他们只看到了不合理的代码,却没体会到具体解决问题的诉求在哪里);我产品观还可以,不算特别好,但是总算能找到一些要点。
  所以在 2005 年之前,在统计领域,我自己的跨界优势没有对手,而另一项优势是,看到数据在那里,我能知道价值在哪里,怎么弄出来,我在百度商业分析部的时候,搞的很多东西,都是没有领导吩咐,自己鼓捣出来的。cnzz 对我而言,是一个赌气的产品,因为 1tong 说我的代码很烂,百度的领导说我的东西不行。我当然有怨气,我想证明自己,也很感谢阿飞帮我证明了自己,靠我个人是搞不定后面很多东西的,光前端就要我命了。
  好玩的是,在百度也一直没人知道,cnzz 就是我写的系统。所以他们 09 年以合作的名义找 cnzz 去讲课(那时候操盘手已经从阿飞换成了强姐),然后底下认真的记笔记,然后推出了百度统计,我都觉得好笑,你们直接找我讲就好了,我不要钱,每个细节我都告诉你,源代码都给你。干嘛这么纠结呢?
  各路对手狭路相逢
  05 年把统计给阿飞,而自己完全不参与(没要一点股份),另一个原因是,当时 Google Analytics 免费了。实话说,我对 google 统计免费的第一感觉是,绝望,我认为免费统计终结了,大家不用再做了,阿飞反而坚持还有机会,事实证明他是对的。
  好吧,必须说一下 51la,这是个非常不错的统计,可惜和 cnzz 顶在了一个时代,他们最初也是在技术上有所欠缺,并发支撑能力比 cnzz 有缺陷,所以只在 1tong 衰落和 cnzz 崛起之间的一段时间保持了领先,然后就被 cnzz 超越,到 07 年左右的时候,51la 的技术能力已经接近或追平 cnzz,但是市场格局也大势已去。顺便再说一下,50bang 也黯然关闭,而 07-08 年,为了适应更大规模的统计需求以及更复杂的功能需求,cnzz 进行了代码重构,核心技术人员,来自于 50bang,所以今天的 cnzz,已经没有我的代码了。
  另外,cnzz 崛起后,庞升东直接把 1tong 卖给了互动通,也就是太极榜的公司,互动通派来一个技术和我交流,他一直强调他们太极榜的技术多牛,数据仓库多先进,嗯,我老老实实的把 1tong 的问题和 cnzz 的升级方案给他们了,然后,也没有然后了。
  网友提醒,51yes 也是一款优秀的统计,此外还有量子统计必须提一下,实话说,我一度很想通过淘宝开放平台搞一套店铺统计,后来发现淘宝不允许嵌入 js,而很多重要的统计项目只有内部接口,也就是完全无法和量子统计平等竞争,虽然仍有很多切入点值得深挖,但是懒散的我已经没有动力去弄了。。。嗯,还有雅虎统计,这个,呵呵。
  百度统计在 10 年后基本成型,到今天,这么讲,我给人推荐都是百度统计多,原因无他,第一是功能上各家基本雷同,没什么太大差异; 第二是百度统计有个加分项,可以统计百度真实收录数,这可是站长极为关心的;而第三则是,第二隐藏了一个潜台词,有理由怀疑,使用百度统计可以给百度蜘蛛提交新页面,可以增加百度收录数!所以,还有什么理由拒绝百度统计呢?
  关于网站统计的未来
  那么,现在的网站统计,是否还有提升空间呢?有,极大有。
  07 年还是 08 年,有一个号称中科院参与合作的一个特别牛的统计系统---纬度统计,号称各种数学模型和人群分析的统计,拿了一些投资,当时我就非常不看好,很简单,第一,这种技术非常不成熟,所有的模型都是基于一些想象的分类基准,很难落实成为可信的东西;第二,让这些高大上的人群去理解草根站长,实在太难了。很快那个产品也没了。
  但是有个强需求,我从 07 年开始提,一直没有人实现,哦,我努力尝试去实现过,但是正值 cnzz 大改版,我也无法介入新系统,只好建议几下,然后似乎也不了了之。
  具体来说就是,传统的网站统计,都是基于页面的统计,每个目标页面的访问情况,每个来路页面的转化情况;稍微有一点变化的,可以基于子域名和目录统计,但是这些都不够!远远不够!!
  真正需要的,是行为统计和行为间转化;举例而言,比如说百度空间,你要看的不是哪个文章有多少访问量(运营人员或许要看),你要看的是什么行为有多少访问量(多少次文章阅读,多少次个人主页浏览。多少次评论发布,等等),以及行为到行为的转化和漏斗模型,从什么行为到什么行为,而不是从什么页面到什么页面。
  将每个 page 的数据通过某种规则聚合行为,才是统计价值所在;google 统计本身有这个功能,但是配置起来很复杂,而实际上,对于大部分使用通用 cms, 论坛系统,商城系统的网站来说,预置行为定义是很简单的事情(以商城为例,要看的统计是多少人次浏览商品,多少人次搜索商品,多少人次浏览目录,多少人次下单,多少人次加入购物车,等等行为以及行为之间的转化)。
  而对于其他类型的网站,配置可以作为增值服务提供,并不十分复杂,所以,要我说,现在的各种网站统计,基本停留在不思进取的境界。
  App 兴起,移动统计开始崛起,友盟占了先筹,而现在 TalkingData 似乎后劲更足。具体产品我了解不多,就不敢妄言了。
  但是说一个要点,统计需求,说白了,两大目标
  第一,是对市场运营行为的指导和分析,提醒运营者,不同流量渠道的价值和转化情况,来优化运营,优化市场投放,提升运营效率。
  第二,是对产品的指导和分析,提醒产品设计者,不同类型用户的行为特征和转化分析,来优化产品设计,优化产品本身的指标。
  不客气的说,很多做统计的人连这个都没搞明白。
  嗯,自夸的成分很大,您凑活看吧。
Measure
Measure

如何不靠运气致富

一般来说,富人不会分享自己发家致富的秘密。所以,有互联网以来,我看到许多在网上教人致富的人都发了财。在英文博客界,写关于如何发财的博文成为了一个专门的门类。而真正的有钱人只会用心灵鸡汤敷衍一下大众,根本不会提供任何方法论,更不要说是致富秘诀了。

2019/6/9

精编苏联政治笑话206 则(转自知乎日报)

当年高三补上历史必修二苏联单元的时候便深深爱上了苏联政治笑话(记得我另一个钟爱的东西就是二战时期的报纸社评漫画,这俩货陪伴我度过了欢乐的历史生活)。前些天翻知乎日报的时候偶尔发现了这个精华帖,于是保存下来,今天乐呵呵地看了一早上(比如43神马的就很亮)。然后文字洁癖患者修改了部分错字、符号以及病句,以飨各位。
其实编号是有错漏的(比如没有66),不过这就懒得改了。以下是正文:
苏联政治笑话系列是我迄今为止看到的含金量最高,最具幽默感的笑话。经过在网上的收集,中文网上存在着的苏联在政治笑话大概有500则左右。这些笑话大概有两个来源,一是苏联及其他社会主义国家(笑话中较常出现的是民主德国、古巴)人民表达自己愤怒的一些地下文学形式;二是资本主义国家在冷战期间进行意识形态作战采取的一种方式,其中CIA(美国中央情报局)和美国驻苏联记者应该功不可没。

2019/6/4

右而左:毛泽东具有无可置疑的晚年正确性

昨天,在人民网偶然看到李捷做客人民网的视屏,谈正确评价毛泽东是非功过。李捷是毛泽东研究权威之一,也是《毛泽东传》(1949-1976)主要撰写者之一。《传》这部1800多页的著作,我认真通读过两遍,摘要翻阅就不知道多少遍了。第一次通读的时候,我在最后一页的空白处写下了这样一个评价:本书李捷执笔部分远好于其他人撰写部分。后来在一个偶然机会,看到李捷写的一篇关于该部著作的撰写过程和他本人对毛泽东的印象。我记得最深刻的是这样几句话:这部著作以真实资料为依据,经得起时间的考验,当然,许多资料现在还不便披露,这不是因为它们对毛泽东本人不利,而是对其他人不太好(大意)。自那以后,凡是他写的关于毛泽东的文字,在网上只要见到我都要看一看。前些日子,他们一干人在广东召开“毛泽东思想与马克思主义中国化”的主题讨论会,李捷在致辞中说,中央文献出版社将陆续组织出版更多可靠的史料,对当前社会上诬蔑诋毁毛泽东的言论,进行反击。如此种种让我对李捷深有敬意。但遗憾的是,花了一个多小时看完李捷这次访谈的全部视屏,感到比较失望。前段时间,胡德平组织北京的“乌合之众”召开纪念《决议》的座谈会,提出必须守住《决议》关于文革的底线,不容任何人质疑文革是一场民族浩劫!如果说胡德平眼高手低,只能瞎嚷嚷,未必知道怎样守护这条底线,那么可以说,李捷不仅知道怎样守护而且实际上完美无缺一丝不苟的替胡德平守住了这条底线:毛泽东晚年错误从大跃进开始一直延续到文革达到登峰造极的程度,给民族造成巨大灾难。这一观念正是《决议》灌输给中国公众的——虽然决议也有所谓“客观评价”毛泽东晚年功劳的文字,甚至对某些无法回避的文革中取得的实际建设成就也给予了一定程度的肯定,正如李捷现在做的那样。现在,为毛泽东“翻案”要求正面评价毛泽东的晚年功绩,纠正关于毛泽东的“晚年错误说”的呼声日高,胡德平因乃父是毛泽东“晚年错误说”的主要炮制者之一,他又坚持乃父的衣钵,被左翼确立为右派,自然惊恐万状,但想维护其父辈确立的底线,凭他的力量显然不可能。此时,李捷从左翼里站出来,借正面评价毛泽东的功劳,守住这条底线,却很容易就做到了。这就是我对李捷这个访谈的整体性评价。这再次让我坚信,现在体制内本无左右,老百姓里说左右的人多了,便有了左右,这实际上是老百姓们自欺欺人。现在的左右本是一个集团,内部分赃意见不统一的时候,会有人借用毛泽东为他们确立的政权合法性来强化自己一方的实力,仿佛就成为了左派,而一旦内部妥协达成,他们会一致对付老百姓,这时他们就又把酒言欢,无所谓你左我右了。这些年来,诬蔑诋毁毛泽东的总源头在哪里?就在《决议》。首先,《决议》给一切和毛泽东有个人恩仇的人、学术骗子以及美国势力为代表的“和平演变”推销员们,提供了充足的想象空间,激发了他们共同一致的行为:从毛泽东的公共政治生活到毛泽东纯个人的家庭情感生活各个层面对毛泽东进行诋毁诬蔑,目标是从打破毛泽东这个偶像入手,颠覆毛泽东的社会主义的意识形态(注意不是任何别人的社会主义意识形态);其次,《决议》划定了一条红线,党内、体制内任何人不得为晚年毛泽东的错误辩护,否则不换思想就换人。曾是副总理的陈永贵的遭遇可以说明一切。1979年,《决议》尚未形成,大寨就受到胡耀邦们的公开批判,陈永贵意识到中国将发生非同寻常的变化,他特别地回昔阳主持了昔阳县第七次党代会(此时十一届三中全会已经过去两个多月)。面对1100多位代表,陈永贵先是例行公事的祝贺大会圆满成功,之后,他拿讲稿的手就颤动起来,脸色也凝重起来,随后他摘下帽子,沉静的注视会场,脱离会议议程,提议“为已经逝去的伟大导师和领袖毛泽东同志,敬爱的周恩来同志,朱德同志以及其他老一辈无产阶级革命家全体默哀”。默哀完毕,代表们抬头看时,陈永贵在主席台上老泪纵横。他忍者悲痛说:“我再提议,为悼念我县建党以来在新民主主义革命,社会主义革命和建设中牺牲生命的共产党员,为悼念我县从第六次党代会以来在农业学大寨运动中,献出生命的共产党员静默致哀”。代表们再次低下头。陈永贵自此以后,再没有回过大寨(资料来源,光碟:一个农民的传奇——陈永贵人生沉浮录)。跟随他起家的所有干部(有的已是部级省级干部),除了极少数与时俱进,换了思想者之外,其他人全部遭受政治上或者组织上的清除,有的还进了监狱。有了陈永贵的这个遭遇,谁还敢替毛泽东的晚年错误辩护?体制内和党内又会有几个人会去对诋毁诬蔑毛泽东的言论进行反击?更为重要的是,为了提高自己的威信和巩固自己的权利,一些人是主动的、有意识的放纵对毛泽东的诋毁诬蔑。历史地看,无论在理论上还是在实践中,《决议》都没有从任何意义上,取到维护毛泽东威信和尊严的作用。

简明 Vim 练级攻略

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。
——————————正文开始——————————
你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。
Vim the Six Billion Dollar editor
Better, Stronger, Faster.
学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本编辑器了,非常地难学,但是却不可思议地好用。
我建议下面这四个步骤:
  1. 存活
  2. 感觉良好
  3. 觉得更好,更强,更快
  4. 使用VIM的超能力
当你走完这篇文章,你会成为一个vim的 superstar。
在开始学习以前,我需要给你一些警告:
  • 学习vim在开始时是痛苦的。
  • 需要时间
  • 需要不断地练习,就像你学习一个乐器一样。
  • 不要期望你能在3天内把vim练得比别的编辑器更有效率。
  • 事实上,你需要2周时间的苦练,而不是3天。

第一级 – 存活

  1. 安装 vim
  2. 启动 vim
  3. 什么也别干!请先阅读
当你安装好一个编辑器后,你一定会想在其中输入点什么东西,然后看看这个编辑器是什么样子。但vim不是这样的,请按照下面的命令操作:
  • 启 动Vim后,vim在 Normal 模式下。
  • 让我们进入 Insert 模式,请按下键 i 。(陈皓注:你会看到vim左下角有一个–insert–字样,表示,你可以以插入的方式输入了)
  • 此时,你可以输入文本了,就像你用“记事本”一样。
  • 如果你想返回 Normal 模式,请按 ESC 键。
现在,你知道如何在 Insert 和 Normal 模式下切换了。下面是一些命令,可以让你在 Normal 模式下幸存下来:
  • iInsert 模式,按 ESC 回到 Normal 模式.
  • x → 删当前光标所在的一个字符。
  • :wq → 存盘 + 退出 (:w 存盘, :q 退出)   (陈皓注::w 后可以跟文件名)
  • dd → 删除当前行,并把删除的行存到剪贴板里
  • p → 粘贴剪贴板
推荐:
  • hjkl (强例推荐使用其移动光标,但不必需) →你也可以使用光标键 (←↓↑→). 注: j 就像下箭头。
  • :help <command> → 显示相关命令的帮助。你也可以就输入 :help 而不跟命令。(陈皓注:退出帮助需要输入:q)
你能在vim幸存下来只需要上述的那5个命令,你就可以编辑文本了,你一定要把这些命令练成一种下意识的状态。于是你就可以开始进阶到第二级了。
当是,在你进入第二级时,需要再说一下 Normal 模式。在一般的编辑器下,当你需要copy一段文字的时候,你需要使用 Ctrl 键,比如:Ctrl-C。也就是说,Ctrl键就好像功能键一样,当你按下了功能键Ctrl后,C就不在是C了,而且就是一个命令或是一个快键键了,在VIM的Normal模式下,所有的键就是功能键了。这个你需要知道。
标记:
  • 下面的文字中,如果是 Ctrl-λ我会写成 <C-λ>.
  • 以 : 开始的命令你需要输入 <enter>回车,例如 — 如果我写成 :q 也就是说你要输入 :q<enter>.

第二级 – 感觉良好

上面的那些命令只能让你存活下来,现在是时候学习一些更多的命令了,下面是我的建议:(陈皓注:所有的命令都需要在Normal模式下使用,如果你不知道现在在什么样的模式,你就狂按几次ESC键)
  1. 各种插入模式 
    • a → 在光标后插入
    • o → 在当前行后插入一个新行
    • O → 在当前行前插入一个新行
    • cw → 替换从光标所在位置后到一个单词结尾的字符
  2. 简单的移动光标 
    • 0 → 数字零,到行头
    • ^ → 到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
    • $ → 到本行行尾
    • g_ → 到本行最后一个不是blank字符的位置。
    • /pattern → 搜索 pattern 的字符串(陈皓注:如果搜索出多个匹配,可按n键到下一个)
  3. 拷贝/粘贴 (陈皓注:p/P都可以,p是表示在当前位置之后,P表示在当前位置之前) 
    • P → 粘贴
    • yy → 拷贝当前行当行于 ddP
  4. Undo/Redo 
    • u → undo
    • <C-r> → redo
  5. 打开/保存/退出/改变文件(Buffer) 
    • :e <path/to/file> → 打开一个文件
    • :w → 存盘
    • :saveas <path/to/file> → 另存为 <path/to/file>
    • :x, ZZ 或 :wq → 保存并退出 (:x 表示仅在需要时保存,ZZ不需要输入冒号并回车)
    • :q! → 退出不保存 :qa! 强行退出所有的正在编辑的文件,就算别的文件有更改。
    • :bn 和 :bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件。(陈皓注:我喜欢使用:n到下一个文件)
花点时间熟悉一下上面的命令,一旦你掌握他们了,你就几乎可以干其它编辑器都能干的事了。但是到现在为止,你还是觉得使用vim还是有点笨拙,不过没关系,你可以进阶到第三级了。

第三级 – 更好,更强,更快

先恭喜你!你干的很不错。我们可以开始一些更为有趣的事了。在第三级,我们只谈那些和vi可以兼容的命令。
更好
下面,让我们看一下vim是怎么重复自己的:
  1. . → (小数点) 可以重复上一次的命令
  2. N<command> → 重复某个命令N次
下面是一个示例,找开一个文件你可以试试下面的命令:
  • 2dd → 删除2行
  • 3p → 粘贴文本3次
  • 100idesu [ESC] → 会写下 “desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu desu “
  • . → 重复上一个命令—— 100 “desu “.
  • 3. → 重复 3 次 “desu” (注意:不是 300,你看,VIM多聪明啊).
更强
你要让你的光标移动更有效率,你一定要了解下面的这些命令,千万别跳过
  1. NG → 到第 N 行 (陈皓注:注意命令中的G是大写的,另我一般使用 : N 到第N行,如 :137 到第137行)
  2. gg → 到第一行。(陈皓注:相当于1G,或 :1)
  3. G → 到最后一行。
  4. 按单词移动: 
    1. w → 到下一个单词的开头。
    2. e → 到下一个单词的结尾。
    > 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(陈皓注:程序变量)
    > 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(陈皓注:程序语句)
下面,让我来说说最强的光标移动:
  • % : 匹配括号移动,包括 (, {, [. (陈皓注:你需要把光标先移到括号上)
  • * 和 #:  匹配光标当前所在的单词,移动光标到下一个(或上一个)匹配单词(*是下一个,#是上一个)
相信我,上面这三个命令对程序员来说是相当强大的。
更快
你一定要记住光标的移动,因为很多命令都可以和这些移动光标的命令连动。很多命令都可以如下来干:
例如 0y$ 命令意味着:
  • 0 → 先到行头
  • y → 从这里开始拷贝
  • $ → 拷贝到本行最后一个字符
你可可以输入 ye,从当前位置拷贝到本单词的最后一个字符。
你也可以输入 y2/foo 来拷贝2个 “foo” 之间的字符串。
还有很多时间并不一定你就一定要按y才会拷贝,下面的命令也会被拷贝:
  • d (删除 )
  • v (可视化的选择)
  • gU (变大写)
  • gu (变小写)
  • 等等
(陈皓注:可视化选择是一个很有意思的命令,你可以先按v,然后移动光标,你就会看到文本被选择,然后,你可能d,也可y,也可以变大写等)

第四级 – Vim 超能力

你只需要掌握前面的命令,你就可以很舒服的使用VIM了。但是,现在,我们向你介绍的是VIM杀手级的功能。下面这些功能是我只用vim的原因。
在当前行上移动光标: 0 ^ $ f F t T , ;
  • 0 → 到行头
  • ^ → 到本行的第一个非blank字符
  • $ → 到行尾
  • g_ → 到本行最后一个不是blank字符的位置。
  • fa → 到下一个为a的字符处,你也可以fs到下一个为s的字符。
  • t, → 到逗号前的第一个字符。逗号可以变成其它字符。
  • 3fa → 在当前行查找第三个出现的a。
  • F 和 T → 和 f 和 t 一样,只不过是相反方向。
还有一个很有用的命令是 dt" → 删除所有的内容,直到遇到双引号—— "。
区域选择 <action>a<object> 或 <action>i<object>
在visual 模式下,这些命令很强大,其命令格式为
  • action可以是任何的命令,如 d (删除), y (拷贝), v (可以视模式选择)。
  • object 可能是: w 一个单词, W 一个以空格为分隔的单词, s 一个句字, p 一个段落。也可以是一个特别的字符:"、 '、 )、 }、 ]。
假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 的位置。
  • vi" → 会选择 foo.
  • va" → 会选择 "foo".
  • vi) → 会选择 "foo".
  • va) → 会选择("foo").
  • v2i) → 会选择 map (+) ("foo")
  • v2a) → 会选择 (map (+) ("foo"))
块操作: <C-v>
块操作,典型的操作: 0 <C-v> <C-d> I-- [ESC]
  • ^ → 到行头
  • <C-v> → 开始块操作
  • <C-d> → 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
  • I-- [ESC] → I是插入,插入“--”,按ESC键来为每一行生效。
在Windows下的vim,你需要使用 <C-q> 而不是 <C-v> ,<C-v> 是拷贝剪贴板。
自动提示: <C-n> 和 <C-p>
在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p>或是<C-n>,自动补齐功能就出现了……
宏录制: qa 操作序列 q@a@@
  • qa 把你的操作记录在寄存器 a。
  • 于是 @a 会replay被录制的宏。
  • @@ 是一个快捷键用来replay最新录制的宏。
在一个只有一行且这一行只有“1”的文本中,键入如下命令:
  • qaYp<C-a>q
    • qa 开始录制
    • Yp 复制行.
    • <C-a> 增加1.
    • q 停止录制.
  • @a → 在1下面写下 2
  • @@ → 在2 正面写下3
  • 现在做 100@@ 会创建新的100行,并把数据增加到 103.
可视化选择: v,V,<C-v>
前面,我们看到了 <C-v>的示例 (在Windows下应该是<C-q>),我们可以使用 v 和 V。一但被选好了,你可以做下面的事:
  • J → 把所有的行连接起来(变成一行)
  • < 或 > → 左右缩进
  • = → 自动给缩进 (陈皓注:这个功能相当强大,我太喜欢了)
在所有被选择的行后加上点东西:
  • <C-v>
  • 选中相关的行 (可使用 j 或 <C-d> 或是 /pattern 或是 % 等……)
  • $ 到行最后
  • A, 输入字符串,按 ESC。
分屏: :split 和 vsplit.
下面是主要的命令,你可以使用VIM的帮助 :help split. 你可以参考本站以前的一篇文章VIM分屏
  • :split → 创建分屏 (:vsplit创建垂直分屏)
  • <C-w><dir> : dir就是方向,可以是 hjkl 或是 ←↓↑→ 中的一个,其用来切换分屏。
  • <C-w>_ (或 <C-w>|) : 最大化尺寸 (<C-w>| 垂直分屏)
  • <C-w>+ (或 <C-w>-) : 增加尺寸

结束语

  • 上面是作者最常用的90%的命令。
  • 我建议你每天都学1到2个新的命令。
  • 在两到三周后,你会感到vim的强大的。
  • 有时候,学习VIM就像是在死背一些东西。
  • 幸运的是,vim有很多很不错的工具和优秀的文档。
  • 运行vimtutor直到你熟悉了那些基本命令。
  • 其在线帮助文档中你应该要仔细阅读的是 :help usr_02.txt.
  • 你会学习到诸如  !, 目录,寄存器,插件等很多其它的功能。
学习vim就像学弹钢琴一样,一旦学会,受益无穷。
——————————正文结束——————————
对于vi/vim只是点评一点:这是一个你不需要使用鼠标,不需使用小键盘,只需要使用大键盘就可以完成很多复杂功能文本编辑的编辑器。不然,Visual Studio也不就会有vim的插件了