Github 的清点对象算法

使用 Github 的时候,你有没有见过下面的提示?

$ git clone https://github.com/torvalds/linux Cloning into ‘linux’… remote: Counting objects: 4350078, done. remote: Compressing objects: 100% (4677/4677), done. Receiving objects: 4% (191786/4350078), 78.19 MiB | 8.70 MiB/s

这段提示说,远程代码库一共有4350078个对象需要克隆。

这就叫”清点对象”(counting objects),Github需要实时计算出来,需要克隆的对象总数。

这个过程非常慢,根据Github的披露,像Linux kernel这样巨大的库,清点一次需要8分钟!也就是说,发出git clone命令后,会干等八分钟,然后才会开始真正的数据传输。这当然是无法忍受的。Github团队一直想解决这个问题。

后来,他们终于发现了一种新的算法,现在清点一次只要3毫秒!

为了理解这个算法,你必须先知道,什么是Git的对象。简单说,对象就是文件,最重要的对象有三种。

快照对象(Commit) 目录对象(Directory) 文件对象(File)

每次提交代码的时候,会生成一个commit对象,里面有对应的当前”目录对象”的名字。”目录对象”保存了代码根目录所含有的子目录和文件信息。每一个子目录就是另一个”目录对象”,每一个文件则是”文件对象”,里面是具体的文件内容。

所以,”清点对象”就是清点各种commit、目录、文件等。git clone和git fetch操作都需要清点对象,因为需要知道,到底下载哪些对象文件。

清点对象的原始算法如下。

列出本地所有分支最新的一个commit 列出远程所有分支最新的一个commit 两者进行比较,只要有不同,就意味着分支发生变动 每一个发生变动的commit,都清点其中具体变动的子目录和文件 追溯到当前commit的父节点,重复第四步,直至本地与远程的历史一致为止 加总所有需要变动的对象

上面的过程说明,”清点对象”是一个文件遍历算法,变动的对象会被一一清点到,这就意味着大量的文件读操作。对于大型代码库来说,这个过程非常慢。

[…]

Telegram传奇:俄罗斯富豪、黑客高手、极权和阴谋…

说了很久要写Telegram的故事,一直拖延没有写。在我拖延的这段时间里面,Telegarm继续快速增长,前几天,在旧金山的TechCrunch Disrupt活动上,创始人Durov说现在Telegram每天发送的消息数已经达到了120亿条,而今年2月的时候只有10亿条,是时候写完这个故事了。不过,随着它的出名,在中国也毫无悬念的变得难以访问,所以,如果你看完下载了它,又觉得不好连上,程序崩溃什么的,这并不是Telegram的错。

每天120亿条消息是什么概念呢?我能找到的Whatsapp最新一次公布这个数字是今年4月,每天640亿条,这可是Facebook以190亿美金代价重金收购的App,并且被当作Facebook在移动平台上最好的投资之一。出生在最大的互联网市场美国,并且有Facebook的全力支持,也只是几倍于Telegram的规模而已。如果不出意外,未来的某个时候,Telegram会超过Whatsapp。

消息数量和月活跃用户上,Telegram显然比Whatsapp和微信还有很大差距。但这是一个只有2年历史的新工具,并且他是一个完全私人拥有的公司,没有其他股东,没有投资人,号称永远不会出售,并且,它有着一支人数极少又战斗力极强的团队…这一切都让这个产品显得与众不同。如果要说这个时代的传奇,Telegram和它的创始人甚至团队,都完全可以入选。它和人们所知道的各种创业故事、商业传奇完全不一样,但又具有传奇故事的一切要素:黑客高手、政治、极权、阴谋…富豪,一应俱全。

2014年1月24日对于Telegram是个惊喜的里程碑。在这一天,Facebook宣布收购了最流行的即时通讯软件Whatsapp。在之后的5天里面,Telegram增加了800万用户。究其原因,很多发达国家的用户对隐私有着更大的担忧,Whatsapp变成了Facebook这样大公司的资产,之后必然会发生数据交换,这是对隐私的巨大挑战。越来越多的数据掌握在大公司手里,这显然不是一件让人放心的事。这时候开始有更多人注意到了Telegram,这个极其注重隐私的工具,并且开始尝鲜。在那几天,很多人是第一次知道其创始人Durov兄弟,并且从媒体得知了他们是俄罗斯富豪。以至于Durov不得不在Twitter喊话,说请用户放心,我们团队并不在俄罗斯,现在的公司注册于德国柏林,非常安全。

他们当然非常安全,因为柏林也只不过是这个团队一系列复杂的离岸公司控股结构中的一环。至于团队到底在哪,干脆没人知道。创始人Pavel Durov很可能根本不和团队在一起,甚至很多人猜测他们压根没有一个物理的办公室,而是一个用Telegram沟通的分布,实际人分散在世界各地的团队。酷爱八卦的媒体们也基本没有挖到过他们在物理世界的位置,更没有探访过他们的办公室。至于Pavel Durov本人,倒是会偶尔出现在世界各地接受一些采访和参加活动,只不过一会儿出现在柏林,一会儿出现在旧金山,有记者问他到底住在哪,他想了一下,似是而非的回答“巴黎挺不错的。“在Telegram发展的这两年里面,被媒体挖到的办公室位置只有一次,那是在位于纽约州水牛城(Buffalo, NY),这是一个和高科技不怎么沾边的城市,它是尼亚加拉大瀑布的美国那边,和加拿大安省接壤,并且以安大略湖的大湖效应造成的巨型暴风雪出名。这曾经是Pavel逃离俄罗斯之后的第一站,我甚至怀疑他们是到机场随便买了最近一班离开俄罗斯的飞机,从而随机到了这个城市。Telegram团队也提到过,他们第一个数据中心位于Buffalo。但现在那个办公室早就人去楼空。不知道是不是因为被人发现所以搬家了,我还是请朋友帮忙拍下了这个外观相当普通的办公楼照片。这个团队的神秘和传奇可见一斑。

在创建Telegram之前,Pavel Durov以俄罗斯社交网站VK创始人闻名。2006年Pavel Durov和他的哥哥Nikolai Durov一起创建了VK,随后的几年,它成了俄语区最流行的社交网站。Pavel Durov不止一次自豪的说,VK是唯一一个在自由市场竞争中胜过Facebook的产品。Mark Zuckerberg后来自己也承认,曾经认为Facebook超越VK是早晚的事,没想到到现在已经有10年,仍然没能超过它。Pavel也毫不掩饰VK曾经从Facebook借鉴了很多东西,他说,毕竟我不是设计师啊,要全都自己设计要花更多时间。早期的VK从页面设计到推广方法,都跟Facebook完全一致,他也是从俄罗斯几个著名大学开始的,但后来变得越来越不一样。Pavel Durov 和Facebook创始人Mark Zuckerberg岁数一样大,都出生于1984年。媒体曾经总是把这两个人放在一起对比,两个年轻的互联网新贵。但是近年来形势变得非常诡异,为了言论自由,Pavel被迫放弃了他曾经所创造的一切,逃离俄罗斯,安全生活在美国的Mark Zuckerberg反而一直配合俄罗斯政府自我审查,Pavel经常发文讽刺他…看到Mark和Facebook这几年的所作所为,我完全赞同Pavel对他的讽刺。

图片:Pavel Durov 照片,真是帅啊,这张是给女读者的福利…

2011年开始,事情的发展已经美国人已经很难看懂了,但是还好我们是中国人,我们都懂。这一年,Durov兄弟的日子开始艰难起来。他们是强烈的自由捍卫者,认为言论自由高于一切。当时,俄罗斯国家安全机构要求VK关闭一些普京反对者的页面,遭到了Pavel拒绝。随后全副武装的反恐警察小队就突袭了他的住处和办公室,想必后来也发生过很多次不为人知的秘密谈话…

2014年俄罗斯入侵乌克兰的时候,俄罗斯安全机构再次要求VK交出一位乌克兰活动家的个人信息,Pavel不仅贴出了文件全文,还连续贴了两张穿着衣服的小狗照片嘲讽安全官员们。

图片:他收到的俄罗斯安全部门的文件其实还是很正规的,要是其他国家也可以给一份这样的文件,删贴的时候大家可能会更没怨气一点吧。

图片:他回复的就是这张小狗…

图片:随后又发了这一张…

这大概彻底激怒了普京。其实在此之前也有一些奇怪的事情也开始发生在了Pavel Durov身上,比如指控一辆他名下的汽车发生了交通事故逃逸之类的,尽管他自己根本没碰过这辆车。

Pavel Durov并没屈服。普京对他的要求很简单,要么听话,要么把所持有的VK股份,卖给普京亲信所掌握的基金或者其他关联公司。Pavel仍然拒绝出售股份,只是这一次,他回旋的余地越来越小了,在前面几年中,普京亲信的基金们一直在从VK其他股东手里收购股份。董事会里面Durov兄弟终于成了孤家寡人,最后被迫卖出股份,放弃了他创造的一切。当然,俄罗斯政府比其他国家稍微好一点,至少是花钱买股份,因为有保密协议,Pavel没有透露过实际交易金额,不过人们推测应该有4亿到5亿美元这个级别。比起Facebook的市值不值一提,但对Pavel这样有足够大理想又一心实践理想的人,这已经能让他做很多事了。

图片:Pavel Durov 回应mail.ru并购VK事件。mail.ru同样被普京亲信的基金控股,过去mail.ru本来也有VK股份,Pavel手里还有mail.ru的投票权,这一次是要完全并购…另外,mail.ru股东还有一家中国公司,猜猜是谁?呵呵,答案是腾讯…

在被查水表的那些年里面,Pavel已经开始逐渐实施他理想的生活模式,其中最重要的一点是放弃所有固定资产。他卖掉房子、家具、车…到他卖出VK股份的时候,他已经不再持有任何固定的资产了,只有大量的钱。差不多也是在这段时间里面,他和哥哥Nikolai完成了Telegram最早期的工作。关于为什么要做一个强加密,非常在乎隐私的工具,Pavel Durov自己说,是第一次被警察突袭住处的时候,他给哥哥打了一个电话,电话接通的瞬间,他突然意识到电话是不安全的,一定会被监听。随后他发现,没有任何通讯方式可以保证他想要的安全和隐私,它们都有各种缺陷,要么是天生的缺陷和技术限制,要么是工具运营者的配合,导致这些工具毫无安全可言。

既然没有一个可靠的通讯工具,那就自己做一个好了。兄弟两人又一次重新合伙开始一个新项目,Nikolai为这个工具设计了加密协议和架构,这就是Telegram。所以,Telegram是为了隐私和安全而生的。和一些工程和产品团队开发的通讯工具不一样,它是真正由数学家主导的项目,坚实可靠。

说到这里,要介绍一下同为VK创始人的Nikolai Durov,他是Pavel的哥哥。wikipedia上对他的描述是“程序员,数学家”,此人参加了3次国际数学奥赛,拿回了3块金牌,又参加了4次国际信息学(计算机)奥赛,拿回了1块金牌和3块银牌…绝不空手而归,从小就是天才人物。Nikolai Durov并不是那种擅长竞赛数学的书呆子,除了读了2个数学Phd,他还一直领导VK工程师团队。那也是一个人数少而精的技术团队,他们完成了VK整个的工程和技术需求,一直到2013年才停止VK的工作。

离开俄罗斯的时候,他们从VK团队中挑选了一些愿意一起满世界流浪的高手,继续由Nikolai带头,组成了Telegram的团队。到目前为止,没有任何公开的资料介绍过团队成员,只能从Github上代码的贡献者稍微窥探到一些团队成员的风格。Pavel在几次访谈和自述中提到过,这个团队中至少有6个人得过ACM竞赛大奖。并且都可以轻松拿到Google或者Facebook这个级别公司极好的Offer。当然这也造成了巨大的人力成本开支,Pavel说因为Telegram不打算出售,团队成员没法通过期权获得收益,所以给大家期权没有意义,他只能给团队开极好的薪水。薪水好到什么程度不得而知,至今只能知道Telegram的开销是每月100万美元,包括人力和硬件网络等等资源开销,大致估算一下就可以知道,这的确应该是极好的薪水,远超过Google这个级别公司高级工程师水平。相对于微信的支出,这个开销应该是个小数字,但考虑到所有资金都是Pavel自己一个人出的,虽然是有几亿美金的富豪,也是个不小的压力。Pavel不止一次表示,绝对不会对最终用户收钱,但是他早晚要让公司盈亏正常。他对于Telegram的预期并不是赚钱,而是可持续,只要公司赚的钱能负担自己的开销,他就满意了。对于始终期盼增长,已经很有钱但还要赚更多钱的互联网大佬们,这是难以理解的疯话。但我相信他是真诚的,Pavel从来不是一个在商言商的人,就算在VK发展比较顺利的时候,他也没事就会发表一些政治言论。这些言论就算在美国都有点惊世骇俗,比如建议俄罗斯废除货币之类…一些颇有乌托邦色彩的言论。他也曾经说过,当他开始有钱的时候,去看了其他俄罗斯有钱人的豪宅和游艇,当即就明白了这不是他想要的生活。对于他来说,改变世界本身比钱有意思的多,钱只是他在改变世界过程中的副产品和资源。他当然有资格讽刺Mark Zuckerberg,比起Pavel的生活,Mark所谓的叛逆只不过是见投资人时候不穿正装穿帽衫而已,实在孩子气。

今年年初,笑来老师迷上了Telegram,想在上面做一些东西,那段时间我帮他读了不少Telegram的代码。边读边佩服这个团队的优秀。Nikolai设计的协议MTProto极其优秀,兼具数学和工程之美,它的加密基础非常完善,同时又在工程上很出色,Telegram传递的消息实际是函数,可扩展性相当强。同时,所有代码都是开源的,在github上可以看到每个项目的贡献者人数都很少,但代码质量相当高。我很惊讶于如此短的开发时间,如此少的人数,产生出这么高质量的代码。Telegram的特色就是快,它的快体现在各方面,不仅仅是协议本身精简造成的传输速度快,Telegram在各平台上的实现几乎都是从最底层的简单API实现,几乎不使用常见的库,而是自己实现所有界面控件。他们的所有控件样式也相当简单,从而让绘制效率非常高。这些努力最终得到的回报,就是它使用起来速度极快,极流畅。如果你在一个正常的网络环境使用,会非常直观的感受到它的效率和稳定。到今天,已经加入了相当多功能的Telegram(包括自定义的贴纸表情和机器人)iOS版只有30M的体积,而微信早就到了90多M,就算是功能简单的多的Whatsapp也有40多M。有兴趣琢磨代码的同学可以去Github上慢慢研究他们开源的代码,肯定会大有收获。

电子前线基金会(EFF)有过一个关于常用通讯软件安全性的评测,其中Telegram的隐私模式满足所有标准。达到这些标准的工具里面,Telegram无疑也是最好用,最时尚的一个。而且Telegram对于安全性的做法也很富豪,Pavel开出赏金,只要有人找到协议的漏洞,就给10万美金奖金。2年来确实有一个人拿到这笔钱,准确的说,那个人找到的是一个隐患,而非漏洞,不过Pavel说隐患也很重要,奖金照给。

一流的数学和工程团队+开源+重金安全悬赏,这些条件造就了Telegram的可靠,让人很难不信任他。我知道有很多人说“等他们需要赚钱的时候会如何如何”,这些人往往也是认为赚钱是第一重要,他们难以理解,甚至难以接受这世界上有不怎么把钱当回事的有钱人,估计他们也更难理解为什么另一位硅谷富豪Mitch Kapor会全心投入电子前线基金会(顺便说一句,此人也是Uber的早期投资人,将来我也会写他的传奇故事)。另外还有一些人说“哈,使用电话号码注册也好意思叫安全”,我觉得他们应该考虑一下自己的数学天分是否比Nikolai更高,然后再去仔细琢磨一下Telegram设计的良苦用心。无论从任何角度看,Telegram都是目前流行通讯工具中最可靠,最令人放心的一款。同时,Telegram用户量的暴涨本身就创造了一个奇迹,这是在互联网主流市场之外成长起来的社交工具,并且最终得以侵蚀美国市场。很多创业者和投资人根本不信这种事情发生…Telegram不仅不在硅谷,甚至你根本不知道他们到底在哪。

2012年,Pavel还做过一件上了世界各国媒体头条的事情,他和VK的一位副总裁在办公室窗口往楼下扔钱,当时扔的每张纸币差不多值170美元。可惜后来抢钱的人开始打起架来,秩序一度非常混乱,Pavel只好停止了。Youtube的视频上可以看到,他把钱叠成纸飞机扔下去,看着人们抢来抢去开心的哈哈大笑。那一年他27岁,整个事件看起来就像是年轻的富豪暴发户拿路人取乐。不过后来Pavel解释过动机,他说当时他给了VK一位副总裁一笔奖金,这位副总裁跟他差不多,也认为钱只不过是改造世界的副产品,没什么珍贵的。Pavel很高兴说既然觉得没用,那你把这笔钱扔掉好了。这位副总裁当即开始往楼下扔钱,Pavel拦住了他,说你这样扔太没创意了,看我的,随后他把纸币叠成纸飞机飞出窗外。这架纸飞机后来被做为了Telegram的Logo。Pavel非常喜欢扔纸飞机那个时刻,他觉得那非常能代表他叛逆精神。那并不是暴发户对金钱的挥霍,而是对自由的向往。

图片:视频本身不是很清晰,不过,就算模糊也能看到这架纸飞机了吧?

[…]

七十六年后,哪些哈佛人经历了成功人生?

本文作者:游识猷

本文首发于作者游识猷的微博,除非获得作者同意,不得商业转载(再次给出作者联系方式:新浪微博@游识猷)

故事从 1938年开始。

那一年,时任哈佛大学卫生系主任的阿列 ·博克(Arlie Bock )教授觉得,整个研究界都在关心 “人为什么会生病/失败 /潦倒” ,怎么没有人研究下“人怎样才能健康 /成功/ 幸福 ”? 博克提出了一项雄心勃勃的研究计划,打算追踪一批人从青少年到人生终结,关注他们的高低转折,记录他们的状态境遇,点滴不漏,即时记录,最终将他们的一生转化为一个答案 ——什么样的人,最可能成为人生赢家。

人生赢家的标准十分苛刻。主持这项研究的整整 32年的心理学者乔治·瓦利恩特( George Vaillant)说,赢家必须“十项全能”:十项标准里有两条跟收入有关,四条和身心健康有关,四条和亲密关系和社会支持有关。譬如说,必须 80岁后仍身体健康、心智清明(没活到 80岁的自然不算赢家);60-75岁间与孩子关系紧密;65-75岁间除了妻子儿女外仍有其他社会支持(亲友熟人)等; 60-85岁间拥有良好的婚姻关系;收入水平居于前 25%。

这就是著名的“格兰特研究 (The Grant Study)”。研究名字缘于最初的赞助者,慈善家威廉·格兰特( William T. Grant)。如今,这项研究已经持续了整整 76年,花费超过2000万美元。

从 1939年到1944 年间,这项研究选择了 268名当年正在哈佛就读的本科生作为研究对象。这批人已经站在美国年青人的巅峰,他们有着光明的未来,得享成功与长寿的几率很大。这正是格兰特研究需要的 ——研究对象要活得够长,否则就不算 “笑到最后” ,要足够成功,否则怎能算 “笑得最好” ?

入选者当年都在 19岁上下,全部是家境良好的美国籍白人男性,身心健康,仪表堂堂——事实上,每个入选者都经过严格的体格“选美 ”,研究者倾向于挑选猿臂蜂腰者,因为一开始的猜测是, “富有男性气概者”更可能拥有幸福人生。

每隔 2年,这批人会接到调查问卷,他们需要回答自己身体是否健康,精神是否正常,婚姻质量如何,事业成功失败,退休后是否幸福。研究者根据他们交还的问卷给他们分级, E是情形最糟,A是情形最好。不过,光是自我评定可不够。每隔 5年,会有专业的医师去评估他们的身心健康指标。每隔 5-10年,研究者还会亲自前去拜访这批人,通过面谈采访,更深入地了解他们目前的亲密关系、事业收入、人生满意度,以及他们在人生的每个阶段是否适应良好。

这批人可谓“史上被研究得最透彻的一群小白鼠 ”,他们经历了二战、经济萧条、经济复苏、金融海啸,他们结婚、离婚、升职、当选、失败、东山再起、一蹶不振,有人顺利退休安度晚年,有人自毁健康早早夭亡。最终,这 268人里确实涌现了不少成功人士,迄今有 4个美国参议员,1个州长,甚至 1个美国总统—— […]

FEX 技术周刊 – 2015/09/28

作者:zhangjunah

百度WEB技术专栏

LineUp:多属性排序的可视分析 http://efe.baidu.com/blog/lineup/ 在我们的日常生活中经常会遇到各种各样的排序列表,排序是将无序的数据项集合重组的普遍方式,它基于数据项的单个或多个属性值为数据项计算一个排名。

深阅读

How Chromium Works https://medium.com/@aboodman/in-march-2011-i-drafted-an-article-explaining-how-the-team-responsible-for-google-chrome-ships-c479ba623a1b Today, I’d like to tell you about how Chromium works. Not Chrome, the browser, but Chromium, the group of people who build the browser. Hundreds of engineers work on the Chromium project. Together we commit about 800 changes to the codebase every single week. […]

【第2编辑室】来认识下编程运动界的“乔丹”吧:他拿到6连冠时只有18岁

ACM国际大学生程序设计竞赛是全世界最具影响力的大学生计算机竞赛,圣彼得堡国家信息技术、机械学与光学研究型大学(简称“圣光机大学”)拿下了今年比赛的冠军。有人觉得这毫不意外,因为圣光机大学有一位传奇人物——Gennady Korotkevich。

Gennady Korotkevich

过去10年,Gennady Korotkevich更让人熟知的是他的网名——Tourist。Gennady Korotkevich来自白俄罗斯,出生在1994年。8岁那年,他在白俄罗斯的一项编程大赛中得到了第2名,这个比赛很有分量,以他的表现,他可以直接免试进入任何一所大学。

从他12岁开始,也就是2015年,Tourist开始了统治编程大赛的历程。他拿下了从2007-2012年6届国际信息学奥林匹克竞赛的金奖,这是高中生参加的最高级别编程大赛。之后,他又帮助圣光机大学包揽了2届ACM国际大学生程序设计竞赛的冠军,而这个比赛规定,每个人只能参加2次总决赛。他拿下的其他由Facebook、Google赞助的顶级编程比赛大奖更是不计其数。

彭博社最近写了一篇长文介绍了他成为传奇的经历,也介绍了并不为人所知的各种编程比赛,很多聪明的学生把它当成获得名校和大公司垂青的途径,还有人在工作后仍然会去参加比赛,还有人甚至把它当成了一种职业。其实,这也可以称得上是一种运动,就叫sport programming(编程运动)。

以下是文章的节选:

 

21岁的Gennady Vladimirovich Korotkevich已经是个传奇。他在网上被人熟知的名字是Tourist,现在,他是全世界最顶尖的编程运动选手。他和其他的编程高手一起角逐,解决编程难题。他精于此道,或者说,他简直太擅长了。

“或许他是唯一一个可以以此谋生的人,因为Gennady赢了太多比赛了,” Vladimir Novakovski说到,他是一位退役的编程大赛选手,却仍然非常关心比赛,“我们从来没见过像他一样的人。”

Korotkevich可以靠他的技能在硅谷任意一家公司获得一份高薪的工作,但这位白俄罗斯小伙还没打算把编程当成一种职业。今年秋天,他将重回圣光机大学,他说自己可能会选择称为一名研究人员。

我很想告诉你编程运动很好看,这项运动现在的“神”非常有魅力。但实际情况是,这项运动没有那种可以反复播放的慢镜头集锦,也很难发现令人不可抗拒的个人魅力。编程运动在很长时间里,包括现在依然不被人注意。这是一项表彰天赋,坚韧和团队合作的运动。在2015年的今天,成为一个优秀的编程运动选手是帮助18岁的年轻人被那些愿意往天才程序员身上撒钱的公司注意到的不二之选。

Facebook的Hacker Cup是一年一度的编程运动大赛之一。初选在网上进行,选手们要在线解决编程难题。进入决赛的高手们可以去Facebook总部参加比赛,费用全部由Facebook承担。所以你明白了吧,对于来自俄罗斯、东欧、亚洲的年轻人来说,Hacker Cup会是个不错的硅谷之旅,而且他们能在吃着免费寿司的时候接受一两家硅谷公司的面试。

Hacker Cup决赛场地

Hacker Cup的决赛在一间多功能会议室举行,里面有4排颜色单调的桌子,墙上有夸张的海报,写着“专注”(FOCUS),“大胆”(BE BOLD)。几乎所有的参赛者都用相同的方式使用这些桌子:把自己的笔记本电脑连接到巨大的显示器上,手边放着笔记本和笔。

所有的参赛者——这很让人吃惊——都是男人,或者至少在成为男人的路上。他们看起来不是那种健壮的人,平均体重不超过120磅(54公斤)。他们有着让人不安的一套特有的特征,不管是语言还是动作。而且,他们差不多都是锅盖头发型,脸色苍白,衣着邋遢。如果扎克伯格在这间屋子里,他就是阿多尼斯(Adonis,希腊神话人物,以俊美著称,是西方“美男子”的最早出处)。

扎克伯格 Vs 阿多尼斯

Hacker Cup和其他编程比赛差不多:3个小时内用任何方法解决5个难题。编写的程序要尽可能高效。最快时间内写出的最干净、最准确的代码获得第一名。通常题目可能是:给定一系列限制条件后问从旧金山到洛杉矶的最短路径,或者是怎样以一个特定的方式铺满地板。这些问题通常是一些著名的算法或者数学解构的全新变种,精英选手们必须快速找出背后的逻辑并相信自己的能力,“你必须很早就确信自己能通过哪种方式解出难题,”Wesley May,一位运营Hacker Cup的Facebook工程师说到。

Facebook Hacker Cup的题目

Hacker Cup开始前,参赛者看起来都很镇定。斯拉夫人来回走动,和来自中国、日本的竞争者们聊着天。一个年轻人开始调试他的工作站,过程中不停的握紧、放松自己的拳头。Korotkevich在和他的克星,来自俄罗斯的Petr Mitrichev聊天。后者已经30岁,是一名Google雇员,如果以编程运动的标准来看,他简直就是个“古代人”。当Korotkevich离开会议室去拿零食的时候,我向他介绍了自己,几句尴尬的交流之后,我问他是否能接受采访。“看看吧,”他回复到,之后他就再也没跟我说过任何话。(他的朋友像我解释,几年前,《连线》写了一篇关于Korotkevich的采访,说他会“以处男之身而死”,之后他就不接受媒体采访了。)

Korotkevich静静地坐在他的桌子前,手边放着一杯水,他看起来就像是个编程刺客:黑鞋、黑裤子、黑色的兜帽,一头拖把一般的棕色头发垂在右半边脸上。水杯旁边,是另一个编程大赛的棒球帽以及他的纸笔。

所有人坐定后,一个Facebook的监考人员会来到会议室前,拿起麦克风,快速的陈述规则后就开始计时,“三、二、一,”他数完,“祝愿最好的程序员赢得比赛”。

这些细节决定了为什么编程大赛甚至没有“拼字比赛”在电视上获得的曝光率高,它甚至比不上同为宅男运动的国际象棋比赛和口袋妖怪锦标赛。一切都是因为它几乎没有“运动”,比赛开始后整个会议室就陷入了沉寂。5分钟之后,终于有人放下写得一片潦草的笔记本,去键盘上敲了几个字。

竞争对手们认为Korotkevich一半是天才,一半是因为他的努力。他从很早时就开始参加编程运动,不断的比赛过程中,他几乎遇到了所有的题型。他第一次让众人震惊是在8岁,他在白俄罗斯的一项编程大赛中得到了第2名,这个比赛很有分量,以他的表现,他可以直接免试进入任何一所大学。12岁那年,他在国际信息学奥林匹克竞赛种排名第20,这是最有影响力的高中比赛,随后他就创造了夺得3连冠的记录。

当Korotkevich开始思考难题的时候,他的脚开始以每秒钟数次的频率抖腿。他拿起铅笔不停地在手背转动,然后拿过水杯,不停地揉捏下巴。比赛开始10分钟后,他终于开始打字。他依然在抖腿,手上却像一个速记员一样以不可思议的速度上下翻飞。每7秒钟,他会眨一次眼。(记者可能看比赛看得实在无聊了,这是我乱入的)

在比赛的第14分钟,图书馆一般的沉静被一声打嗝声打破,但是接下来没有一句“不好意思”。在第19分33秒,Mitrichev提交了第一个答案。我知道他的名字原因是会议室前的选手积分榜上出现了他的名字,积分榜上显示着他解决的问题以及用时。选手积分榜是个难得的吸引人的东西,因为它能帮你一窥比赛的背后。积分榜上只显示Mitrichev解出了这个问题,以及用时,却没有显示他到底对不对。这个信息知道比赛结束才会揭晓。在第24分钟,第二名参赛者提交了答案。1分钟后,Korotkevich的名字第三个出现在了积分榜上。

Korotkevich看起来对对比赛的紧张完全免疫,他更加专注于自己的身体机能。45分钟后,他——我没有其他的方式描述了——开始挖鼻孔,然后看看手里的“工艺品”,继续挖鼻孔,挖出更多东西。之后,他向其他参赛者树着携带大批“工艺品”的中指去了洗手间。这位老兄太优秀了还能抽出时间去撒个尿。

在大部分比赛中,Mitrichev都能拔得头筹。他能解出很多题目,而且速度最快。“Petr以前在Google工作,但后来他们关闭了莫斯科办公室,”Facebook的May说到,“我们是这挖他但运气不太好。”(他现在在Google的瑞士办公室工作)

比赛最后一个小时,终于出现了一些容易察觉的瞬间。所有参赛者都开始坐立不安,一些人站起来咬指甲,很快他的站的地方就有了个“大改观”。Jakub […]

为什么主引导记录的内存地址是0x7C00?

《计算机原理》课本说,启动时,主引导记录会存入内存地址0x7C00。

这个奇怪的地址,是怎么来的,课本就不解释了。我一直有疑问,为什么不存入内存的头部、尾部、或者其他位置,而偏偏存入这个比 32KB 小1024字节的地方?

昨天,我读到一篇文章,终于解开了这个谜。

首先,如果你不知道,主引导记录(Master boot record,缩写为MBR)是什么,可以先读《计算机是如何启动的?》。

简单说,计算机启动是这样一个过程。

通电 读取ROM里面的BIOS,用来检查硬件 硬件检查通过 BIOS根据指定的顺序,检查引导设备的第一个扇区(即主引导记录),加载在内存地址 0x7C00 主引导记录把操作权交给操作系统

所以,主引导记录就是引导”操作系统”进入内存的一段小程序,大小不超过1个扇区(512字节)。

0x7C00这个地址来自Intel的第一代个人电脑芯片8088,以后的CPU为了保持兼容,一直使用这个地址。

1981年8月,IBM公司最早的个人电脑IBM PC 5150上市,就用了这个芯片。

当时,搭配的操作系统是86-DOS。这个操作系统需要的内存最少是32KB。我们知道,内存地址从0x0000开始编号,32KB的内存就是0x0000~0x7FFF。

8088芯片本身需要占用0x0000~0x03FF,用来保存各种中断处理程序的储存位置。(主引导记录本身就是中断信号INT 19h的处理程序。)所以,内存只剩下0x0400~0x7FFF可以使用。

为了把尽量多的连续内存留给操作系统,主引导记录就被放到了内存地址的尾部。由于一个扇区是512字节,主引导记录本身也会产生数据,需要另外留出512字节保存。所以,它的预留位置就变成了:

0x7FFF – 512 – 512 = 0x7C00

0x7C00就是这样来的。

计算机启动后,32KB内存的使用情况如下。

+——————— 0x0 | Interrupts vectors +——————— 0x400 | BIOS data area +——————— 0x5?? | OS load area +——————— […]

墙、感染、信任和欺骗

本文原发于我的微信公众帐号歪理邪说(wxieshuo) 2015.09.20 20:33

2015.09.25 01:07 被删除 “您好,经用户举报,发现此公众号涉嫌违反相关法律法规和政策,违反《微信公众平台运营规范》, 违规消息“墙、感染、信任和欺骗”已删除处理,请遵守规范,让我们共创健康绿色的运营环境。如有异议,可发起申诉。”

删除时本文数据: 阅读 127951 点赞 422 评论 68

最近XcodeGhost导致的严重安全问题,相信大家已经从各个渠道知道了。简单概括一下,有人在中国网盘和论坛上传播了一个修改过的Xcode,这个版本的Xcode会在编译出来的App上面加一些可以被远程控制的代码,并且发送数据到某个服务器上。这是iOS出现以来,未越狱系统遭遇的最大安全威胁,在此之前苹果的Sandbox模式几乎没遇到过挑战,iPhone用户甚至大量iOS开发者都认为系统固若金汤,不可能遇到问题。

在XcodeGhost开始被媒体报道的时,很多人大大低估了它的风险。我在乌云报道这个问题的当天,在朋友圈上建议大家先把中招的app都删掉,并且立刻修改iCloud密码,开两步验证。甚至遭到了不少人反对,还有好几位iOS开发者告诉我这件事没什么大问题,因为iOS有Sandbox,不会造成什么伤害。当时网易也发了一个关于云音乐被感染的说明,也是类似不痛不痒的口气。这些说法当然都是大错特错的,会有这种想法,是因为只会站在程序员角度看问题,如果对安全问题稍微有一点敏感性,就会立刻意识到这是极严重的威胁,稍微发挥一些想象力就会被吓着。

所谓安全威胁,大部分都是在获取到非常有限资源的情况下,利用社会工程学(俗称:骗)来达到目的。比如,你觉得让别人看到你的通讯录有什么问题吗?很多人会认为虽然不舒服,但不会有什么威胁。实际上,骗子会从通讯录里面挑出来你父母的电话,打电话去骗他们。所以,这和iOS有没有sandbox,能不能保护系统安全没关系,只要我获得了一个机会,能控制你信任的app上弹出对话框,我就可以利用这个对话框来骗你输入系统的重要密码。程序员应该想象力再丰富一点,不要把目光局限于“系统给了我什么权限”,而是要扩展到“如果我被完全信任了,我能进行什么样的欺骗”。

我不打算在这里讲太多直接的安全问题,毕竟已经很多人分析过了,在好几篇非常不完善,极大低估这次事件威胁的分析文章之后,腾讯给出了一篇相当详细的分析,比较符合我的观点,也把问题的严重性说的非常清楚。在腾讯的分析里面,说可以利用OpenUrl来操作用户拨打电话,同样又有iOS开发者说“OpenUrl不能控制iPhone打电话”。事实上,OpenUrl可以弹出一个带有固定电话号码的弹窗,上面有“拨打”和“取消”两个按钮,这确实不算直接拨打了电话,但如果给一千万个用户在某个特定环境下弹出一个这样的窗口,其中有多大比例的人会去点“拨打”呢?如果程序员不去提高想象力,总把安全问题和功能局限在系统文档提供的“能做什么”这个范围内,软件的安全性实在让人难以信任。

具体的安全问题有更专业的人去普及,本文不多说,在这里我更想谈谈关于信任的问题。在这次事件中,也有一些人想起了Ken Thompson大神(Unix系统/C语言的前身B语言/Go语言的直接贡献者,称作Unix之父也不过分)在1984年的一次演讲,在那次演讲中中,Ken讲了他在70年代在贝尔实验室捉弄同事的一次恶作剧,在那段时间里面,实验室里面所有的Unix系统,Ken都可以随便以最高权限登录,而同事反复检查用户,权限,甚至是当时使用的Unix代码,都没查不到后门,百思不得其解。14年之后,Ken在这次演讲里面才公开,后门其实隐藏在他写的编译器中,当用编译器编译Unix系统的时候,后门就被放在了编译出来的系统里面,但Unix本身的代码是干净的,所以同事无论如何也查不到问题。Ken的演讲所提到的核心问题并不是如何入侵一个操作系统,而是信任。其标题“Reflections on Trusting Trust” (我翻译为”深入思考我们信任的可信”,以下简称RoTT)开宗名义,明确强调这一点。

在80年代曾经有很多人用这样的办法给开发工具加各种外壳和后门,但当时联网条件并不好,很难产生大规模影响。很多案例是发生在相对封闭的企业内网和教育网中,Ken捉弄同事的原始案例也可以看作是企业内网上的传播。可以说,RoTT能产生的影响一直被人们低估,因为在现实世界想要具备适合它的条件,实在是太难了。历史上,虽然有很多底层代码Bug导致的安全事件(比如之前的OpenSSL心脏出血漏洞,可以参考我的另外一篇文章,点阅读原文可见),但直接通过这种在基础工具上制造的后门,从而衍生的大规模安全事件,从来没有真正发生过。这种手法一般是用在有限范围的网络上,比如在早年的教育网上或者企业网络里面,那时候在内网上传递一个被下了毒的软件,很容易传播开。

在互联网上,如果要重现Ken的案例,首先需要找到一个可信的源头感染,这本身就已经是极其困难的事了。用这次的事件做例子的话,在正常情况下,用户是通过Mac App Store来下载Xcode的,在下载安装的过程中,OS X本身会替用户进行加密签名校验,保证下载的东西确实是苹果原始分发的软件,这样才能被安装到用户的机器上。如果想把在Xcode中嵌入一个后门,你得先找到Apple服务器的漏洞,才能有机会把自己改过的包上传上去,而且还要弄到苹果的私钥去进行签名,才能装到用户计算机上。但如果同时具备了这两个条件,已经是荣华富贵唾手可得,有的是更可靠,获利更大的做法,谁又肯去舍近求远感染一个Xcode呢?

所以,只有在相对封闭的网络环境下,才有可能玩这个把戏。80年代,网络远远没有今天发达,人们更多的下载和网络活动是分布在各大机构自己的网络里面的,比如大型企业的内部网络,相对于互联网,这些内部网络网络速度会快的多,人们通常更倾向于从内部网络获得软件。这就给了入侵者(通常是商业间谍)通过替换内容软件来侵入公司内部的机会。但内网又造成了另外一个问题,在封闭网络下,入侵者获得的数据也没这么容易拿走,必须还要回到内网才有机会拿到之前的战果。这些特性造成了这种做法始终在小范围内有效,在公众网络上性价比不高。

这次XcodeGhost事件会给很多人启发,中国目前的网络环境类似于80年代的企业内网,但规模又比当年的内网大的多,而且不像那么难以进入。 于是,一些80年代流行但没造成大规模影响的办法,有机会可以在中国环境下重新应用了,并且造成巨大影响。以前的创业是Copy to China,现在同样可以复制30年前的安全问题。

Ken的演讲最后指出,你没办法信任那些不是自己写的代码。80年代达到这个目标尚且有可能,那时候的软件规模还很小。而今天,任何工作都需要建立在大量的现成软件基础之上,换句话说,你必须去信任其他人,才有可能制作出产品。如今的可信任环境就变得更加重要。

但在中国,因为GFW和相关政策的存在,要获得一个可信环境变得非常困难。在这个环境里面,大量国外网站不能访问或者难于访问,非常多怕麻烦的人会使用国内替代品,这次的事件之所以影响巨大,就是因为通过苹果官方渠道升级Xcode速度太慢,少则10多个小时,多则几十个小时,其间还有可能中断和重新下载。从国内随便下载一个Xcode用当然是错的,但在这样的环境下也不是完全不能理解,考虑一下互联网的下载速度只有50K,企业内网速度能高达10M的时候,谁会不从内网下载呢?

用一个现实世界的例子做个比喻吧,前面说了骗子拿到你父母的电话之后,会打电话去骗他们,比如跟你父母说你出了车祸,急需用钱。要让这个骗术成功,一个前提条件是要阻止你父母去找你验证真假,所以骗子同时会用各种办法来骚扰你的电话,迫使你不堪其扰关机或者始终占线。这样你父母和你的联系就断开了,他们没法找你验证了,此时骗子的话就更容易被相信。在这次事件里面,GFW让人们无法访问国外的可信网站,或者访问速度极慢,它起的作用就如同迫使你占线或者关机,从而让人们只能从不可信的地方获取软件。

GFW让中国本来开放的互联网环境,变成了一个巨大的企业内网,或者叫做中国局域网。除了速度和难以访问的影响,各种各样的DNS投毒,电信运营商干扰也是严重问题,你拿回来的DNS结果往往也未必是可信的,而运营商试图在HTTP请求中插入广告的行为,又经常会导致正常的应用表现不正常,而这些乱七八糟的毛病还经常变化,今天你可以这样对付,下周可能就需要换一个办法。要维持一个可信的软件环境,需要付出巨大的精力,能愿意付出这个代价的人越来越少。

在这个环境中,我们能信任的什么呢?网络链接不可信,运营商不可信,DNS不可信,大企业不可信。最后这一点更荒唐,如果是在正常的网络环境下,你很难相信苹果或者Google会坑害自己的用户,因为这和他们的利益直接相关,他们总是要尽量保护自己的用户。但在中国,如果你敢信任百度,基本意味着你生活各方面都会出问题,用百度查个搬家公司,骗死你没商量,用百度查个快递电话,骗死你也没商量,用百度查个医院,你猜会怎么样?那是真要骗死你没商量,这里的骗死都不再是比喻了。你要信任百度的软件,更好玩了,它莫名其妙就给你把百度出的所有软件都装在你机器上了,人们管这个不请自来的大礼叫做百度全家桶。如此致力于坑害自己用户的大公司,在中国之外还真是罕见。

在中国的网络环境下,这次事件产生的危害本身也更加危险。事件发生时,我告诉朋友们立刻删除所有被感染的软件,直至问题被修复。有人说,黑客自己的网站已经关闭了,没什么危险。这么说当然是错的,因为遍布中国各处的DNS投毒和劫持,创造一个一样域名的网站再简单不过了。比如到游客聚集的区域,带一个路由器,创建一个没有密码的WIFI热点,等着人们连上来,在这个热点上劫持XcodeGhost使用的域名,就可以利用已经中毒的app来骗iCloud密码了。这些都是非常容易实现的办法,千万不要低估安全问题能造成的后果,尤其是在中国特殊的网络环境下。

目前中国的网络环境和食品安全有诸多共同之处,你没法信任路边的小饭馆,但同时你也没法信任昂贵的大饭馆。你没法信任菜市场买的肉,但超市买的肉也并不那么可靠。在一切的背后是土壤和水的全面污染,可能一家好的饭馆未必打算毒害自己的顾客,但他们也很难保证自己原材料的供货商可靠,要保证使用的所有材料可靠,这是一家饭馆不可能具备的能力。比如,奶粉的三聚氰胺事件之前,一家有追求的饭馆大概会觉得,我不用来路不明的奶粉,我用大品牌的三鹿,伊利,这算是对顾客负责了吧?可惜,这些大品牌一样出问题。这绝非饭馆所希望的,他们也是受害者,就像是这次事件中的网易云音乐,他们确实没打算坑自己的用户,不过网易、腾讯这样的大公司一样中招了。

相对封闭的iOS尚且如此(单一开发工具,单一软件分发渠道,独家封闭系统iOS,独家硬件iPhone)尚且能出这么大问题,想想Android会怎么样?Android官方网站几年前就被封了无法访问,大部分开发者都是从国内渠道下载的开发工具。App的安全可靠吗?国内无数家忙着改Android皮肤就称自己是“操作系统”厂商,他们能保证自己的定制Android版本是安全吗?他们有真正的操作系统厂商级别的能力吗?进一步,他们能保证自己使用的开发工具安全吗?每家手机厂商都恨不得做自己的Android app下载渠道,他们能保证这些渠道上分发的app安全吗?甚至,他们能保证自己的下载市场安全吗?请大家继续联想吧。有朋友跟我说,你想多了,Android哪需要这么麻烦啊,本来国内环境就是木马遍地了。真实情况恐怕只能用惨烈来形容。顺便说一声,传说Google要把Play Store进入中国,提供一个受审查的版本,很多人说这是Google妥协了,我看这根本不是妥协了,是中国内部的Android环境太糟糕,已经威胁全球生态了,Google不得不自己出手解决这个问题。所以,一旦Google Play真的进了中国,请大家记得立刻把Play Store做为自己唯一的Android软件下载渠道,哪怕它不好用,不中国国情,甚至显得有点傻里傻气…千万记得,安全比方便更重要。

在这些前提下,重新认真考虑Ken的演讲提到的观点就显得更加重要,深入思考我们信任的可信。到底什么是可信的呢?开发工具可信吗?操作系统可信吗?你觉得下载来之后验证一下md5或者sha512总应该可信了,但你用来计算sha的工具是哪下载来的?你又如何知道这个工具本身是可信呢?在一个封闭的,难以和真正源头沟通的环境下,根本没办法谈所谓的信任。

在中国目前的环境下,难以直接套用成熟的软件开发和管理流程,除非保证团队所有人都必须翻墙,必须用Google查资料,必须不信任国内网站。你的团队中有一个习惯用百度查资料,顺着国内论坛的链接从百度网盘或者迅雷下载工具的人,就不知道会惹出来多大麻烦。这次事件充分证明了这一点,我起初认为腾讯应该不会有问题,因为我知道腾讯内部有极好的网络环境,但最终不幸的是微信也中招了。我们的恶劣环境已经改变了工程师的习惯,甚至改变了教育,就算是在腾讯内部这么好的网络环境下,仍然有人会去百度查资料,用百度网盘下载开发工具。就像很多留学生到了美国仍然用百度搜索一样,环境的改变并不能直接逆转已经完成的用户习惯。

比较讽刺的是,在中国特色的现实世界反而又制约了出现大规模安全灾难的可能性。比如,中国有相当严重的网络监控、审查和实名制、以及互联网公司必须保存(而且要向有关部门开放)的各种用户数据,并且互联网和世界半隔绝,在出现这种问题的时候,要抓到始作俑者又相对简单。现实世界中,只要在论坛发个贴,去你家查水表就是分分钟的事情。这大概算是“不幸+不幸“互相抵消之后产生了一点点微小的幸运吧。

很多年前,我说招聘工程师有几个原则,比如,必须使用Google而不是百度,必须翻墙而不是用国内替代品,必须优先使用国外的工具。经常有人认为这种要求过于苛刻,甚至认为是装逼。这次事件告诉了我们,这些良好的习惯确实是工程师的第一道防线,融入世界主流,可以让你少遭遇很多中国特色的麻烦。虽然保持这些良好的习惯需要付出不小的代价,但事实证明这些代价是值得的。

这样的网络环境,是我们这一代工程师的耻辱,但我们如此愤怒于此 ,又如此无能为力,这是这个时代最令人悲哀的事情。

我们对此有多么无能为力呢?我写这篇文章的时候就在想,大家应该赶快传播它,因为我觉得它很快会被删掉。这就是无能为力的具体表现。

[…]

跑了四个城市,只靠Uber出行的一个月

最近随着Uber在广州和成都被打压,我在很久之前写的那篇Uber如何在北美突破管制的文章又火了(回复 uber2 和 uber3 可阅读,共两篇)。只可惜大部分转载仍然是没授权的。之前我谴责了《Vista看天下》,结果这次是饱受尊重的《财经》杂志干的。实在是没话说,我对这种事情的看法在上一篇文章里面都说过了,传统媒体这种品性一贯如此,我也没指望他们能改正什么。至于稿费,反正我是从来没见过。这些事情不多说了,新的话题我仍然会继续写下去。

在3月到4月中,我回中国呆了一个月。一个月中去了上海、北京、天津、深圳几个城市,全是Uber已经开展运营的地方。在这一个月里面我每天都在四处跑,每天至少两次Uber。想不想知道一个离开中国已经将近两年的人,在这一个月的频繁使用中对Uber和出租车的体验和看法?

讲在中国的故事之前,先说说我在加拿大出发去机场的事情。我贪便宜定的机票比较时间早,要早晨5点左右到机场,4点多要从家里准时出发。这个时间点要定出租车不是不行,但考虑到我市出租车的恶劣态度和各种关于出租车的投诉,我觉得还是把希望寄托在Uber上比较放心。提前好几天,我每天凌晨4点左右都会看一眼从我家叫Uber几分钟能叫到,连续几天都是5~10分,这个速度比较令人满意,顺便说一句,Uber一直不提供预订的理由是“车辆运载效率足够高,车辆足够多,你随时都可以叫到车,所以不需要预订”。出发当天,突然下起了大雪,起初我有点担心,天气变化会不换让车变少?事实证明,Uber没辜负我的期望,仍然只需要6分钟叫到车,在这个人力成本昂贵,人们通常不愿意加班的城市,这简直是奇迹。叫车之后,很快在地图上可以看到附近的一辆车开始朝我的方向开来,几分钟之后准时停在我家门口,中间没有过电话联系。司机帮我把行李放上车,跟我说,我只会说法语,英语说不好,你有没有问题,我说当然没问题。一路上司机依次用英语问了我空调温度行不行,车里面的音乐喜欢不喜欢之类的体验问题,这大概是他专门练习的几句话。一路顺利,很快到了机场。

这次用车的有趣之处在于,在基本语言不通的情况下,由于GPS和导航都非常准确,中间并不需要更多交流,行程也能顺利完成。如果这些条件具备,也许多数情况下并不需要打电话,也不需要语音。这和用滴滴打车叫车时候和司机大量的语音交互形成了鲜明对比。

一 上海

在上海我住的位置有点偏,到最近的地铁站也要走20分钟。起初我本来没指望能在这个比较偏的位置叫到Uber,但事实上等10分钟左右总能叫到。而且最让我惊讶的是第一天叫来一辆锐志,转天叫来一辆宝马,再转天叫来一辆Q5…在上海的一周多里面,我几乎没坐过地铁。去什么地方都叫Uber,整个体验非常顺畅。而且所有的车都很新很好,多数司机也都很认路。当然因为众所周知的原因,Uber在中国自带导航还不太好用(据说现在已经换成百度的了,好多了),很多司机会另外拿一个手机开个百度地图或者高德地图导航用,这在其他城市都是少见的。

相对于我后面去过的其他城市,上海是叫到好车次数最多的地方,绝不是网上流传的一个段子说的好车司机是为了拉姑娘约炮,我遇到的每一个司机都很认真的送我去了目的地,就算是Q5的司机也下车热情的帮我把一个大拉杆箱搬到车上,毫无怨言。期间我还帮好几个没用过Uber的朋友叫车送他们回家,他们每个人用过这一次之后之后都立马成了Uber的用户。

我刚刚回来的时候没有把手机号改成中国号码,每一个司机接到我的时候都会问一句为什么你的电话打不通。过了几天之后我才反映过来是因为中国地图不准,所以司机都习惯先打电话确认一下。改了号码之后,每次叫车之后几乎立刻会接到电话,大部分是怕GPS位置不准确认一下在哪接人,后来开始有聊两句判断是不是钓鱼的。在钓鱼执法之前,我几乎没遇到上海Uber司机问我目的地是哪。就我的使用体验看来,对用户体验破坏最大的毫无疑问是相关部门的“有效工作”。这件事后面我们再说。

在上海我也偶尔打了一次出租车,上车之后吓了一跳,司机眼前摆着一派手机,跟我们这警车上面的警用终端和各种电子设备差不多壮观。每个手机轮番发出各种语音,“师傅我在XXX要去XXX“,”去XXX加多少钱”,感觉特别中国特色,坐在出租车上感觉就像在一个很吵的饭馆吃饭,片刻不得安宁。我是乘客,我经坐在车上了,为什么司机还要开着这些软件,这我也不太明白?是不是盘算着送我到地方立刻去抢下一单?反正从此之后我就也没叫过出租车,想起来那个吵闹的环境就觉得还是Uber更好。挺遗憾的,上海过去堪称一流的出租车体验恐怕是很难再回来了。

二 北京

我唯一的Uber投诉,是在北京发生的。司机开到了距离我一条路远的立交桥上,并且提前点了到达上车地点,当时是下班时间,他几乎不可能在半个小时之内顺利下桥,绕回到我的位置。我打电话跟司机沟通的时候,很惊讶的发现司机完全不会说普通话,不知道是怎么通过培训面试的。最终沟通无果,司机气愤的挂了电话又按了一次结束,于是我帐号上被扣了19块钱,更神奇的是司机竟然给我打了一个一星评价…就算这样不靠谱我还给了他三星呢…我投诉之后转天就收到了退款,但是那个一星评价我就不知道怎么处理了,也不知道是不是还留在我的评价中。因为北京极端复杂的交通情况以及GPS偏移,不用电话沟通基本是不可能的,这和我在加拿大遇到的只会说法语的司机情况完全不一样,不会说普通话确实是没法在北京做Uber司机的。

在北京遇到过各种奇怪的事情,比如有一次在人民大学南路叫Uber,司机执着的要从人大里面穿过学校过来,但是那是过不来的,我告诉他从中关村南大街过来他也不愿意听。最后也只能让司机取消了。生活在北京这样的特大型城市人,某些路段不熟悉很正常,但在北京开车且愿意去做Uber司机的人,却需要我这个已经5年不在北京生活的人凭着5年前的记忆来指路,也确实有点过分了。

刚刚在北京开始用Uber的时候,觉得非常郁闷,因为整体服务质量比上海差距太大。综合起来,北京Uber的车型较上海差,司机经常不认路(而且他们也不肯再用一个手机开个其他导航地图),下车帮我搬箱子这样的事情更是从来没发生过。另外,大概是因为堵车太严重,司机往往会提前按”到达上车地点”,以节约接到人之后的时间,按照Uber的政策,这是违规的。

不过后来想想也可以理解,Uber毕竟还是重组现有资源,服务质量不太可能超越一个城市的整体服务水平。对比出租车和公共交通服务,北京和上海差距本来就很大,Uber也会存在一个同比差距。只要比出租车服务好就是成功的。想起来那些不爱开空调、车上充满了异味、拒载并且也不认路的北京出租车司机,Uber还是好了不少的。另外,至少Uber投诉是有用的,如果要投诉出租车,通常只有出租车公司的人跟你嬉皮笑脸打电话给你,“我们的司机做的不好,我替他给您赔个不是吧。“。

当然,北京也有不错的Uber司机,我的朋友吕欣欣开着宝马当Uber司机,除了在车上装了空气净化器,还在后备箱里面放了一箱依云矿泉水给乘客免费喝。而且并不是只拉姑娘…只是这样的好事我在北京一次也没遇到而已。

三 天津

我本来预期天津Uber服务水平不会超过北京,这个判断的依据是天津出租车服务质量极差,甚至说是全国最差也不夸张,完全不符合一个直辖市应有的水平。但出乎意料的是,天津Uber司机服务质量出奇的好,远远超过北京,直追上海水平。

在天津用Uber叫到车的档次似乎也比北京只高不低,我和闲白儿电台的小明吃过晚饭又录了一期节目之后,叫Uber回家,当时已经接近凌晨1点,竟然叫到了一辆宝马3。我叫Uber的地方是个菜市场,这种地方在晚上收摊之后,早晨清洁工来打扫之前,一般都是遍地垃圾。你能想象在凌晨1点,一辆红色的特别干净的宝马,缓缓开过满地垃圾的菜市场停在你面前那种震撼吗?车里面还放着音乐,空调不冷不热,味道和舒适感都能给满分。和周围环境的对比给了我巨大的不真实感。

随后几天我叫来过常年外派驻津的上海司机,周末没事干出来开车找人聊聊天消磨时间。遇到过住在我家附近两个孩子的妈妈,我去派出所办事然后去火车站,本来觉得时间很短,又懒得把箱子从车上搬下来,就让她在门口等我一下,没想到在派出所等了40分钟才办完,她也毫无怨言的又送我去了火车站。还遇到过一位退休老人,是我用Uber以来遇到的岁数最大的司机,车里面收拾的特别干净,开着空调(这个季节北方的出租车通常是不开空调的)他说退休了没事做,又特别喜欢开车,最远从天津开车去过汶川旅游,听说了Uber觉得好玩,为了符合Uber车型要求,还专门换了一辆马六,来做Uber司机。开始他还忘了点路程开始,半路上才想起来点,我还担心老人少收了钱不高兴,没想到人家一点也不在乎,说只要不赔油钱就满足,能赚个买菜钱就特别高兴,开车四处看看,跟坐车的各种人说说话,觉得很不错。

后来我和另外几个在天津做Uber司机的老朋友聊天,发现他们最开心的事情是Uber进入天津几个月以来,让天津出租车牌照的交易价格大降。没想到一个城市的出租车服务太差,反而能激发大家自发解决交通困难的动力。

四 深圳

深圳的Uber跟其他城市又不一样。这个城市的Uber司机服务极其职业,职业到分不出和正规营运车辆的区别。司机不多说话,认路,上车先说你好,下车会说再见,叫车时候一个电话说清地点,准能按照预计时间接到你,服务标准的无可挑剔,我在深圳停留的时间不长,但我用的几次Uber感觉服务质量能跟其他城市的UberX相比。之前有朋友跟我说过觉得深圳的Uber司机没什么特点,不像别的城市有那么多好玩的事,但我觉得,能提供标准服务本身就是一种特点。深圳的Uber司机也完全符合了广东一贯务实而优秀的服务文化,做什么像什么,一点也不马虎。

另外,我有好几个在深圳创业的朋友,拿Uber当招聘和推广工具,只要你叫到他们的车愿意跟他们聊,没准不留神就被挖到他们公司去了…这也是挺创新的模式。

在中国的一个月里面,我去了四个城市,坐地铁和公共交通的次数总共没超过10次,其他所有出行都用Uber代步,总共花费大约是1200元。这其中还包含了几次1.5倍以上的巅峰加价,以及一次UberX。并且我因为图省事,用各种优惠码的次数也不多,总体使用成本还是非常低的。考虑到出租车在各大城市都严重不足,Uber所释放出的空余资源和价格调整机制,确实让中国这种特大型城市的交通困境得以解决,如果从让城市更美好的角度看,如我之前文章所写过的,在这个时代,一个没有Uber的城市简直像沙漠一样。

我在这几个城市中体验到的完全不同Uber服务,也说明了Uber按照城市招聘总经理,并且给予极大授权是正确的策略。每个城市文化如此不同,只有身在现场的人才知道如何做是最好的。Uber这家公司也很幸运,总能遇到特别适合他们的团队,上海的每一次市场活动都那么出色,甚至超过了美国水平。如果能解决服务器速度慢,地图之类的问题,上海成为全球Uber体验最好的城市也不太困难。

另一方面,中国运管部门的各种积极努力在严重降低这类用车服务的使用体验,在提高出租车服务质量上,他们通常并无做为,但在打击各种专车拼车服务上又不遗余力。相关部门这么做并不奇怪,奇怪的是出租车司机也跟着捣乱,还组织抗议,这就莫名其妙了。如果这些用车服务继续发展下去,好的出租车司机是很容易转行的,他们无论是道路还是驾驶能力都有优势,有机会赚到更多的钱,为什么非要靠着自己那块牌照的垄断混下去呢?出租车司机如果怕Uber影响他们的收入,最好的办法是努力提高自己的服务质量并且跟上时代的发展。

其实,国家质检总局几年前就发布过《出租车运营服务规范》,知道的人不多而已。如果真的严格执行这个标准,我估计北京出租车司机要被处罚的数量不会少,但同样按照这个标准要求,别说UberX司机,连人民优步也基本能符合服务规范。做为用户,我觉得大家应该熟悉一下这个服务规范,监督他们的服务,遇到和服务规范不符的多多投诉,运管处如果不处理就继续找到他们上级部门,这也算一个帮助出租车行业与时俱进的办法,我这可不是让大家故意找麻烦,出租车主管部门曾经跟媒体说过,他们欢迎乘客用手机录音录像取证,帮助他们完善服务质量,乘客也不应该辜负他们的努力。

最后,再讲讲我回到加拿大之后的故事。因为之前在中国把Uber绑定的电话修改成了中国电话,我在机场试图绑定回加拿大电话,中途因为各种莫名其妙的原因失败了,当时又困又累,就在机场上了一辆出租车。到家出租车上的读卡器坏了刷不了信用卡(据Reddit用户说,我市出租车经常刷不了信用卡,等你拿出来现金,司机就会告诉你没零钱找,这样多出来的钱只好当小费送给了他们)。我让他等一下,回家找了25加币给他(已经包括15%小费),司机拿到钱嘟嘟囔囔愤怒的摇着头开走了,好像是我欠了他什么一样,大概他觉得我应该直接给他30加币吧。而我在那个下着大雪的凌晨4点多准时出发去机场,用Uber只花了15加币,下车时候司机还快乐的跟我告别。

所有的垄断行业都是又差又贵,这是放在世界任何城市都会生效的真理。

想起来写了这么久Uber相关的文章,从来没放出过我的邀请码…感觉错过了几个亿…现在大概也没多少人没用过Uber了吧?如果有的话,请用我的 juh3 来注册吧。

另外,Uber上海在5月20号有一个520穿越上海活动,用Uber可以叫来自行车骑手送玫瑰,这一天别忘了打开Uber。

最后推荐一下车上装了空气净化器免费提供乘客依云矿泉水的北京Uber司机吕欣欣的公众帐号:思想有什么未来。欣欣是Blog时代的老朋友,当年他创建了Blogger们常用的feed服务feedsky,后来feedsky被腾信互动收购,他去腾信做了副总裁。他一直关注互联网和各种新鲜电子产品,写的东西都非常有趣。可以搜索 lvxinxinS 订阅。

点击阅读原文,可以继续阅读他写的“第一天做Uber司机的一些感受”。算是本文的另一面。

第一天做Uber司机的一些感受

资源备注:

标题图来自Uber blog #520 穿越上海,一键传情页面,链接 http://blog.uber.com/520shanghai

本文来自霍炬的微信公共帐号“歪理邪说”,用微信添加 wxieshuo […]

为什么微信公号原创作者应该禁止一切纸媒转载

今天之后,我在本公众帐号发布的任何文章,都会加上新的版权声明:“本公众号禁止纸媒,即印刷于纸张之上的一切组织包括但不限于转载、摘编的任何应用和衍生”,同时我还会禁止任何和纸媒体有转载协议的网媒转载和摘编。即,我要完全斩断我的劳动成果和纸媒体的关系,除非他们单独获得我的授权。这是我写文章以来采用过的最严厉的版权声明,并且,我还将尽我所能,建议所有在微信上发表原创作品的作者,都如此处理版权。

之所以要这样做,是因为今天我的读者发来两张照片,一本叫做《Vista看天下》的杂志,未经允许抄袭了我之前写过的《从黑车到市值400亿美元,Uber在北美如何对抗政府禁令》 一文(回复Uber1和Uber2可阅读,共两篇)。

迄今为止,我没有用我的文章获得过任何稿费,只要求想要转载的人告知我一声即可,只要告知了,我都很高兴让他们转载,分文不取。但《Vista看天下》杂志,不仅没有告知我就转载了文章,还擅自修改了我的标题和内容。从读者发给我的不太完整的照片上,已经可以看到文章被修改过,署名倒是写了我的真名。(照片见标题图和文末)

我在朋友圈发了这两张照片,问有没有人认识他们。很快得到了一些让我非常震惊的,之前完全不知道的知识。《Vista看天下》这种杂志,叫做文摘杂志,他们的做法是先在地方版权局存一笔”稿费”,然后就随便去“转载”(他们修改了文章,所以更接近抄袭)别人的文章。如果对方不找来,这笔钱就省下了,如果对方找上来,就推说联系不到作者,补上稿费。补的稿费标准是什么呢?恰好,我有个朋友曾经不厌其烦的和另外一本刊物处理过同样事件,最后对方给他邮来一张数额为10元的汇款单,做为抄袭他那篇文章的稿费。

你没有看错,是10元人民币。1后面只有一个0。这种做法是合法的,想要维权非常困难。当我知道这一切之后,我已经没有兴趣去联系他们或者维权了。我觉得最好的办法是干脆禁止一切纸媒转载和摘编,并且告诉更多人竟然存在这样荒唐的事情。既然我们很难维权,也分辨不了哪个是好人哪个是坏人,干脆全部禁止,这样他们就没办法再用”联系不到作者”做为理由了,完全禁止之后,下一次胆敢转载摘编或者抄袭,我们法庭见。

很难想象,已经到了这个时代,还有一群人把自己的时间精力花在这样的事业上,一种建立于损害创造者权益基础上的事业。更荒唐的是,他们自己也是文字工作者,自己也写过文章。如果他们的杂志被别人盗版,他们估计也会跳起来维护自己的权益,但当他们侵犯别人权利的时候,就可以做的如此心安理得。

关于阅读和版权,我还想多说几句。现在,人们已经不需要纸媒了,真正稀缺的是好的作者和内容,而不是媒体本身。我写作,通过微信发给我的读者阅读。这是建立在我和读者私人关系上的系统,我只为我的读者们写作。一本杂志,没有权利拿我的文章去换成销量和广告,没有权利为我的文字定价,没有权利按照他们的标准付给我稿费,更没有权利修改我创造的内容。切断和他们一切联系,对真正创造优秀内容的人,没有任何损失。甚至我认为任何一个对自己创造的产品有信心的作者,都应该这样做。

在微信的系统之内,版权受到严格保护。只要我通过搜索发现了未经我授权的转载,点几下屏幕,发出一份投诉。转天微信就会删除对方转载的文章,累计5次就会封掉对方帐号。但在现实世界里面,对方可以这样用10块钱稿费拿走你的文章,不受任何惩罚。而且就连这10块钱如果你不去讨个说法,都拿不到。

关于未来,我只有两个愿望,第一个是希望为微信的原创保护可以扩展到现实世界,只要是首发于公众帐号的文章,如果被纸媒抄袭,经过投诉确认,直接封对方媒体的微信公众帐号做为惩罚。第二个是纸媒体早日死掉。电子阅读已经足够好了,是时候彻底改变世界了,尤其要改变那些人为创造的不合理规则和潜规则们。让我把第二点说的更明确点:彻底消灭那些趴在原创作者脖子上的吸血鬼的时候到了。

我随便搜索了一下,在豆瓣找到了一篇2010年的文章,也是《Vista看天下》这本杂志,抄袭别人文章段落的事,被抄袭者在微博上找到了他们,结果是,他们觉得自己没做错什么。5年过去了,他们继续这样做,竟然也活的好好的,世界如此不公平。(点阅读原文可以看到这篇文章)

我目前能做的,就是写下这篇文章,加上前面说的版权声明(如果你懒得给自己读者说明一下为什么要有这个声明,欢迎链接和引用本文),并且请大家告诉你的朋友这件事,尤其要告诉那些在微信公众帐号上辛苦创造内容的作者们。

谢谢大家。

本文来自霍炬的微信公共帐号“歪理邪说”,用微信添加 wxieshuo 公众号,或扫描以下二维码,即可订阅。

版权声明:本文可以转载,但必须保留作者姓名和 wxieshuo 公共号名称。

Italy’s first female astronaut shares her ISS journey on Flickr

Samantha Cristoforetti started dreaming about space travel as a child, and that dream came true in 2009 when the European Space Agency selected her as Italy’s first female astronaut. When she received her first assignment to spend 200 days aboard the International Space Station, Samantha knew she wanted to document the opportunity of a lifetime, […]

Category

Archives