Shared posts

24 Feb 06:16

解决 Git 冲突的 14 个建议和工具

by 青劲草

Git 非常善于合并代码。代码的合并在本地完成,快速而且灵活。正常情况下每次从不同分支合并内容时,冲突有可能会发生。通常解决冲突很简单,就如同知道(如何)选择(保留)重要的更改一样,而有时解决冲突则需要额外的工作。

每个开发者对于解决冲突有不同的偏好。不久前,一位叫丹·史蒂文斯的同事用内部软件 Questions for Confluence 询问了大家是如何做的。

Questions on Confluence

收集到的回答和看法比 Atlassian 之墙有更大的吸引力。下面是我们用多种方式解决 Git 冲突的详尽描述,希望它能提供一些可以去尝试的想法,并且融入到你日常编程习惯中。

( Atlassian 之墙是指 Atlassian 公司让客户将意见和反馈贴在墙上,可以参考这幅图,译者注)

通用设置建议

为了设置 Git 使其能正确合并,我们先开始做一些简单的配置。

1. 设置建议

当遇到冲突时,可以在命令行或者其他可视化工具中输入“git mergetool”来初始化合并活动。在“.gitconfig”中用“merge.tool”变量来设置 Git 中自己喜欢的冲突解决软件,比如用 KDiff3 的可能会这样填写”.gitconfig” 的 merge 部分:

[merge]
tool="kdiff3"

上面的语句等价于在命令行输入以下命令:

git config --global merge.tool kdiff3

2. 在冲突标记中显示(分支)共同的祖先

用下面的设置来改进冲突标记使其也显示(分支)共同祖先(感谢罗宾·斯托克和休·吉登斯):

git config --global merge.conflictstyle diff3

这个设置命令新添加一部分标记||||||| 从而给冲突加了注释,这样可以看到冲突行在有问题的两个分支的共同祖先处是什么状态。

3. 合并时使用“耐心”算法

如果文件内容很长(比如一个 XML文件)、冲突很多或者两个版本很不一致时,试着用下面的命令再次合并:

git merge --strategy-option=patience

“耐心”算法的结果应该可以更好地协调一些函数中或者标记中没有配对的括号,具体算法细节可以参考 Stack Overflow 上的一个回答。

4. 当你需要单个文件的历史信息时

除非使用像 SourceTree 一样的可视化工具来弄清到底对一个文件做过什么,不然你可以使用:

git log --merge --decorate --source -p path/to/file/you/care/about

手动解决冲突

处理合并问题主要有两类做法:有些开发者喜欢偏底层处理,因而手工操作处理冲突标记,而有些则偏好可视化工具来辅助(解决冲突)。两种方式都能极其有效地解决冲突。

5. 处理过程示例

有几个同事分享了他们手动处理的过程,比如詹森·欣奇描述了他的处理流程:

  • 从手头的合并开始:
git merge the/other/branch
git status
  • 看下有多少文件冲突。
  • 对每个冲突文件:
    • 在编辑器中打开文件(比如 IntelliJ 或 Vim )
    • 看看每个被冲突标记(“>>>>”和“<<<<”)围绕的区块。
    • 看看(被冲突标记的区块)是否有意义,每个作者的意图是什么,如果能弄清楚就解决掉。
    • 如果冲突标记无法理解,通常是这些文件改动很大,运行下面的命令:
git diff HEAD...the/other/branch -- path/to/conflicting/file
git diff the/other/branch...HEAD -- path/to/conflicting/file
    这样做是为了看哪边改动较小
  • 通常下面的命令:
git log -p HEAD..the/other/branch -- path/to/conflicting/file
git log -p the/other/branch..HEAD -- path/to/conflicting/file

能帮助理解另一边改动了什么。

    • 回溯文件到改动最大的一边:
git checkout the/other/branch -- path/to/conflicting/file

(在这里你也可以用 git checkout --theirs 或者 --ours )

    •  手动检查并且再重新应用从另一边对文件的更改:
git add path/to/conflicting/file
    • 当这些更改都修复之后要构建整个项目,确保至少可以编译通过,如果测试可以很快运行起来,也要运行一下这些测试:
git commit

这个过程看起来有点太手工化了,但詹森发现对于他的工作流程来说会更少产生不合理的合并。

想看一步步手动解决冲突的基本视频,可以参看我们最近的 Git Power Routines 课程。

Git Power Routines

合并工具的天堂

有很多不同的可视化工具来操作复杂的合并和解决冲突。我的同事们提到了一些(并不是所有):

6. IntelliJ IDEA 冲突解决工具

IntelliJ IDEA 是很多 Atlassian 工作人员使用的 IDE 。很多人使用它内建的冲突解决工具来处理冲突,它提供了三个面板来分析:本地、远程和合并结果:

IntelliJ IDEA

7. KDiff3

KDiff3 是 KDE 产品系列的一部分,并且在我们内部调查时提到过几次。

KDiff3

8. P4Merge

SourceTree 的作者斯蒂夫·斯特里廷和其他几个同事使用 P4Merge 来执行合并操作。P4Merge 是免费的可视化工具,它具有四个面板而不是其他工具提供的三个,显示了”base“、”local“、”remote“和”merge result“。

P4Merge

9. meld 

meld 是用 GTK+ 和 Python 开发的,也是已经存在了很久的工具,被提到了几次。

Meld

10. tig for status + diff

更多喜欢终端的人使用 tig (我们之前写过 tig 的一篇介绍),再加上 “ git diff ”。

Tig+diff

11. OS X 下的 FileMerge 即 opendiff

在长长的建议列表里,有几个开发者提到了 OS X 下原生的“opendiff”工具,或者叫做“FileMerge”。

Filemerge

12. diffmerge

我并不知道 diffmerge 这个工具,不过在列表里也被提到了。

Diffmerge

13. Araxis Merge (商业版)

Araxis Merge 这个名字让我想起了很久以前。那时,我在一台 Windows 机器上一堆让人抓狂的 XML 文件中垂死挣扎,而这个工具证明了它可以经受住这个挑战。它是个商业软件。

Araxis Merge

14. vimdiff3

有几个同事用 vimdiff 来解决冲突,那是 vim 自带的合并/差异分析 工具,你可以这样设置:

git config merge.tool vimdiff
git config merge.conflictstyle diff3
git config mergetool.prompt false

或者按照上面展示的那样直接修改 .gitconfig 文件。

结论

你是如何解决冲突的呢?流程是怎样?你还使用过其他除了上文中提到以外的工具吗?让我们知晓你的技能吧,通过 @durdn 联系我或者 @atlassiandev 我那很棒的团队。

解决 Git 冲突的 14 个建议和工具,首发于博客 - 伯乐在线

20 Feb 03:17

中国面临一场清算式危机

by 墙外仙

一、该来的总会来

一场清算式的危机(或者新常态)终于要来了。

寒风凌冽,脚步声由远及近,大地震颤。

这场危机原本2009年就靠岸了,但被四万亿挡在门外养了7年过后,以更强大的姿态回访 。

宏观数据上看,中国GDP增速从2011年来一直往下掉,两位数到一位数,从9到6,连续下台阶,趋势明确。

但宏观数据离日常生活较远,好比盲人摸象,宏大到超出日常视野和经验范围的事物很难被辨识。迄今,未见官方或民间对危机形成统一口径。加上繁荣期打下的家底,全民舞照跳、马照跑,并未有切身感知。

降到产业维度上,危机从生产端到消费端连锁传递,最上游的大宗商品行业率先嗷一声栽倒在地,煤炭、有色金属、石油,进而钢铁、建材,进而制造业,进而房地产,进而汽车等消费品。

实业凋敝,将闲散货币推向虚拟经济,在2015年的A股搞了一轮举世瞩目的牛熊切换。回头再看,恍若隔世。

2015年末,除了金融等“其他服务业”的回光返照,经济领域呈现全线颓势。

危机终于来了,更重要的是,这一切刚刚开始。

二、为什么是2016?

以2016年为起点,一场硬着陆就在眼前。

为什么?一言蔽之,熬到头了。

首先,2011-2015年,全国一直没有出现大范围过剩产能关停,相反,四万亿砸出来的新产能陆续投产了。企业天然有旺盛的求生本能,依靠历史积累,或银行借贷、地方政府补贴的方式勉力维持。尽管用电量、货运量等克强指标频频示警,但官方失业率保持正常,这也是部分学者胆敢称之为“新常态”的现实基础。

这种勉力维持固然推迟了失业、坏账等阵痛,但也意味着把冬天无限延长,等着僵尸企业裹挟大家同归于尽。

2015年底,中央召开经济工作会议,昭告天下将“壮士断腕”推动过剩产能出清。零零星星的企业倒闭消息同步传来。

这是关乎执政根基的一场决战,不用怀疑中央政府的决心。当然,地方政府会很痛苦,中央断腕,地方就得自宫。

其次,职工工资是企业削减开支的最后防线,直接连着消费。而消费的颓势表明企业收支紧缩正过渡到家庭收支紧缩,破产和失业率升高将紧随其后。

以上解释了“刚开始”,“硬着陆”呢?

硬着陆是经济增速的急刹车。过去五年,经济增速均匀下降,尽管相比高点已经腰斩,但多数人没有知觉,只能算软着陆。

而淘汰过剩产能,要硬碰硬的关门歇业,生产线拉闸、工人下岗、银行坏账,对社会心理的冲击要强烈的多。

事物是普遍联系的,企业是社会组织的有机构成。企业关停不可能孤立完成,一旦开始,就会沿着产业链、资金链、合同链连锁反应,在复杂的经济神经体系中四处传导,引起紧缩与阵痛、触发地雷和炸弹,造成局部坍塌,甚至系统性风险。

由此引发的经济增速下降和财政收入削减,不可能保持平滑,而是短促干脆的。GDP增速再度腰斩也未必不可能。

三、危机会怎样?

危机与政策共振,会有一系列特征。比如:

1.大宗过剩。生产线从限产到关停,作为原料的大宗商品将进一步过剩,价格从冰点跌入零下。100块钱一吨的煤炭还不是底。

2.货币宽松。虽然总理一再强调不会“大水漫灌”,但配合过剩产能出清的动作,为了控制金融系统风险,货币政策上必然是宽松导向,存准率只可能继续下行。

3.汇率贬值。货币政策的宽松导向将严重制约汇率目标,人民币利率周期与美元利率周期的悖逆,将导致对美元汇率继续下行,央妈纵千拦万阻,但破7没有悬念。

4.资金避险。宽松的货币政策加上实业领域的风险积聚,将驱赶资金慌不择路的流窜到股市、楼市、债市甚至境外寻求避险和增值,吹起无数大泡泡。还是那句话——沪深永远疯,京沪永远涨。

5.债务风险。东三省、河北、山西等过剩产能集中城市,地方财政已经岌岌可危,未来五年依靠债务置换度日,随着企业关停税收锐减可能爆发金融系统危机、地方债务危机。

6.楼市升温。为了托底经济,中央将搁置房价控制目标,继续出台政策刺激楼市,包括且不限于减免税费、利率折扣、甚至购房补贴。尽管政策目标是支撑三四线城市去库存,但大部分政策将直接利好一线楼市。未来五年,一线均价翻一番,二线恢复上涨,三四线逐渐企稳。

7.通货膨胀。淘汰过剩产能取得阶段成效后,流通中的过剩产品逐渐出清,商品与货币的配比关系逆转,持续宽松的货币将骤然过剩,通胀率拉高,物价恢复上涨。

8.横跨五年。度过周期需要企业完成生死轮回、下岗人员培训再就业,合理预计将横跨整个十三五期间,2020年企稳反弹。

四、寻求什么?

老生常谈,危中有机。

作为一个社会成员,在一场即将到来的五年大变局中可以做些什么?(也即覆巢之下,卵该咋办?)

从防守角度:

一是远离高收益理财。在风险彼此传导、拦路打劫的时刻追逐P2P、信托等底数不清的高收益资产意味着本金的巨大风险。

二是远离A股。沪深永远疯。未来仍然会重演2015年的疯狂行情,如果你不能抗拒峰谷间的巨大诱惑,也必将经历峰谷间的巨大撕扯。从底层规则来看,A股是个人人必输的“绞肉机”(原本写的赌场,意识到冤枉了概率均等的赌场)。如果你已经被绞,那就无所谓了,趁机转型做一个价值投资者。

三是远离过剩产业。这一轮产能过剩引起的危机不是周期性的,而是结构性的。意味着,一些产能的总需求已越过了历史峰值,再也不可能恢复。典型如钢铁、煤炭。选择大于努力,在一艘必然会沉的船上,水性再好也无意义。产业龙头除外,熬过冬天熬死对手还是一条好汉!:)

从进攻角度:

一是拥抱一线。京沪永远涨,拥抱一线是一个简单易行到令人难以置信的保值增值手段。这是大势研判,是一切结论的结论。具体原因,可以写50篇跨学科博士论文,或者连续扯淡一千零一夜。

二是拥抱黑马。如同沙漠里也有绿洲,在萧条之时,必然会有细分行业逆势增长。如果你有幸骑上这样的黑马,过五年等危机过去,将一骑绝尘。那么,哪些行业是危机不敏感甚至逆危机的呢?

三是拥抱未来。锻炼身体,交朋友,扯淡。读书,思考,旅行。生孩子、养孩子。像平时一样过好生活,坚定的持有和投资自己,花谢花会开、春去春又来。

五、相信什么?

经济危机投射到精神层面,就是信念危机。随着经济危机的发展,冲击性事件的频发,全社会将日益弥漫起焦虑不安的情绪,流言四起,涌现千奇百怪的羊群效应。(如全民换美元、全民买酱油、千股涨跌停)

在一场必然会来的风波中,有没有比美元更坚挺的信念呢?

1.相信规律。

同所有发生过的经济危机一样,这是经济自发调节、浴火重生的必然环节。

同所有发生过的危机一样,这次危机不会是人类社会的末日,她挥舞着刀光剑影大肆杀伐后终将转身离去,留下一个更加健康的生态系统。

2.相信党和政府。这次危机不容小觑、但也无关生死存亡。作为硕果仅存的社会主义国家,我们的党和政府拥有无可比拟的跨市场资源调度能力。这在经济蓬勃发展时意味着很多麻烦,但在经济困境中,却是克服市场失灵、加快走出泥潭的利器。与我国经历过的苦难相比,这一次不算空前挑战。按照经济危机推动体制改革的特色定律,新一届政府上台后趁机大力推进简政放权,借势突破计划生育、户籍政策、土地政策等疑难问题,在下一轮经济景气中将发挥重要作用,利在千秋。

3.相信自己。面对危机,适度的悲观是健康和必要的,准确的反应事实才能做出正确的应对。但对大多数朋友而言,由于你们身处有利地形,这场危机尽管汹涌澎湃,1但风浪只能抵达地势低浅的区域,将毫不妨碍你的生活、你的追寻和成长。

4.相信未来。尽管过去的每一天都带有魔幻色彩,荒诞绝伦的故事应接不暇。但透过表象来看,人们改善生活的普遍愿望没有改变,城市化、现代化的大趋势没有改变,对优秀人才、优质商品和优异服务的旺盛需求没有改变。社会的进步、公民的觉醒、生活水平的改善仍是不可逆转的时代大潮。这些不变的基本前提,共同构成了一个更大的趋势,大到令未来五年的小低潮失去意义。

综上,这是一场每代人只有3~4次机会遭遇的磅礴大戏,是社会滚滚向前的一只插曲。只要你看清危机,避开显而易见的风险;看破危机,抓住更大的时代趋势,韬光养晦,必将成就无限光明的未来!!!

镜像链接:谷歌镜像 | 亚马逊镜像

相关日志

18 Feb 00:15

魏春亮:我们终将逃离没有出路的农村

by 墙外仙

前两天,我的微信公众号亮见发了《上海姑娘所逃离的,是我的父老乡亲每天赖以生存的日常》一文,火爆程度远远超出我的预料。这篇文章只写到了物质层面,而当时是计划物质和精神层面都会涉及的,但无奈写到凌晨两点,身体实在熬不住,且发现物质层面已经可以成文,于是就把其他的方面留给了今天这篇文章。而在前面那篇文章中没有阐释清楚的地方,在本文我会继续补充完整。

并不贫困却依然不富裕的农村

首先,我要强调一下,我们村并不是特别贫困,但也并不富裕。由于资源有限,靠山吃山靠水吃水的可能路子几乎都堵死了。种地几乎赚不到钱,所以村里只要是不上学的人,都出门打工去了。所以,现在我们村大部分人也都吃穿不愁,几乎家家家户户也都盖起了楼房。

144519VN9

楼房是盖起来了,但是和之前的瓦房相比,也就是多盖了一层而已。无论是外面还是内室,都是赤裸裸的水泥墙。平时不会去装修,只有要结婚时,才会吊个顶,或者涂一个白色的墙。在我们村里人看来,有几间宽敞明亮的楼房住,已经是莫大的幸福了。至于是否美观,则几乎不在他们的考虑范围内,实用才是他们最看重的。

144519h4B

村子里也有破旧不堪的老房子,都是几十年前盖的。住在这种房子里的,大多是老人,从结婚住到老,将来也会死在这个房子里,因为新楼房是他们的子女住的,死在那里不吉利。

1445205Rc

最近几年,村里的汽车越来越多,车牌号是黑A或者苏B的汽车随时可见。这些汽车大多属于中低档,奥迪奔驰和宝马这样的车,在我们村都是没有的。但农村没有停车场,车就直接停在家门口。

经济:自下而上去建设农村的原动力已经彻底断了

去年因为家里的一些事,我在春天和夏天回了几趟家。除了过年,其他时候,整个村子几乎都空了,只有村口的几个老人在百无聊赖地闲逛或打牌。村里将近400口人,一过完年,300多人都离开了村子。留下来的不是生病的老人,就是还在读书的小孩。留在村子里的老人不但要负责照顾小孩,还要负责种地。

144520zwS

这是我们村的麦地,每到冬天,就碧绿碧绿地很茂盛。是的,我们村的地既没有荒废,也没有人承包,还是像以前一样由自己种着。只是和以前不同的是,现在的农作物单调的只剩下麦子和大豆了。在我小时候,秋天种小麦,快到夏天时收割后,还能再种一季红薯和玉米。此外,棉花、芝麻等农作物也会零零散散地有人种植。然而,这些农作物的种植太过于复杂,现在只剩下方便播种和收割的小麦和大豆了。

然而,这根本赚不到钱。一年一季麦子和一季大豆,一年最多也就挣个两万左右,而这还不包括化肥农药和人力成本。农村的地,有点像鸡肋,食之无味,弃之可惜。

144520VN3

留在村里的老人,因为离集市远,并不能天天去赶集。而家里又几乎都没有冰箱保存蔬菜,就都在家门口种菜。

144520xrY

144520S5f

这些菜看起来很新鲜,吃起来确实也都好吃,可是这里面没有把酒话桑麻的浪漫,只有生活不便的无奈。

而村子里的青壮年劳动力,无一例外都出门打工去了。因为教育落后,我们村几乎没有人能够考上县城的高中,他们在城市的工作也都是最低层的工作。我小的时候,我们村很多人都去哈尔滨收破烂。我爸在我小的时候就经常跟我说,别上学了,还不如去哈尔滨收破烂。在他看来,这可能是我们村子里的人最方便最快捷的挣钱方式了。

如今,我哥和我姐都在哈尔滨开废品收购站,但因为近年来行情不好,生意十分难做,一年到头起早贪黑,却也挣不到几个钱。但因为没有其他技能,也只能继续干下去。我姐给我打电话,会打着打着就忙生意去了,三餐都不能固定。

正因为如此,现在村里越来越多的人去苏锡常、上海、浙江甚至福建去打工,在鞋厂做流水线工作,在超市卖牛奶。一天的工作时间可能会达到12小时,却依然没有五险一金。住在还不如农村老家的房子里,为生计卖力。有人开废品收购站成了百万富翁,但很多人一整年也剩不到两三万。

而那些出门打工的人,不到过年不会回家,因为一趟来回的路费可能就得让他们工作半个月才能挣回来。他们离开的日子里,整个村子都空空荡荡的。去年夏天回家时,村子里的野草到处蔓延,大部分人家的门都紧闭着。一到晚上,整个村子都陷入死一般的寂静。

144521Xos

现在,我们村的青壮年劳动力(甚至有一批老人)过着一种在外挣钱,接济农村老家的生活方式。连村干部都没人愿意在家担当,农村的自治和管理几乎处于崩溃状态。我们村的村干部由我们村的一个医生当着,但他最近说,等把我们村的水泥路修好后,他也准备不干了。

现在,村子里的改变,除了因为出门打工挣钱,就是靠政府的政策了(比如我们村已经有了垃圾桶,比如修路)。农村自下而上去建设农村的原动力已经彻底断了。而政府发展农业和农村的政策又能指望多少呢,我不知道。

而这些还年轻的青壮年劳动力,大部分人到了晚年又得回老家,到那时候迎接他们的,又是一个怎样的农村呢?

教育:从农村考上大学已经不可能

大量青壮年劳动力离开农村,带来的另一个问题是教育的愈发落后。

我小时候,是在邻近的两个村子组成的小学上的学,有两个校区。每一个教室都是破败的瓦屋,冬天会漏风。桌子和凳子都是从自己家里搬过去的,黑板坑坑洼洼,闪着黑色的亮光,粉笔在上面一划,就发出‌‌“叽叽‌‌”的响声。窗户小的可怜,一到阴天就黑成一片。直到小学五年级毕业,教室里安装了一盏昏黄的电灯,我才知道教室里原来是可以有灯的。而我们的老师,也都是附近的村子里的农民,大多数都是初中毕业,有的甚至是小学毕业,靠自学和长时间的经验来教我们。每年收麦子的时候,我们学校就会放农忙假,有的老师甚至会在农忙时让学生帮自己收麦子。

如今,这两所学校都已经被合并到了镇第三小学,有了三层教学楼。黑板再也不是坑坑洼洼的了,学生也再也不用从自己家搬桌椅了。然而,有能力的青年教师不愿意来这里教书,现在学校的有些老师还是我小时候的老师。而在这里上学的孩子也越来越少了,现在只有我的侄女一个人还在这里上学了。

重视教育的父母要么把孩子送往县城的学校,要么带着孩子去自己打工的城市。那里有更好的资源,可以让自己的孩子接受更好的教育。我的小侄子就在哈尔滨上幼儿园,才6岁就能被王维的《鸟鸣涧》,会念英语单词,个位数五连加你把五个数字报完他随口就能答上来结果。这样的学习成果,在老家是完全无法想象的。

144521JIV

然而,我们村里的大部分人并不重视教育。祖祖辈辈为农的他们,先是习惯了在土地上讨生活,后习惯了在城市里奔波。很少有人鼓励自己的孩子去上学,只要身体长成大个子,就应该出门打工挣钱了,这简直就是天经地义的事情。我爸在我读初中的时候,就经常跟我说别上了,跟他一起去哈尔滨收破烂。教育观念如此落后,以至于85后的我成为了村子里第一个高中生。对的,第一个高中生!

就算是我考上了大学和研究生,在村子里仍旧是个失败者。原因很简单,挣不了大钱。当我的同龄人都已经挣了好几年的钱,盖上楼‌‌“娶上媳妇‌‌”(村里人的观念是嫁出去的女儿泼出去的水,不会把女儿考虑在内),我还在读书。就在前两天,一个邻居说起他在上海的儿子,有一门手艺,每个月拿七八千块钱的工资。他表达完对儿子工作的满意后,说:‌‌“噫嘻,现在的大学生,一个月不也就是三四千块钱吗?‌‌”

每当听到这样的话,我都沉默不语,我不知道该拿什么话回他们。

大人不鼓励孩子读书,而且常年不在身边,年老的奶奶爷爷在孩子的学习上无法给出任何帮助,孩子们上学的劲头自然不足。小学毕业到附近的中学读书,但这所初中更是连续好多年没有任何一个学生可以考上县城的高中。今天早上才从村里人口中得知,这所初中甚至在前两年停办了,去年才恢复。想从农村底层,借助农村的教育资源考上大学,改变自己的命运,成了一件几乎不可能完成的任务。

而就在我们村里,还有很多要上学的孩子。

婚姻:几乎成了买卖

在我考上大学后,我们村虽然也有几个人陆续考上了大学,但是大部分年轻人还是初中都没能毕业。而接下来唯一的路就是结婚生子,出门打工。而这,是一件更为重大的事情。

我们村,甚至是我接触到的附近所有的村子,无论男女,只要初中毕业,父母就开始为孩子张罗婚事。因为农村的孩子社交圈相对封闭,相亲就成了他们寻找结婚对象的最重要手段。但由于都在外地工作,很多人回家过年的一大重要任务就是相亲。但这个亲却十分不好相。

144521KSV

我们这边年轻人的婚姻,与其说是婚姻,倒不如是一场买卖和交易。明码标价,简单粗暴。在女方向男方的要求中,二层小楼、一应家具装修根本不用讨论,是必须要达到的,没有就免谈。除此之外,彩礼更是越发吓人,五万块钱以下已经拿不出手了,动不动就是十几万。年前听初中同学说起,他们村有个男的相亲,女方向他家要28万。是的,这只是男方给女方的彩礼,其他白酒啤酒各12箱,猪肉糖果等等都不包括在内。我同学用一句话做了总结:这是卖闺女呢!而因为彩礼不够,临时变卦的事情屡见不鲜。我们村就有一个女孩,婚纱照就拍了,因为财力没到位,两个人就告吹了。

从房子到彩礼,现在我们这边的农村,要娶一个儿媳妇,没有二三十万,是没办法拿下来的。这对于大部分挣钱能力不强的农村人来说,无疑是最为重大的负担。很多人一辈子操心劳力,为儿子成个家,儿子和儿媳妇住在新房子里,老人却住在旧房子里。结个婚,富了孩子,苦了父母。很多父母在孩子结婚后,即使六十多岁,还是要出门打工还债。

144522Bbb

然而,在我们这边的农村,孩子和父母的关系却十分微妙。父母对孩子的教育,几乎为零。在很多父母看来,养孩子无非就是给他们吃穿,供他们上学,除此之外,孩子就不该要求更多。这样的后果就是,等孩子长大结婚后,和父母的关系往往不是很亲密。在我小时候,儿媳妇打骂公公婆婆的事情,简直就是家常便饭般司空见惯。而一直以来,结婚后,父母和子女开始分家,以后就是两家人了。金钱上的来往都只能叫借了。结婚后,别说子女给父母钱花,不再伸手向父母索取,已经是谢天谢地了。我们村有个爷爷辈的老人得了癌症,花掉了自己所有的积蓄,问三个儿子要救命钱。老人向老大说起之前借给他的一两万块钱,老大说你什么时候借给我的,不愿意出。老二和老三看老大不愿意出钱,自然也不愿意自己掏腰包。让人无限感慨。

过早的结婚,还造成了另外一个死循环,那就是子女教育的缺失。我们这边的年轻人,初中毕业也就十六七岁,很多甚至没毕业就辍学了。然后十八九岁就结婚,如果等到20多岁还没结婚,父母就要着急死了。20岁不到,而无论在物质和精神上,又都缺乏对下一代的准备。心态上还是个孩子,就成了别人的父母。对孩子的教育仅仅停留在喂养和打骂上,于是我看到了太多的熊孩子。流着鼻涕,到处疯狂打闹,把家里的东西翻得乱七八糟,等到他们的是父母的一顿痛骂或痛打。

古老的生活方式

在我的印象中,在我们村,除了房屋和饮食上的改变,其他的生活方式二十多年几乎没有什么改变。就像我上篇文章写的一样,农村的厕所还是老样子的脏和小,村里人还是会舍不得用电,什么东西都会用上几年甚至十几年不舍得换。我家就有一个我小时候用用铝锅锻造的勺子,20多年了还在用着。虽然新买一个也不贵,但那只旧的勺子还好好的,干嘛要扔呢?

很多人不明白的是,为什么厕所那个样子,不去修一个好一点的厕所呢,既然人家上海姑娘觉得用不锈钢餐盆盛菜不礼貌,为什么不换做碟子盛呢?可问题在于,他们根本不认为这是个问题。在我小时候,我们村的厕所连个顶棚都没有,下雨上厕所,你得撑着伞才不至于被雨淋湿。而不锈钢菜盆盛菜多,不会流出汤汁,一大盆端上来,不是很体面吗?

是的,我们这边的村民,大部分还都过着老一辈的生活方式。想要改变他们的想法,就等于颠覆了他们对社会的整体认知,这对他们来说无疑是灾难性的。比如,我们虽然盖起了楼房,但装修什么的都还是农村式的。我曾对父母说起,做一下装修,弄得好看一些。但我父母强烈反对,觉得根本没必要。用我爸常唠叨的一句话就是:城里就是城里,农村就是农村,啥时候农村也赶不上城里。

144522Gvb

每次回家,我都会面临着一个尴尬的处境。我无法向这些不认识几个字的邻居解释,我学的历史和中文专业是干什么的,我也没办法让他们明白,我的工作——微信公众号编辑到底是个什么鬼。在他们的心目中,工作无非就是老师、医生和‌‌“当官的‌‌”寥寥几种。每次他们问我我为什么不去研究航天飞机时,我都不知道怎么回答。就连同龄人,也会经常问我毕业后分配在哪里工作。世界一直在飞速前进,而我的父老乡亲们,似乎还沉浸在一个长长的旧梦里。

而另一个让我感到不安的事实是,当农村越来越没有出路的时候,我们这边的农民还没有意识到其中的严重性。我记得很清楚,几年前,我妈去镇子上看病,医生问她叫什么,她报了自己的名字。回头去报销时,却根本没法报销。因为她的身份证上写的是‌‌“魏曹氏‌‌”——村干部在人口普查时图省事报上去的名字。最后还是去大队申请了证明才报销的。这件事情让我明白了,在一个根本没有任何规则意识的农民心中,由城市建立的种种规则,无形中形成了一道道屏障,将他们屏蔽在现代化的成果之外,即使这些规则在一定程度上保证里他们的利益。而让不认识几个字的他们弄懂这些复杂的规则,又是一个巨大的挑战。所以在我爸生病报销的时候,他们不知道报销比例,不知道自己该报销多少钱,政府和保险公司给多少,他们就拿多少。修路政府出多少,村民出多少,他们也不清楚,反正听村干部的就是了。而对这些不明规则老实巴交的农民,镇子上政府的工作人员就会故意刁难,而这些工作人员,本身也都是农民。

面对现代化的各种规则,他们似乎生活在一层朦胧的雾气中,过着不太明白的生活。这是更大的不公平。当农村现代化的水平越来越高,规则越来越完备时,农民却越来越被抛弃在现代化的规则之外,越来越被边缘化。那些站在镇政府政务服务大厅门口畏畏缩缩不知该如何张口的老人,是我们这个这个现代化过程中被抛弃的可怜人。

尾声:我们都是农村的叛徒

今天是初六,很多人都要离开老家,回到城市里工作去了。每年回到老家,就像是一次短暂的观光,我们都是故乡的访客。我努力了18年,就是为了逃离这个村庄。我比那些偶尔到农村的城里人还想逃离,我把故乡泥泞的道路和脏乱的厕所抛弃在脑后,一心奔向了城市。只是扎根在血液里的牵绊可能一辈子也逃不掉,每当有人对我说,你可以为你的村子做点什么,我都无话可回。我能做的微乎其微,即使是我考上了大学,也起不到任何激励后辈读书的作用。我是农村的叛徒,能做的也许只是把写写这样的文章,让人们认识真实的农村。然而,我心中又知道,其实这基本也没有什么用。

镜像链接:谷歌镜像 | 亚马逊镜像

相关日志

13 Feb 12:46

德国之声:中国经济危机还有多远?

by 墙外仙

周五的德语媒体,关注了中国日趋严重的企业债务问题,并就中国经济是否会陷入真正的危机展开了讨论。

瑞士《新苏黎世报》以“中国的末日场景”为题刊发客席评论,注意到了近年来中国企业的债务正在增长。文章指出,考虑到中国经济当前增长乏力,企业债务上升可能会给中国的银行业带来大麻烦。

“曾经成功预言美国次贷危机的著名对冲基金经理巴斯(Kyle Bass)日前警告投资者说,我们正在中国见证全球迄今最大规模的经济失衡。巴斯指出,中国的商业银行正面临巨额坏账,可能会导致3.5万亿美元自持资金的损失;届时,对这些银行进行重组将对国家造成巨大负担,而中国经济想要重振国际竞争力,就需要让人民币急剧贬值。”

文章接着指出,中国的企业债务除了规模庞大,其增长速度也十分惊人。“尽管在2009年经济危机之后,企业负债的增速已经有所放缓,但其增幅依然显著大于经济增长的速度。在其他处于上升阶段的经济体中,没有任何一个国家的企业负债规模或增速到达中国这样的水平。……而且,由于经济增长疲软,许多企业越发无力去偿还债务。”

作者认为,造成这一问题的关键原因,就在于不少中国国企的投资都是依靠贷款来实现的,而这些投资项目原本并不具备良好的经济性。“通过发放贷款,国有企业得以维持生计,确保就业岗位,稳定住社会上的收入差距。而事实上,许多这样的企业本应该破产重组的。凯投宏观经济学家普里查德(Julian Evans-Pritchard)也认为,应该让一些企业破产,让另一些私有化。”

“在今年3月初召开的全国人大上,将会广泛讨论国企改革的问题。但是,北京的掌权者恐怕不会愿意在经济问题上交出控制权。他们宁愿保持现状。中国将错失一次良机,它本可以将资金发放给那些能够认真对待资金的(国有)企业。中国现在不这么做,将会导致其经济增长的潜力无法发挥。”

不过,作者在文章末尾也指出,与美国不同的是,中国政府几乎完全掌控着银行系统,“所以像雷曼兄弟倒闭这样的事件在中国不会发生。相比之下,到了最后关头,更有可能像90年代末那样,由财政部以及央行介入进行银行系统的重组。届时,中国的纳税人将会承受这一负担。普里查德也认为,中国不会发生金融危机,高负债率的后果只是生产力以及经济增速放缓。”

瑞士《经济金融报》也刊发评论,关注了同样的话题。文章以“身处过渡期旋涡中的中国”为题,认为只要北京在资本领域不犯错误,中国就不会陷入危机。

这篇评论首先指出,2009年全球经济危机之后,中国依靠强心针之类的刺激手段才得以维持经济高速增长,“现在到了清算的时刻”。然后,文章盘点了中国经济的广泛的产能过剩现象,并指出了随之而来的全面高负债率问题。此时,作者笔锋一转,写道:“但是,经济大崩盘并非不可避免。中国并不是完全的市场经济体制。主要的债务方,其实都是’国家队’:比如地方政府、国有企业、或者国家庇护下的民营企业。而发放贷款的银行,也都掌握在国家手中。不需要天才般的灵光乍现,普通人就能明白,让银行的债权与贷款人的债务重组一下并非什么难事,毕竟一切重要的决定权都在同一个人手中。就算需要钱来堵漏,也毫无问题:中国人民银行不是独立央行,需要多少钱就能让它发行多少,甚至更多。这是一个政治问题。”

作者接着指出,魔鬼藏身于细节之中,“中国政府是否会愿意实行这种’大重组’?这只有北京的领导层自己知道,我们只好猜测。北京现在的关键词是’供给侧改革’。在西方,’供给侧改革’指的是打破既有结构、既得利益,从而促进增长。恰恰是中国在过去30年间以史无前例的规模推行了这样的政策,取得了巨大的成功,数亿人民摆脱了贫困。”

文章随后又分析了过去几十年需求侧为主的经济政策是造成如今经济关系扭曲的罪魁祸首,而如今不论是让经营不善的企业破产,还是掐断对需求侧的输血,都会激化产能过剩、加剧债务问题、增加银行面临的压力。但是,尽管短期内这些措施会造成增速放缓,但是长期来看却有利于增长。

评论末尾指出:“经济和金融的自由化,总是先会引起混乱。淌水过河到一半被困住的人,总是不禁会问:到底是继续前进呢还是掉头返回。混乱局面还会持续一些时间,但有一点可以确定:中国政府有意掌控局面,而中国政府也有能力掌控局面。如果不犯资本领域的错误——当然犯错的可能性永远不能排除——中国不会陷入经济危机。即便只有5%、甚至3%的增长率,它依然高于西方国家。”

镜像链接:谷歌镜像 | 亚马逊镜像

相关日志

08 Feb 01:08

“官僚集团正在用当年对付毛主席的手法对付某人”

by 墙外仙

  你这么一说,我突然想起天涯某位同学的一句话“官僚集团正在用当年对付毛主席的手法对付某人”。本来这句话我只是随便看了一眼,没放在心上,你这么一说,我突然心中一个大惊,回想起了这段话。

  我昨夜睡觉时闭眼一想,历史真有那么点意思。

  官僚集团当年怎么对付毛?先搞个人崇拜,众人抬轿子把毛主席捧上“神坛”,之后大搞浮夸风,欺上瞒下,弄出三年自然灾害。所谓捧的越高,摔的越惨,毛主席直接从“神坛”摔下,权威受到极大损害。一时之间,广大的党的四级干部(县、地、省、中央)纷纷醒悟过来:毛澤东的领导不行。于是,“毛澤东下台!”的呼声轰然而起。

  但毛主席始终是开国太祖,功高震天,加之毛主席本身就是人中之龙,花果山之美猴王,政治嗅觉极其敏锐,马上反应过来,先来一招“以退为进”(毛先表示退居幕后),再来一招“主动反击”(在七千人大会上的讲话)。

  素有“国士无双”之称的韩信(林总)也选择果断出击,在七千人大会上公开讲话支持毛主席。这等于跟着林总打江山的百万大军全部支持毛主席,一下子战局彻底反转。毛主席才站稳脚跟,随后展开“大反击”。

  最近惊爆“农行票据案”“E租宝诈骗案”,这只不过是沧海一粟,冰山一角。

  去年,大量的银行巨额汇票大部分在去年“牛市”高峰时以各种方式流入股市,现在半年承兑期已到,被深深套死的银行根本无力兑付。金融理财诈骗一项,仅北京市立案的就高达四百余起。这两颗重磅金融核弹随时都会火暴炸。一颗更大的“tesobonos”核弹已经滋滋作响。

  内部危机不断,外部环境又加剧恶化,美,日,越,印,澳已形成合围之势,民进党蔡英文上台,老牌资本家不列颠又拿钱不认人,北方的普大帝犹如三国志之孙权,表面和蜀国联合,内心对蜀国暗藏杀机(外媒:俄罗斯害怕中国 已着手靠近中国两敌手),随时会上演“白衣渡江,杀关羽,取荆州”。

  这种险恶的内外局势,只有“铁血宰相俾斯麦”那种纵横捭阖的顶级外交高手才能扭转乾坤。

  如果做不到俾斯麦那种同时玩转5个球,5个球都不落地的手段,那么“新三年自然灾害2.0版”可能很快就会上演。

博讯:习近平迟早要活埋那些给他挖坑的人?

据接近中南海一位被赋闲职的局级干部来信透露,最近很多事情都是有人在给习近平挖坑,从政法到宣传,每一件事都是在黑习近平。

来信说,像他这种还有三年就退休的人,觉得没有必要说,求平稳就好了,但看到习近平从三年前高民望上位,短短三年,竟然成为中共历史上遭到最多群体诟病的领导人,实在有些看不下去。他说习近平上来后虽然有很多极左言论甚至做法,但他对经济的改革,在司法独立上的努力,尤其在反腐上的成绩是有目共睹的。可结果呢,体制内对他越来越仇视,知识分子都开始厌恶他,整个网络只剩下周小平这种小混混,好像毛泽东时代的红卫兵,网络管理掌握在小人之手,使用的都是无赖和下作的人。现在随着经济下滑,连普通民众也开始感觉到这个想当皇帝的习不那么可爱了。可这位为中南海效力32年的老干部说,这其实有些冤枉习近平。最近处理两岸三地和香港铜锣湾书店的事,不但走板偏离,而且所有后果几乎都是在把习近平往千古罪人的耻辱柱上拉。有些是习近平身边人为了借助他的权势在胡作非为,有些是理解错误,执行失误,更多的则是有些人在故意黑习。习近平触动了利益集团,不可能没有反击。

这位干部来信透露,令计划等被查的贪官死而不僵,还有很多党羽都还很有实力,例如,令计划虽然在胡锦涛时代始终无法完全掌控军队,甚至对周永康的政法系统也无法渗透,但利用中办对国安部和总参等情报机关的掌控,安置心腹,对这些机构渗透比较深。国安部包括邱进在内的两位副部长被抓进去,还是无法清查干净,甚至找不到线索。由于反间与情报系统的单线联系,几乎水泼不进。这位局级干部虽然并不全知道内幕,但已经深深感觉到包括国安部在内的,正在对习近平进行反击。这些习近平当然也有所察觉。

当年1962年时,康生正是利用了情报系统对习近平老爹习仲勋进行残酷打压,诱使毛泽东说出“利用小说反党是一大发明”,制造了中共历史上最大的一次文字狱,受牵连者达到三百人,虽然毛泽东对习仲勋额外开恩,但习仲勋还是被关押、看管了16年。而当今国安部给习近平挖坑的主要做法,依然是使用秘密构陷与文字狱,让习近平用康生对付他爹的办法来对付异议分子和不听话的人,等于自己打自己耳光。实际上,中共周永康政法系统的余孽还一个没有动,这些人担心进一步反腐,尤其担心习近平上来推进的所谓法治与制度化反腐最终会损害自己的利益,可又不敢公开对抗习近平,于是使用各种手段在社会各个阶层为习近平挖坑。

来信者说,他自己一开始也不这样认为,认为给习近平挖坑说太一厢情愿,习近平不可能没有身边人看出来,更何况习近平的女儿是一位哈佛毕业,对网络非常熟悉的有为青年,目前也在负责习近平的网络形象,习近平可以被周围人闭目塞听,周围人可以欺骗他,习近平的女儿不可能不知道,短短三年,真正反习近平的人包括异议分子安然无事,可曾经支持过习近平的几乎一个一个被闭嘴。这些是深谋远虑的反习人士认真策划的。

这位来信者也谈到,习近平上来后无法推进自己的改革,从股市开始,感觉不但无法改革,甚至连现状都无法维持了,所以全力转向军队改革,其实就是为了掌握军权。习近平已经掌握了中央警卫部队,下一步将会全面接管军队,之后,他将会有大动作,包括清洗、对付那些给他挖坑的人。其中主要是政法委系统,不过,据说,也包括他已经收管在自己人手里的宣传系统。宣传系统过左的做法,是引起民怨的主要原因。是给习近平挖了一个即便他今后锐意改革,恐怕也无法填平的坑。

镜像链接:谷歌镜像 | 亚马逊镜像

相关日志

01 Feb 02:58

史上最大机器学习数据集,雅虎对外开放了

by sinofalcon

【导读】:数据是机器学习研究的命门。访问真正的大规模数据集,是一项传统上由机器学习研究者和大公司的数据科学家所保有的特权,然而大多数学术研究人员缺无法触及。2016年1月14日,雅虎实验室对外发布了发布史上最大机器学习数据集,达 13.5 TB。

数据集主页:http://webscope.sandbox.yahoo.com/catalog.php?datatype=r&did=75 。下面是对雅虎实验室官博文章的翻译。


数据是机器学习研究的命门。访问真正的大规模数据集,是一项传统上由机器学习研究者和大公司的数据科学家所保有的特权,然而大多数学术研究人员缺无法触及。

雅虎实验室的科学家们长期浸淫于面向顾客产品的大规模机器学习问题研究。这使得我们在诸如搜索排名、计算广告、信息检索以及核机器学习等领域进行深入思考。对外部研究团体来说,外部研究团体的兴趣一个关键方面是新算法和方法的应用,对产品买卖和从真实产品收集的大规模数据集。

今天,我们骄傲地宣布向研究团体公开发布史上最大机器学习数据集。该数据集存有海量信息,记录了2015年2月至5月间2千万用户约1100 亿个事件13.5TB 未压缩)的新闻项目交互数据。

「雅虎新闻种子数据集」是一个基于若干雅虎产品匿名用户交互新闻种子样本,包括雅虎主页、雅虎新闻、雅虎体育、雅虎财经、雅虎电影和雅虎房产。


雅虎主页上的新闻种子

我们的目标是促进大规模机器学习和推荐系统领域的独立研究,为业界和学术研究领域提供帮助平台。数据集作为雅虎 Labs Webscope 数据共享计划的组成部分,该计划是由非商用匿名用户数据组成的科学实用数据集的引用库。

除了交互数据,我们还提供匿名用户的分类人口统计信息(年龄段、性别和泛地理数据)子集。在项目方面,我们发布标题、评论和相关新闻文章的关键词组。交互数据标记当地时间信息,并且包含用户访问新闻种子设备的部分信息,新闻种子容许上下文推荐和文本数据挖掘等吸睛业务。

雅虎实验室的个性化科学团队在全维度雅虎新闻种子数据集有许多有趣的作为,这点化了在行为模型、推荐系统、大尺度和分布式机器学习、排名、在线算法、内容建模以及时序挖掘等领域的一些引人注目的思想(例如《鸟类、应用程序和用户:可变尺度因式分解机和科学驱动产品和个性化:超越点击》)。

我们希望发布这个数据能启迪研究者、数据科学家以及机器学习界的发烧友,并用扩展的“真实世界”数据集帮助他们验证模型。我们坚信该数据集能成为大尺度机器学习和推荐系统的标杆,期盼来自我们数据应用团体的佳音。

2016年(大规模)机器学习快乐!

关于我们处理用户隐私的说明:我们的用户每时每刻都置信于我们,我们努力赢得这份信任。我们积极地保护用户隐私,负责任地、透明地使用和保护用户个人信息。因此,作为该计划的一部分,我们业已将发布的数据集匿名化。

史上最大机器学习数据集,雅虎对外开放了,首发于博客 - 伯乐在线

28 Jan 06:00

2015年在微信热传的100+经典技术文章

by 伯小乐

本文收录的文章来自 11 个热门的技术类微信公众号。我们从每个公号中选出了 2015 年最热门的 10 篇技术文章,共 100 多篇精华。涉及的技术包括:Python、Linux、Java、Web前端、数据库、C/C++、安卓开发、iOS开发和PHP开发。除此之外,我们还精选了IT职场、IT趣文 和 极客酷文作为补充。有干货、有笑点、有范!

小编提示:本文已同步发在 GitHub 上,大家也可以在 GitHub 上 star。

链接:https://github.com/jobbole/awesome-wechat-dev-posts-2015

2015 技术综合IT职场IT趣文 热门文章 来自微信公众号 iProgrammer

「程序员的那些事」分享程序员相关的精选技术文章、教程、职场、工具和行业热点资讯。不定期还会分享IT趣文和趣图,更有难得一见、专为程序员服务的面向对象相亲活动。

技术综合

IT趣文

IT职场

 

Python

2015 Python 热门文章 Top 10 来自微信公众号 PythonCoder

人生苦短,我用 Python。「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯。

 

Linux

2015 Linux 热门文章 Top 10 来自微信公众号 LinuxHub

「Linux爱好者」专注分享 Linux 相关内容,包括:业界动态、工具资源、使用技巧、课程和书籍等。

 

Java

2015 Java 热门文章 Top 10 来自微信公众号 importnew

「ImportNew」专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。

 

Web前端

2015 Web前端 热门文章 Top 10 来自微信公众号 FrontDev

「前端大全」专注分享Web前端相关的内容,包括 JavaScript, CSS 和 HTML5技术文章、工具资源、精选课程和Web技术领域热点资讯。

 

数据库

2015 数据库 热门文章 Top 10 来自微信公众号 DBDevs

「数据库开发」专注分享数据库相关内容,包括:各种主流DB的最佳实践、数据库基础知识、性能优化、数据安全等。

 

C/C++

2015 C/C++ 热门文章 Top 10 来自微信公众号 cppFans

「CPP开发者」专注分享C/C++开发相关的技术文章和工具资源。

 

安卓

2015 安卓 热门文章 Top 10 来自微信公众号 AndroidPD

「安卓应用频道」专注分享安卓应用相关内容,包括:安卓App开发、设计和行业资讯。

 

iOS

2015 iOS 热门文章 Top 10 来自微信公众号 iOSHub

「iOS大全」专注分享 iOS 和 Mac 相关内容,包括iOS和Swift开发技术文章、工具资源、产品设计和行业资讯。

 

PHP

2015 PHP 热门文章 Top 10 来自微信公众号 PHPDevs

「PHP开发者」专注分享PHP开发相关的技术文章和工具资源。

 

极客

2015 极客类 热门文章 Top 10 来自微信公众号 iGeekFan

「极客范」聚焦极客主题,分享各种新、奇、酷的东西。

2015 年,这里有干货、有笑点、有范!2016 年更精彩,你值得拥有!

小编提示:本文已同步发在 GitHub 上,大家也可以在 GitHub 上 star。

链接:https://github.com/jobbole/awesome-wechat-dev-posts-2015

2015年在微信热传的100+经典技术文章,首发于博客 - 伯乐在线

26 Jan 00:51

ShadowSocks 的翻墙原理(两篇)

by Qiang Fan

(一)写给非专业人士看的 Shadowsocks 简介


这个文章来源于一个朋友在科学上网的过程中,搞不清楚 Shadowsocks 的配置问题,在这里我想按照我对 Shadowsocks 的理解简单梳理一下,以便一些非专业人士也能了解

long long ago…

在很久很久以前,我们访问各种网站都是简单而直接的,用户的请求通过互联网发送到服务提供方,服务提供方直接将信息反馈给用户
ss-01

when evil comes

然后有一天,GFW 就出现了,他像一个收过路费的强盗一样夹在了在用户和服务之间,每当用户需要获取信息,都经过了 GFW,GFW将它不喜欢的内容统统过滤掉,于是客户当触发 GFW 的过滤规则的时候,就会收到 Connection Reset 这样的响应内容,而无法接收到正常的内容
ss-02

ssh tunnel

聪明的人们想到了利用境外服务器代理的方法来绕过 GFW 的过滤,其中包含了各种HTTP代理服务、Socks服务、VPN服务… 其中以 ssh tunnel 的方法比较有代表性
1) 首先用户和境外服务器基于 ssh 建立起一条加密的通道
2-3) 用户通过建立起的隧道进行代理,通过 ssh server 向真实的服务发起请求
4-5) 服务通过 ssh server,再通过创建好的隧道返回给用户
ss-03
由于 ssh 本身就是基于 RSA 加密技术,所以 GFW 无法从数据传输的过程中的加密数据内容进行关键词分析,避免了被重置链接的问题,但由于创建隧道和数据传输的过程中,ssh 本身的特征是明显的,所以 GFW 一度通过分析连接的特征进行干扰,导致 ssh
存在被定向进行干扰的问题

shadowsocks

于是 clowwindy 同学分享并开源了他的解决方案
简单理解的话,shadowsocks 是将原来 ssh 创建的 Socks5 协议拆开成 server 端和 client 端,所以下面这个原理图基本上和利用 ssh tunnel 大致类似
1、6) 客户端发出的请求基于 Socks5 协议跟 ss-local 端进行通讯,由于这个 ss-local 一般是本机或路由器或局域网的其他机器,不经过 GFW,所以解决了上面被 GFW 通过特征分析进行干扰的问题
2、5) ss-local 和 ss-server 两端通过多种可选的加密方法进行通讯,经过 GFW 的时候是常规的TCP包,没有明显的特征码而且 GFW 也无法对通讯数据进行解密
3、4) ss-server 将收到的加密数据进行解密,还原原来的请求,再发送到用户需要访问的服务,获取响应原路返回
ss-04


(二)ShadowSocks的翻墙原理



说明:本文借鉴上文图片与内容完成。


Clowwindy分享并开源了他提出的Shadowsocks翻墙解决方案。它的翻墙原理是什么?有什么优点和缺点?
简单理解的话,Shadowsocks是将以前通过SSH创建的Socks5协议拆开成Server端和client端,下面这个原理图能简单介绍其翻墙原理,基本上和利用SSH tunnel大致类似:
what-is-shadowsocks
  1. PC客户端(即你的电脑)发出请求基于Socks5协议跟SS-Local端进行通讯,由于这个SS-Local一般是本机或路由器等局域网的其他机器,不经过GFW,所以解决GFW通过特征分析进行干扰的问题。
  2. SS-Local和SS-Server两端通过多种可选的加密方法进行通讯,经过GFW的时候因为是常规的TCP包,没有明显特征码GFW也无法对通讯数据进行解密,因此通讯放行。
  3. SS-Server将收到的加密数据进行解密,还原初始请求,再发送到用户需要访问的服务网站,获取响应原路再返回SS-04,返回途中依然使用了加密,使得流量是普通TCP包,并成功穿过GFW防火墙。
因此,Shadowsocks的优点在于它解决了GFW通过分析流量特征从而干扰的问题,这是它优于SSH和VPN翻墙的地方。缺点也依然明显,需要一点点技术和资源(墙外VPS服务器)来搭建Shadowsocks服务,好在已经有人搭建相应的服务出售翻墙服务了。
翻墙技术博客订阅地址及社交帐号
22 Jan 03:29

曹政:曾经的中国互联网

by 墙外仙

以史为镜,可以知兴替。中国互联网,沧海桑田。

今天写个简单的,首发于知乎,这里增补了一些。

1、最早在美国上市的中国互联网公司是中华网,域名牛逼,中国概念,一度股价爆高到100多美元,后来一路跌到地板,然后退市,现在,谁还记得呢。

2、曾经联想搞了一个fm365.com,联想的互联网战略,非常非常早的事情,随着联想电脑预装铺开,一度号称是国内门户前几名,然后呢?后来一度域名都丢了,然后也没有然后了。

3、我们知道现在最大的文学站是起点文学,最大的下载一个是华军软件,一个是百度收购天空下载。但曾经最大的文学站黄金书屋,最大的下载站是海阔天空,然而这些网站都被一个叫多来米的公司用很低的价格收购了,那时候个人站不值钱啊,然后呢,多来米收了一堆当时最好的个人站,结果全做死了。

4、最早的电子商务网站,8848.com,曾经是中国电子商务网站头牌,在上市关键时刻的临门一脚,没有成功,然后,每况愈下。

5、世界互联网巨头收购中国互联网领先者,听上去好像是一个不错的强强联手,两个案例,ebay收购了当时的领先者易趣,彼时易趣在中国电商市场份额超过80%,然后被新成立的淘宝打的丢盔卸甲。 雅虎收购了3721,当时3721的收入规模和终端覆盖率均力压百度,然后就眼看着百度神话诞生了。

6、第一只A股上的互联网概念股叫做海虹控股,当时他们控股了中国最大的,完全独孤求败的棋牌游戏平台,联众游戏。 然后慢慢的联众就废掉了,一步步落后于时代。 今天我们不要说腾讯了,说波克城市这样的棋牌平台,收入我估计都比联众高不少。

7、曾经最大的下载工具叫做网络蚂蚁。

8、互联网泡沫破裂的时候,网易是三大门户里最脆弱的,一度股价掉到1块钱以内,丁磊炒掉了他聘用的CEO,财务出现丑闻,媒体天天给网易做退市的倒计时,大家都在幸灾乐祸,然而今天我们看,三大门户里网易转身最快,新业务拓展最成功,现在游戏市场,腾讯拿他也没办法。

9、南非电讯投资腾讯的时候,所有媒体人都觉得南非人SB,被马化腾骗了,说马化腾的估值方式完全是蒙人的,oicq用户(当时不叫QQ)都是低龄低层次用户,没有消费能力。 现在作为腾讯股东的价值和回报是南非电讯集团当前市值最大的支撑,超过其本身自营业务。。

10、曾经大家都认为中国互联网大局已定,新浪搜狐的霸主地位无可动摇,今天回头看,呵呵。

11、百度和新浪曾经撕逼过,百度那时候还是技术服务商,新浪的搜索是百度提供技术支持的,然后,新浪拖欠了百度的技术服务费,李彦宏一怒之下停了新浪的搜索接口,媒体都认为百度疯了,互联网霸主新浪分分钟捏死百度,这也是李彦宏摔电话决心自己做用户的主要原因之一。

12、曾经有一种期盼,说中国互联网啥时候能出市值超过十亿美元的巨头啊,呵呵。

13、百度上市的时候市值破百亿美元,市盈率过千,当时基本上国内所有分析师都说百度被严重高估了。

14、中国做游戏是不可能赚钱的,中国人没有人会为游戏付费,这是在2002年之前行业的共识,当时说的游戏主要是pc游戏,台湾和日本的游戏在大陆都很流行,直到盛大突然崛起,一切都变了。

15、群聊功能最早是朗玛uc推出的,市场反馈极好,当时用户发展极快,新浪见状立刻收购。那时候腾讯想做用户变现,取消了电脑注册QQ的功能,只允许手机短信验证码注册,一个注册收一块钱,结果看到朗玛uc有取代之势,立即恢复免费注册,同时推出QQ群,然后新浪这次投资基本就失败了。

16、百度推出过一个百度hi的聊天工具,还有一个百度有啊的电商平台,不过今天大部分年轻人都没听说过。 我的头像来源于是百度hi当时的气泡熊表情包,我觉得百度hi最有价值的成果就是气泡熊表情做的确实不错。

17、网景浏览器曾经被认为是一种革命,市场占有率一度在80%以上,当时网景的野心很大,想用浏览器做网络终端操作系统,市场也极为认可,股价和市值扶摇直上,很多投资者都认为网景可能是互联网时代的微软,然后微软内置了浏览器,网景告微软垄断,官司一直打,微软浏览器市场份额一直上升,然后,官司没打完,网景完了。 但有意思的是,现在,国内有360浏览器,国外的火狐,google的chrome浏览器,市场占有率都不低;为什么当时网景模式没成功,而现在第三方浏览器又都冒出来了,所以,归咎于微软垄断和捆绑,不如多思考自己的问题。

我给一个答案,网景的思路是互联网上的软件公司,而如今第三方浏览器完全是走互联网模式,做软件公司,被微软掐死是分分钟的事情。

18、2000年左右微软推搜索引擎,当时还不是bing,是MSN搜索,国内分析师近乎一致认为google要完,大家都觉得微软的技术能力很强,有钱,有资源,又能铺终端,但当时俞军老师坚持认为微软根本不懂搜索,不会冲击google,我特意翻过旧帖,从此转为俞军脑残粉。

19、吴京川老师十几年前给我讲搜索套利模式的时候,我完全没听懂,几年后我看一些新闻案例突然明白了,然后感慨市场时机过去了,直到最近我才知道,其实市场时机一直都在,只是进入门槛越来越高而已,意识到自己简直蠢的不可救药。

20、地方电信的门户网站和其附属的一些资源,社区曾经一度占据互联网流量的半壁江山,比较有名的包括上海热线,贵州信息港,碧海银沙等等。

21、网易最早就是个个人站,丁磊是中国最大的个人站长,当时丁磊要搞免费邮局,去广州电信谈合作,说不要电信出一分钱共同搭建一个邮局平台,只要电信出带宽资源。(当时流量带宽老贵老贵的,但对于电信来说成本极低),合作,然后未来广告收入大家分啥的巴拉巴拉。 当时的局长张静君一听,没听懂,但是禁不住她琢磨,不要出钱还能分钱,有这么好的事情?这里肯定藏着很大的利益,这好事不能让丁磊占了,这样,我直接买你们系统。 于是就有了163.net免费邮局,国内第一个免费邮局,用户量果然激增,因为没有其他家啊,然而做了很久,也没赚到钱,后来这个邮局被卖掉了还涉及国有资产流失啥的,张静君后来出去创业,一度被认为是互联网大佬,继续呵呵吧。 当然,丁磊也够坏的,卖了163.net给电信,自己掖着163.com。

22、腾讯最早域名是tencent.com,百度 cdn 长期有个跳转域名叫做shifen.com 大家都是1毛, 这事哪说理去。 美国的巨头叫做微软,中国的巨头叫做1毛。

23、李彦宏,周鸿祎,马化腾,雷军,丁磊,史玉柱,最早都是程序员,而且都还是水平相当不错的程序员,当然更不用说张志东这样的了。其实这个名单可以拉很长,很多名气没那么大的上市公司老板其实也做过程序员,比如携程老板梁建章等等。

24、个人网站
南杨北高曾经是个人网站最早的传奇,高春辉的个人主页曾经是国内网站综合排名前十,汽车销售员出身的第一代站长杨震霆目前已经移民加拿大,当地华人没有几个知道他曾经辉煌的历史;而高春辉依然在连续创业,中国互联网草根创业者的活化石。 可能很少人知道,卓越网的第一任老板是高春辉,而那时候卓越网,是一个下载站。

躲在梅州几乎从不出远门,从不接受采访以及从不参加各种峰会(实际上,只参加过一次)的中专生李兴平 创造了草根网站最大的奇迹,他依靠本地的几个人的小团队,先后创建过三个曾经位居国内访问量前20的网站,hao123, qq163 和 4399。而其他诸如3533,ip138,oicq88等一堆网站也都各个流量不菲,最疯狂的时候,一个音乐个人站长,和李兴平私交不错,就能轻松从他那里获得每天十几万到几十万的访问来路。

当然,今天,个人站长的时代过去了。

25、关于拥抱变化
百度最早是给门户做搜索技术服务商,没打算自己做流量入口;
腾讯最早想给电信做网络寻呼系统,没打算自己做用户,当时想发展点用户做样本测试系统;结果电信不鸟他,幸亏电信不鸟他。
阿里最开始做企业黄页;
盛大最开始做社区,失败了后用最后剩下的钱代理了传奇,当时大家都觉得中国游戏没市场,所以代理金极低;
京东最开始中关村摆摊的不解释;
唯品会开始搞奢侈品赔的一塌糊涂,转入二线品牌开始翻身;
聚美优品陈欧第一次创业是做游戏广告平台,然后转型卖了化妆品;
奇虎最开始做社区搜索,恶心阿里搞了360去弄死3721,没想到无心栽柳;
新浪最开始是四通利方论坛,收了海外一个华人门户后转型做门户,然后靠微博翻身;
网易从虚拟社区到邮局到门户到移动SP到游戏;
搜狐从门户到游戏;

现在你告诉我你看准了一个大方向保证未来很有前途??

你可以当八卦看,也可以多想想,沧海桑田的背后,为什么。然后想想,未来会怎样?我们是不是还会看走眼,选错路?

镜像链接:谷歌镜像 | 亚马逊镜像

相关日志

14 Jan 10:39

Java开发必装的IntelliJ IDEA插件

by Great_Gatsby

Java开发必装的IntelliJ IDEA插件

The post Java开发必装的IntelliJ IDEA插件 appeared first on 资讯 - 伯乐在线.

14 Jan 01:03

不同的瑞士军刀:对比 Spark 和 MapReduce

by 古月水语

Apache 基金会下的 Spark 再次引爆了大数据的话题。带着比 Hadoop MapReduce 速度要快 100 倍的承诺以及更加灵活方便的 API,一些人认为这或许预示着 Hadoop MapReduce 的终结。

作为一个开源的数据处理框架,Spark 是如何做到如此迅速地处理数据的呢?秘密就在于它是运行在集群的内存上的,而且不受限于 MapReduce 的二阶段范式。这大大加快了重复访问同一数据的速度。

Spark 既可以单独运行,也可以运行在 Hadoop YARN 上(注:Hadoop第二代框架中的改进框架,用于将资源管理和处理组件分开,基于YARN的结构不受 MapReduce 约束),此时 Spark 可以直接从 HDFS (Hadoop Distributed File System 分布式文件系统)中读取数据。 诸如  Yahoo(雅虎)、Intel(因特尔)、Baidu(百度)、Trend Micro(趋势科技)和 Groupon(高朋)等公司已经在使用 Spark 了。

听上去好像 Spark 已经注定要取代 Hadoop MapReduce 了。但真的是这样吗?本文我们将对比这两个平台来看看是否 Spark 真的技高一筹。

性能

Spark 在内存中处理数据,而 Hadoop MapReduce 是通过 map 和 reduce 操作在磁盘中处理数据。因此从这个角度上讲 Spark 的性能应该是超过 Hadoop MapReduce 的。

然而,既然在内存中处理,Spark 就需要很大的内存容量。就像一个标准的数据库系统操作一样, Spark 每次将处理过程加载到内存之中,然后该操作作为缓存一直保持在内存中直到下一步操作。如果 Spark 与其它资源需求型服务一同运行在 Hadoop YARN 上,又或者数据块太大以至于不能完全读入内存,此时 Spark 的性能就会有很大的降低。

与此相反, MapReduce 会在一个工作完成的时候立即结束该进程,因此它可以很容易的和其它服务共同运行而不会产生明显的性能降低。

当涉及需要重复读取同样的数据进行迭代式计算的时候,Spark 有着自身优势。 但是当涉及单次读取、类似 ETL (抽取、转换、加载)操作的任务,比如数据转化、数据整合等时,MapReduce 绝对是不二之选,因为它就是为此而生的。

小结:当数据大小适于读入内存,尤其是在专用集群上时,Spark 表现更好;Hadoop MapReduce 适用于那些数据不能全部读入内存的情况,同时它还可以与其它服务同时运行。

使用难度

Spark 有着灵活方便的Java,Scala和 Python 的API,同时对已经熟悉 SQL 的技术员工来说, Spark 还适用 Spark SQL(也就是之前被人熟知的 Shark)。多亏了 Spark 提供的简单易用的构造模块,我们可以很容易的编写自定义函数。它甚至还囊括了可以即时反馈的交互式命令模式。

Hadoop MapReduce 是用 Java 编写的,但由于其难于编程而备受诟病。尽管需要一定时间去学习语法,Pig 还是在一定程度上简化了这个过程, Hive也为平台提供了 SQL 的兼容。一些 Hadoop 工具也可以无需编程直接运行 MapReduce 任务。Xplenty 就是一个基于 Hadoop 的数据整合服务,而且也不需要进行任何编程和部署。

尽管 Hive 提供了命令行接口,但 MapReduce 并没有交互式模式。诸如 Impala,Presto 和 Tez 等项目都在尝试希望为 Hadoop 提供全交互式查询模式。

安装与维护方面, Spark 并不绑定在 Hadoop 上,虽然 在 Hortonworks(HDP 2.2 版) 和 Cloudera(CDH 5 版) 的产品中 Spark 和 Hadoop MapReduce 都包含在其分布式系统中。(注: Cloudera, Hortonworks 及 MapR 是 Hadoop 领域三大知名的初创公司,致力于打造更好的 Hadoop 企业版应用)。

小结:Spark 更易于编程,同时也包含交互式模式;Hadoop MapReduce 不易编程但是现有的很多工具使其更易于使用。

成本

Spark 和 Hadoop MapReduce 都是开源的,但是机器和人工的花费仍是不可避免的。

这两个框架既可以在商用服务器上也可以运行在云端,下表可以看到它们有着相似的硬件需求:

框架                 Apache Spark                        Apache Hadoop balanced workload slaves

内核                      8–16                                                           4

内存             8 GB 到数百GB                                                24 GB

硬盘                      4–8                                                        4–6 1TB

网络                10 GB 或更多                                           1 GB 以太网

Spark 集群的内存至少要和需要处理的数据块一样大,因为只有数据块和内存大小合适才能发挥出其最优的性能。所以如果真的需要处理非常大的数据,Hadoop 绝对是合适之选,毕竟硬盘的费用要远远低于内存的费用。

考虑到 Spark 的性能标准,在执行相同的任务的时候,需要的硬件更少而运行速度却更快,因此应该是更合算的,尤其是在云端的时候,此时只需要即用即付。

在技术人员方面,即使 Hadoop 从 2005 年就开始普及,但是 MapReduce 方面的专家仍然存在着短缺。而对于从 2010 年才开始普及的 Spark ,这又意味着什么呢? 或许投身 Spark 学习的人正在快速增加,但是相比于 Hadoop MapReduce 仍然存在着更大的技术人才的缺口。

进一步讲,现存了大量的 Hadoop 即服务的资料和基于 Hadoop 的服务(比如我们 Xplenty 的数据整合服务),这些都降低对技术人员能力和底层硬件知识的要求。相比之下,几乎没有现有可选的 Spark 服务,仅有的那些也是新产品。

小结:根据基准要求, Spark 更加合算, 尽管人工成本会很高。依靠着更多熟练的技术人员和 Hadoop 即服务的供给, Hadoop MapReduce 可能更便宜。

兼容性

Spark 既可以单独运行,也可以在 Hadoop YARN 上,或者在预置 Mesos 上以及云端。它支持实现 Hadoop 输入范式的数据源,所以可以整合所有 Hadoop 支持的数据源和文件格式。 根据 Spark 官方教程, 它还可以通过 JDBC 和 ODBC 同 BI(商业智能) 工具一起运行。 Hive 和 Pig 也在逐步实现这样的功能。

小结: Spark 和 Hadoop MapReduce 具有相同的数据类型和数据源的兼容性。

数据处理

除了平常的数据处理,Spark 可以做的远不止这点:它还可以处理图和利用现有的机器学习库。高性能也使得 Spark 在实时处理上的表现和批处理上的表现一样好。这也催生了一个更好的机遇,那就是用一个平台解决所有问题而不是只能根据任务选取不同的平台,毕竟所有的平台都需要学习和维护。

Hadoop MapReduce 在批处理上表现卓越。如果需要进行实时处理,可以利用另外的平台比如  Storm 或者 Impala,而图处理则可以用 Giraph。MapReduce 过去是用 Mahout 做机器学习的,但其负责人已经将其抛弃转而支持 Spark 和 h2o(机器学习引擎)。

小结:Spark 是数据处理的瑞士军刀;Hadoop MapReduce 是批处理的突击刀。

容错

和 MapReduce 一样, Spark 会重试每个任务并进行预测执行。然而,MapReduce 是依赖于硬盘驱动器的,所以如果一项处理中途失败,它可以从失败处继续执行,而 Spark 则必须从头开始执行,所以 MapReduce 这样节省了时间。

小结:Spark 和 Hadoop MapReduce 都有着较好的容错能力,但是 Hadoop MapReduce 要稍微更好一点。

安全性

在安全性上, 此时的 Spark 还略显不足。 授权验证由共享秘钥机制支持,网络用户接口则通过 servlet 过滤器和事件日志保护。Spark 可以运行在 YARN 上并配合使用 HDFS, 这也就意味着它同时还拥有 Kerberos 认证授权验证,HDFS 文件许可机制和节点间的加密机制。

Hadoop MapReduce 拥有所有 Hadoop 支持的安全机制,同时也整合了其它基于 Hadoop 的安全项目, 比如  Knox 网关和  Sentry。志在解决 Hadoop 安全的  Rhino 项目也只是在添加 Sentry 支持时添加了 Spark 支持。否则 Spark 开发者们只能自己去提升其安全性了。

小结: Spark 的安全机制仍处在发展期。 Hadoop MapReduce 拥有更多安全控制机制和项目。

总结

Spark 是大数据领域冉冉升起的新星,但是 Hadoop MapReduce 仍有着较广的应用领域。

在内存中进行数据处理使得 Spark 具有较好的性能表现,也比较高效合算。它兼容所有 Hadoop 的数据源和文件格式, 支持多种语言的简单易用的 API 也使人们更快速的可以上手。 Spark 甚至实现了图处理和机器学习工具。

Hadoop MapReduce 是一个更加成熟的平台,为进行批处理而生。当遇到确实非常大的数据以至于无法完全读入内存,又或是依靠着大量对该平台有经验的技术人员,它可能会比 Spark 更加合算。 而且围绕 Hadoop MapReduce 的衍生系统正在依靠着更多的支撑项目、工具和云服务而更加壮大。

但是即使看上去 Spark 像是最终的赢家,问题在于我们永远不会单独使用它—我们需要 HDFS 存储数据,或许还会需要用到 HBase,Hive,Pig,Impala 或其他 Hadoop 项目。这意味着在处理非常大的数据的时候,Spark 仍然需要同 Hadoop 和 MapReduce 共同运行。

不同的瑞士军刀:对比 Spark 和 MapReduce,首发于博客 - 伯乐在线

10 Jan 12:35

停止微软Windows 10升级提示的方法

by 月光 (williamlong)

  微软为了向全球的Windows 7/8用户推送了Windows 10,经常会在用户电脑上自动弹出一个免费升级的提示,非常令人困惑,这个弹出窗口并没有给出一个永久关闭的方法,并且隔段时间就自动弹一下,另很多人感到不爽。

  微软“强制”升级Windows 10操作系统让很多用户都感到厌烦,那么有没有一个行之有效的办法来关闭Windows 10升级提醒呢?

  下面我就介绍一个方法,用来关闭微软Windows 10的这个升级提醒。

  在微软官方的“如何管理Windows 10通知和升级选项”支持网页上,微软表示,通过编辑注册表,即可简单地阻止系统通知栏弹出Windows 10升级提醒。

Windows 10

  一、通过组策略关闭

  这种方法适用于较高版本的Win7/Win8.1用户(Windows7家庭普通版、Windows 8.1标准版等不适合),步骤如下:

  1、按徽标键+R调出“运行”窗口,输入gpedit.msc后按回车进入组策略,

  2、定位到计算机配置→管理模板→Windows组件→Windows Update,在右边找到Turn off the upgrade to the latest version of Windows through Windows Update,双击打开,

  3、在窗口右上角选择“已启用”,点击“确定”,

  此后,升级Win10的推送功能被关闭,如果用户想升级Win10,需要依靠手动更新,或者再次在组策略开启升级推送功能。

  二、通过注册表关闭

  修改步骤如下:

  1、在“运行”中输入regedit后按回车键进入注册表编辑器,

  2、定位到 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

  3、在右侧找到DisableOSUpgrade,双击打开

  4、修改“数值数据”为“1”,点击“确定”即可

  5、如果Dword不存在,就创建该Dword,并将数值设置为1。

  如果你跟笔者一样根本找不到DisableOSUpgrade,那应该从来没收到过升级提醒,直接忽略即可。

  三、关闭“获取Windows10”升级通知

  除了关闭推送功能以外,“获取Windows10”升级通知也可以被永久关闭,方法还是通过注册表,修改前最好记得备份。步骤如下:

  1、在“运行”中输入regedit后按回车键进入注册表编辑器

  2、定位到HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\OSUpgrade

  3、在右侧找到ReservationsAllowed,双击打开

  4、修改“数值数据”为“0”,点击“确定”即可(若已关闭升级功能,该项目默认为0。

  笔者的Windows 7中没有找到OSUpgrade项,忽略即可。

  四、升级Windows 10后关闭升级的方法:

  1、打开注册表编辑器

  2、定位到HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

  3、查找名为DisableOSUpgrade的Dword

  4、将Dword的数值设置为1

  5、如果Dword不存在,就创建该Dword,并将数值设置为1。

评论《停止微软Windows 10升级提示的方法》的内容...

相关文章:


微博:新浪微博 - 微信公众号:williamlonginfo
月光博客投稿信箱:williamlong.info(at)gmail.com
Created by William Long www.williamlong.info
月光博客
10 Jan 08:21

做医疗健康创业的你,得了解这些数据(上)

by 36氪的朋友们

编者按:本系列文章是对我国医疗卫生机构相关统计数据的解读。上篇着眼在医疗机构,中、下篇会进一步探讨我国医疗人员、医疗设施和医疗费用支出的情况。为医疗健康领域的创业者提供一些基本数据的解读和参考。

本文来自公众号“神炖局”投稿,由神炖局长 Harrison(微信号xyharrison2)发布,之前他也在36氪上发表过另一篇关于中国电影市场的分析文章,“看完《火星救援》的周末,我们来聊聊为什么好莱坞瞄准了中国市场”,也引起了广泛的讨论。

本文确实偏长(这只是上篇,还有中下篇呢),没耐心的小伙伴们,请直接看黑体加粗部分和配图;确实没耐心的小伙伴,可以直接pass,还是别看了······

医疗健康行业是个大而全的行业,产业链长、覆盖面广、关系民生大计,按互联网术语来讲,医疗行业“痛点颇多”:医疗资源分配不均、医疗服务质量低、医患关系紧张、医药及治疗价格高、医生资源稀缺、各种看病治病难等等,反正问题一大堆。

问题意味着机会,很多互联网创业和投资人士都喜欢这种痛点多、问题多且天花板高的行业,在互联网、物联网、各种网逐渐成为基础设施的年代(注意,我们说基础设施指的是“互联网+”,而不是“+互联网”),大家都觉得医疗健康行业谈资足、改造机会大、投资很sexy。资本都喜欢shiny且有爆发力的东西,这没问题,但sexy的行业通常跟sexy的女人一样,都很难搞定,快不一定有效,广不一定有力,想象空间越大越难落到实处,你懂的。我国医改搞了这么几十年,钱花了成本代价付出了,一些问题解决了,一些问题则更加严峻,需求问题还没根本解决。

扯远了,我们是外行,就不在这里更多评论吐槽,我们就给大家扯扯蛋,咱聊聊数据,讲讲行业基本情况。神炖局小伙伴们在认真研读了那几本厚厚的《中国卫生和计划生育统计年鉴》后(每本都几百页啊),选取涉及医疗卫生机构、卫生行业从业人员、卫生设施、卫生支出等几个维度的主要统计数据,给大家做一些简单的分析,希望对在医疗健康行业创业和投资的小伙伴有帮助(或许可以帮大家在改BP时起到参考作用)。

本篇为上篇,主要解读医疗机构分布概况。有关卫生行业从业人员、卫生设施、卫生支出等统计解读之后奉上。欧了,欢迎板砖(但请勿伤人啊啊啊),欢迎指正,请加我们微信号或关注“神炖局”。

OK,我们先来搞清楚几个基本术语和分类概念:

(1)医疗卫生机构

啥叫“医疗卫生机构”?是怎么分类的?我们直接看图:Image title

医疗卫生机构是个第一层级大概念:

- 从构成类别上讲,就4大类:医院、基层医疗卫生机构、专业公共卫生机构、其他(我们重点关注“医院”和“基层医疗卫生机构”就可以了,原因后面解释);

- 从经营性质上讲,就2大类:公立、民营;

- 从投资角度讲,也2大类:营利性、非营利性(您要投资非营利性医院我们保证不拦您,我们当您是慈善家);

- 从主办单位角度讲,就3大类:政府办、社会办、私人办;

好,这个讲清楚了。

(2)医院、基层医疗卫生机构、专业公共卫生机构、其他医疗卫生机构

这几个概念是第二层级,我们选择第一层级概念中“机构类别”来往下看:Image title

- 医院:主要就5大类,即综合医院、中医医院、中西医结合医院、专科医院、民族医院;专科医院里又可细分几个类别;这里面中西医结合医院、民族医院是个啥,请自觉百度一下;

- 基层医疗卫生机构:既然是基层的,层级就要复杂多了,所以往下分就有卫生院(街道、乡镇),社区卫生站/卫生中心,村卫生室/门诊/诊所等等;

- 专业卫生机构:主要就是疾病/疫病防治控制中心、采供血站、以及计生委并进来之后的专业机构,另外注意一下,有些妇幼保健机构不是医院哟;

- 其他卫生机构:记一个疗养院吧,其他不重要了。哦,对,要想搞医学在职教育创业的,请往这一栏里面仔细看看。

好,这个也讲清楚了。

(3)卫生人员

“卫生机构”这概念刚给您讲清楚了,那么啥是卫生人员?简单讲,就是跟“卫生机构”这概念相匹配的第一层级概念。凡是跟“卫生”扯得上半毛钱关系的,都可以扯进来。

所以,医生是卫生人员,护士、药师也是,医疗设备修理工的也是,病床护理工也是,医学教学科研的砖家也是,医院党委书记也必须是,看图就知道啦(图里面的百分比就给大家一个各分类人群占比的概念):Image title

所以“卫生人员”往下的第二层级概念主要就几个:

- 卫生技术人员:这个简单明了直接,就是我们日常理解的医生、助理医生、护士、药剂师、检验师、影像技师啥的,都是一线专业医务人员,占据卫生人员体系的大多数(70%以上);

- 管理人员:就是担任医疗机构领导职责、管理工作、或医院科研的人员,对,医院党委书记、纪委书记在此列;

- 乡村卫生人员:指乡村医生、乡村卫生员等,所以毛主席讲的“赤脚医生”请在这里找;

- 其他:包括一般技术人员、工勤技能人员等,护理工、收费员、挂号员等就都在此群里啦;

Now,基本概念讲清楚了,我们速速看看医疗卫生机构的概况:

先说明一下数据来源和准确性的问题,我们分析用的系统性数据只到2013年,原因是神炖局小伙伴最新只搞到了2014年的统计年鉴,您要有2015年的年鉴(which其实统计的是2014年的数据),您要不介意的话,请发挥互联网共享经济的精神共享一下。

当然,我们注意到最近准备在香港上市的温州康宁精神病院招股书里行业里有一些更新的数据,但相对我们的报告来看,只是部分更新,所以我们没借用其数据,但您可以下载下来翻翻看。因此,后面如果没有特别提示,相关数据都截至2013年。

接下来我们一问一答吧,顺着我们的逻辑,发散您的思维:

(1)先看格局,中国有多少家医疗卫生机构?

- 2003年之前,中国的医疗卫生机构都在100万家以上,2002年医改调结构,2003年缩减到80余万家,之后平稳上升,到现在国内医疗卫生机构回到百100万家的水平,如下图所示:Image title

- 这100万家医疗卫生机构中,基层卫生医疗机构由于分布在我国广袤的农村大地,在数量上占了绝对主导(91.5万家),比例上则差不多占了94%,这就是为什么党中央一再强调要加强基层医疗卫生体系的建设,这么庞大的体系,建设不好会增加维稳费用。Image title

(2)中国的基层医疗卫生机构为什么那么庞大?

- 其实很简单,看图看结构就知道了:   Image title      

 - 这91.5万家基层医疗机构中有约84万家是村卫生室和村诊所(单村卫生室就差不多有65万个),这是真正的“基层”,再往下那就应该是摆地摊的江湖郎中了,这个统计卫计委搞不定,我们也搞不定,要不您来帮卫计委统计吧;

- 我们简单对标查了一下,我国2013年差不多有60万个左右的行政村,村子有大有小,有些村只有一个卫生室,有些有好几个,有些还有诊所,所以84万对VS 60万,makesgood sense;

- 这里面,社区服务站(中心)是2002年医改以来增速最快的机构(2000~2003年CAGR增速高达近14%),目的是医疗诊疗分级,以缓解大医院医疗资源供求不平衡的问题,可在社区开展基本医疗服务,比如查查血、查查尿、打个点滴、基本超声检查、再卖点药啥的,这个机构设置总得来说在分流一部分门诊病患量上还是有一定作用;我们了解到一些移动医疗创业企业以社区服务站为基础开展远程诊疗服务,这是可以有的~

(3)回过头来,这医疗卫生机构中,医院一共有多少家?

- 2003年时,中国有约1.63万家医院,到2013年时有约2.47万家医院(现在中国差不多接近2.6万家医院),增长了51%(加上前面基层医疗机构共94万家,占所有医疗机构的96%以上,这就是为什么刚才我们说您只需要关注“医院”和“基层医疗卫生机构”就欧克的原因),因为其他的在统计上真的不重要······Image title

- 2003-2013年同时期,中国的总人口从12.7亿增长到了13.7亿,只增长了7.9%(实际上中国的人口出生率自2003年起就一直在稳步下降,从2003年的1.4%降到2013年的1.2%);

- 核心医疗资源的增速远高过人口增速,这样看上去似乎很乐观,但是很不幸,我朝面临两大常识性问题(所谓常识性问题,意思就是说您就别站出来挑战了,就算砖家我们也不会给面子):一个是人口结构老龄化的加速,一个是一直在治理一直在恶化的环境污染(Sorry,我们拒绝使用“霾”这个字来绕开描述严重的空气化学污染,谁来argue我们跟谁急);

- 前面这个问题在统计数据上的表现之一是我国每年逐步提高的人口死亡率(从2003年的6.4‰提高到2013年的7.16‰)和逐年降低的人口自然增长率(从2003年的6.01‰降低到2013年的4.92‰);后面这个问题二不用我们列举数据,甚至不用我们废话,每月总有那么几天,同志们都在刷类似“天空飘来五个字-国贸大饭店”或者“全北京都发射成功”的朋友圈,全宇宙包括三体人都懂;

- 这两个问题带来的结果是什么呢?我们的theory是导致待诊和就医的病人人数的增速大大超过医疗资源配置的增速,生病看病的人越来越多(单是2009年到2013年的5年时间我国医院的诊疗次数就从19亿人次提高到了27亿人次,提高了42%-注意,前面的数据都是在对比2000~2013年),看病难治病难却未曾有效解决。当然,我们还没傻傻分不清这个结果的推导还需考虑n多其他变量,但我们就拿这俩变量来举例说咋滴了。。。

(4)这两万多家医院主要是什么类型的医院?

- 文章很长,扯到这儿怕您给忘了,提示一下:刚才我们说“医院”这个概念往下分有5大类,即综合医院、中医医院、中西医结合医院、专科医院、民族医院;

- 其实常识也可以告诉我们,民族医院和中西医结合医院肯定是少数的,所以咱看看另外三个类型的医院得了:

Image title

- 很明显,综合性医院占所有医院总数的60%以上,专科医院占21%左右,中医医院占12%左右(这仨加起来就95%了);从增速来看,专科医院的增速是最快的,10年翻了两倍多,莆田的兄弟们绝对是最大贡献者(先把医院整体情况扯完,一会儿我们多聊几句专科医院)。

(5)换个角度,这么多年医院的地域分布情况如何?

-回答这个问题前,我们来看看两幅有关我国人口地域分布的图:Image title

-常识和数据都告诉我们,中国人口主要分布在中东部地区,占人口总量的70%以上;而按城乡划分,则城镇人口已超过一半,占55%;

-我们再对比一下我国医院的地域分布情况(下图),发现我国医院分布数量特征基本与人口地域分布特点基本一致,大多的医院分布在中东部地区,而城市和乡镇的医院则基本一半一半;Image title

- 差别相对比较明显的是基层卫生医疗机构中社区卫生服务站(中心),其在东部地区的分布占比更多,这很好理解,就不多废话了:Image title

(6)这些医院按营利性质和经营主体来看,又是怎么分布的?

- 从经营性质来看,我国“非营利医院”约占医院总数占大多数,达7成(约1.7万家),而“营利性医院”最近这几年增长速度也较快,达到3成(约7000余家),所以在我国,大部分医院都就是非营利性的;Image title

- 注意,是营利性,不是盈利性;啥区别?“营利性”指主观上想谋取利润,但,不一定谋取得到利润;所以,“盈利性”就指主观上想谋取利润,且,还真赚钱了;在我国,不管说医院是营利还是盈利都比较敏感,作为公立医院的院领导,如果敢说自己管理的医院营利,那就属于政治错误、道德沦丧、没有救死扶伤精神、缺乏人道主义,会被万人唾弃、群起而攻之,文斗武斗少不了,会很惨滴;您见到过哪家大医院的简介里会大张旗鼓地讲自己资产规模、收入增长、每年净利润啥的么?但作为民营医院的管理者,说自己医院营利,底气肯定比公立医院领导者足,要IPO路演时还要对营利和盈利能力大扯特扯;不过,民营医院老板就得祈求自己医院别出重大医疗事故,只要出医疗事故,再被互联网上小伙伴传播分享一下,我保证等待您的不是诗歌和远方,而是人肉和唾沫,再遇到浑水砸你盘,你除了叫孙砸你跟我等着,毛办法也没。

- 话说回来,医院该不该营利或者盈利,很难从单个维度来简单回答,砖家那么多,还是有请砖家来回答。不过我们就反问几个常识性问题:我国的医务工作者,除了那些少数在各地区知名度极高的医院里工作的拿着超高收入以外,这个群体的大多数每天干着高风险、高压力、高强度的医务工作,却拿着比很多其他行业从业者要低的收入?大哥你跟我讲讲这是为什么?咱再看看美国,美国最大也是全球最大的医院集团HCA集团(Healthcare Corporation of America)旗下几百家医院,数万张床位,就是个营利性机构,怎么没见HCA在美国受到社会的非议呢?

- Anyway,刚才提到公立和民营的概念,我们看了看,我国2.6万家医院,除专科医院外(莆田的兄弟们干得漂亮啊),公立医院还是占据了更大的比例,如下图:Image title

(7)那么按等级来划分医院,又是什么情况?

- 不知大哥你怎么看,反正在我们眼里,好医院都得三甲才行,二乙以上基本算ok。像我们这种看个感冒打个点滴都要往三甲医院跑的,太矫情,属于占用并浪费医疗资源的人(此刻独自面壁思过)。

- 所以我们查了查,中国的三级医院现在差不多1800家左右,不足医院总数的8%,其中约1100家是三甲医院(每个级别的医院分甲乙丙,不懂的大哥请百度),如下图:Image title

- 多说一句,除了三级医院,我国有差不多约6700家二级医院(其中二甲3800家),以及约6500家一级医院(其中一甲2300家),所以加上这1800家三级医院,定了级的医院差不多1.5万家

- 换句话说,中国还有大量没有定级的医院,差不多1万家,这里面公立和民营的都有,但以民营的为主,大概是1:2,所以您看个病还是多留意一下;当然,我们没说没定级的医院一定就是不好的医院,就好比您去住桔子水晶或者全季酒店,指定比很多三星级宾馆好一个道理,人家不屑于参与定级您要怎么着?任性的除了土豪,也可以是很牛X的;Image title

- 出于好奇,咱再问一个问题,这1800家三级医院里,有多少是公立的?有多少是民营的?Again,常识告诉我们,肯定是公立的三级医院多,但是,民营医院真的能干出三级么?另外,从地域分布来看,三级医院主要集中在哪些区域?

- Ok,我们一图回答俩问题。是的,没错,中国有差不多100家民营三级医院!而与人口分布相比较,中国的三级医院在东部地区稍显集中,这也可以理解嘛,建设三甲医院投资金额大,需要布局在人口稠密的地区,而这两个特点我国东部地区都符合。Image title

- 经济和人口数据是否支持呢?我们看了一下中国人口按省份排名的情况,并对比三级医院在各省份的分布,发现中国三级医院数量最多的省份除北京、上海外,有广东、浙江、江苏、辽宁、山东、四川、河南;其中广东、山东、河南、四川均为人口大省(人口均在8000万以上),而江苏与浙江都是典型的东部沿海经济发达地区,所以三级医院多一些,也符合上图数据结果的展示。

- 关于民营三甲医院,国内真正定级的确实很少,有关谁是国内第一家民营三甲医院的问题有些不同说法。“西安高新医院”的朋友看到这儿肯定会说,你丫不用怀疑,肯定是我们,我们后面的控股股东是A股上市公司国际医学(000516),公开信息披露是经得起推敲的; 但广东东莞康华医院的朋友可能会有不同看法,人家一样敢公开报道说是第一,anyway了。 

(8)对了,专科医院是个什么情况?

- 咱说了半天医院整体的情况,但说好了要多扯几句全国专科医院的情况。我们觉得吧,不管您怎么看,还是要多亏莆田兄弟们,中国的民营医院发展才可以这么快;当然,也得感谢百度兄弟们,帮莆田兄弟把牛皮癣从电线杆移到了互联网上,现在电线杆、楼道里上基本就只留下开锁的牛皮癣了,要不外人看了还以为国人都很open,传染性泌尿生殖疾病处处流行;

- 我们简单总结一下前面已经提到的专科医院的几个数据:全国约5200家专科医院,在所有医院里面增速最快(2000-2013的CAGR近10%!),大部分(65%以上)为民营;

- 现在,我们来看看其城乡分布特点(如下图),很有意思,基本上大部分的专科医院(超7成)都分布在城镇里Image title




- 为什么那么多专科医院都分布在城镇呢?咱先回到开头时说的有关专科医院的分类,大致包括了:口腔、眼科、耳鼻喉、肿瘤、心血管、脑科、肛肠科、皮肤科、儿科、妇产科、骨科、传染病、整形美容、康复、精神病等主要的科别,我们选几个主要的看看。

- 首先,honestly,您觉得农村伯伯农村叔叔、农村大嫂大妈会整天care自己长得好不好看么?他们切个西瓜宰个肉砍个柴拿大刀就解决了,用不着拿自己的脸来削,所以整形医院美容医院啥的必定是开在城里的(如下图);你给农村的大伯大婶讲你要在脸上身上改造,会把他们吓着的。。。不过神炖局小伙伴很好奇,那仅有的十几家农村美容专科医院都开在我国哪里的农村,太潮了······

Image title

- 其次,咱再看看口腔、眼科和妇科。Again, 农村伯伯农村叔叔、农村大嫂大妈会整天care自己的牙齿是不是足够美白么?再说,人天天地里屋里干农活,是地道的地农田农,不是码农,不用每天盯着手机屏幕电脑屏幕码英文字母和阿拉伯数字,所以眼睛大多都还是好着。。。所以,同样必然的,这几类专科医院城镇里的占比大很多:Image title

- 此外,我们看看精神病和康复科专科医院,比较有意思。全国专科医院里,精神病专科医院的数量是最多的,有近800家!是的,您没看错,不是齿科、不是妇科、不是皮肤病科,是精神病专科!且,虽然城镇的精神病专科医院依然占据主导,但农村精神病专科医院占比也有超过40%!Image title

- 哎······一声叹气,其实精神病怎么来的呢,大多时候就是因为各种关系没有处理好,父母子女关系(原生家庭影响最大)、丈夫妻子关系、老板同事关系等等,病态的关系把人推向精神崩溃后产生幻觉世界导致。所以现在心理辅导方面的创业公司也比较受资本欢迎,估值也不错,因为需要帮助的灵魂真的很多,这是市场需求是真实而且是刚性的。

- 不管怎样,神炖局一直提倡,在生活和工作中大家还是要尊重、包容、有同理心、有同情心,做人做事都要有阳光、正向的价值观,不管是什么关系中都该把快乐和平和放在首位!

(9)我们结束上半场之前,最后一个问题,从床位规模来看我国医院如何分布?

大家记住几个关键点就好啦:

- 公立医院中,300张床位以下中型医院的数量占近7成,800张床位以上大型医院的数量占10%左右;

- 民营医院中,85%的是100张床位以下的小型医院;100-300张的中型医院占13%左右;

- 专科医院中,同样绝大部分是100张床位以下的小型医院;而500张床位以上的大型专科医院主要都是精神病医院(people need our love and care)Image title

 好了,上半场先扯这么多吧,信息量好大、脑细胞死了好多,喝口水休息休息,找个时间再继续跟大家掰扯中篇和下篇。

10 Jan 06:11

给小白的Java EE指南

by Java爱好者

给小白的Java EE指南

The post 给小白的Java EE指南 appeared first on 资讯 - 伯乐在线.

10 Jan 02:40

甲骨文的企业版内核引入了实时打补丁功能

by AnkhMorpork
在收购Ksplice项目四年之后,甲骨文向其企业版内核加入了不用重启为Kernel打补丁的功能。它刚刚向 Oracle Enterprise Linux 6 和Oracle Enterprise Linux 7系列操作系统释出了Unbreakable Enterprise Kernel (UEK) Release 4,加入了实时内核打补丁功能。Oracle Linux 6 和 Oracle Linux 7是基于Red Hat Enterprise Linux 6和7,新版的内核是基于4.1 Kernel。无需重启进行安全更新对于基础设施运营商至关重要,去年4月发布的Linux 4.0合并了Live Patching,为实时内核打补丁功能提供了必要的内核模块API和用户空间API/ABI。






09 Jan 10:41

InfoQ中文站2015年度优秀社区编辑评选揭晓

by 丁晓昀
又到了年终岁末,在过去的一年里,InfoQ网站的月独立UV接近130万,月PV突破200万,每周独立访问用户接近30万,网站访问量过万的文章超过60篇。每月活跃的数十位社区编辑为InfoQ的内容生产贡献着力量。正是这点点汇聚的星光,成就了InfoQ中国这家一流技术媒体。我们向每一位社区贡献者、爱好者致敬。

 

根据后台统计和编辑部的内部票选,我们选出了5位InfoQ年度优秀社区编辑,他们分别是:

[最佳译者]邵思华

邵思华

[个人简介]在Imagination担任Tech Lead,居于上海。热爱编程、热衷于互联网产品开发及移动开发、支持敏捷,对新概念、产品和技术怀有热情。推崇SOLID,目前正在钻研DDD、CQRS。

[入选理由]早年加入InfoQ的资深译者,繁忙工作之余,参与翻译了网站新闻和文章共200余篇,并悉心指导新译者快速融入团队。他的翻译能根据不同的文风在准确、易读、流畅、优美间把握平衡,是译者团队的学习楷模。

[评委会推荐作品]Java字节码忍者禁术

[邵思华本人最满意作品]我们是否应该把后端构建为API

[最佳原创编辑]张天雷
张天雷

[个人简介]清华大学计算机系博士生,主要研究方向为人工智能,他还是概率论、机器人和Python的狂热爱好者,致力于用概率图模型等方法,让机器变得更聪明。

[入选理由]毫无疑问,张天雷是InfoQ的劳模,常年以来关注技术动态,孜孜不倦、笔耕不辍,2015年为InfoQ带来34万的访问,无数行业资讯出自他之手。

[评委会推荐作品]Facebook如何向十亿人推荐东西

[张天雷本人最满意作品]机器学习编程语言之争,Python夺魁

[读者最喜爱的编辑]谢丽

此处输入图片的描述

[个人简介]喜欢技术,乐于学习;喜欢历史八卦,常看日本动画。

[入选理由]她笔锋犀利,文章言之有序,最擅长的领域是开发语言和云计算,全年贡献200余篇新闻,为InfoQ带来了近50万的访问量。她是InfoQ的编辑老兵,勤勤恳恳,总是不作声地为整个社区带来最好的行业资讯和观点。

[评委会推荐作品]别再用MongoDB了!

[谢丽本人最满意作品]微服务架构的设计模式

[最佳原创作者]王沛

王沛

[个人简介] 《Web2.0界面设计模式》合著者。2013年加入SAP,负责SAP Anywhere产品前端和移动技术架构和开发。

[入选理由]前端技术发展令人目不暇接,他在React火爆之前敏锐的抓住流行趋势,在吃透并用于实践之后,用生动而严谨的文笔为我们深入浅出的剖析React的技术内涵,创造了多篇优秀内容,并且在QCon上做了分享。

[评委会推荐作品](专栏)深入浅出React

[最佳社区新人] 刘振涛

此处输入图片的描述

[个人简介] 92年生人,Web开发领域新生,近期关注 Ecmascript 6,爱好摄影、网球,重度信息癖(Infomania)患者。

[入选理由]他有着90后的特质,激情洋溢,冲劲十足,在工作之余策划并翻译17篇深入浅出ES6系列文章,除此之外,他还积极参与社区活动,这是一颗冉冉升起的前端之星。

[评委会推荐作品](专栏)深入浅出ES6

2015年参与InfoQ内容建设的作者和译者有300多人,借此机会我们向所有关注并支持InfoQ的朋友们表示感谢!感谢InfoQ的所有社区编辑和译者,你们是社区蓬勃发展的基石;感谢所有给InfoQ投稿的原创作者,你们帮助我们促进了软件开发领域知识与创新的传播;感谢所有技术领域的把关人,你们严谨细致、倾囊相授确保了InfoQ的内容质量。我们欢迎更多的爱好技术、喜爱分享的人加入InfoQ社区,分享就是最好的广告,跟大牛们混的多了,想不牛都难!

InfoQ.com是由实践者驱动的社区媒体,我们的目标是: 推进和传播软件开发领域的知识和创新。 作为编辑兼实践者,我们参与成员驱动的编辑过程,向着这个共同目标努力前进,具体工作方式包括:翻译和撰写新闻,并以文章、采访、录制技术大会视频等多种形式分享知识。

我们是InfoQ编辑,我们是信息的罗宾汉,现在就发邮件给
editors@cn.infoq.com,告诉我们你的专长和意向,我们会将你培养成为一名好编辑。:)

08 Jan 10:35

文章: 解读2015之大数据篇:大数据的黄金时代

by 杜小芳

编者按

2015年,整个IT技术领域发生了许多深刻而又复杂的变化,InfoQ策划了“解读2015”年终技术盘点系列文章,希望能够给读者清晰地梳理出技术领域在这一年的发展变化,回顾过去,继续前行。

本文是大数据解读篇,在这篇文章里我们将回顾2015展望2016,看看过去的一年里广受关注的技术有哪些进展,了解下数据科学家这个职业的火热。 在关键技术进展部分我们在大数据生态圈众多技术中选取了Hadoop、Spark、Elasticsearch和Apache Kylin四个点,分别请了四位专家:Hulu的董西成、明略数据的梁堰波、精硕科技的卢亿雷、eBay的韩卿,来为大家解读2015里的进展。

回顾2015

1,关键技术进展:

Hadoop:

Hadoop作为大数据平台中最基础与重要的系统,在2015年提高稳定性的同时,发布了多个重要功能与特性,这使得Hadoop朝着多类型存储介质和异构集群的方向迈进了一大步。

  • HDFS 

HDFS 之前是一个以磁盘单存储介质为主的分布式文件系统。但随着近几年新存储介质的兴起,支持多存储介质早就提上了日程。如今,HDFS 已经对多存储介质有了良好的支持,包括 Disk、Memory 和 SSD 等,对异构存储介质的支持,使得 HDFS 朝着异构混合存储方向发展。目前HDFS支持的存储介质如下:

ARCHIVE:高存储密度但耗电较少的存储介质,通常用来存储冷数据。

DISK:磁盘介质,这是HDFS最早支持的存储介质。

SSD:固态硬盘,是一种新型存储介质,目前被不少互联网公司使用。

RAM_DISK :数据被写入内存中,同时会往该存储介质中再(异步)写一份。

  • YARN

YARN作为一个分布式数据操作系统,主要作用是资源管理和资源调度。在过去一年,YARN新增了包括基于标签的调度、对长服务的支持、对 Docker 的支持等多项重大功能。

 基于标签的调度,使得 YARN 能够更好地支持异构集群调度。它的基本思想是,通过打标签的方式为不同的节点赋予不同的属性,这样,一个大的Hadoop集群按照节点类型被分成了若干个逻辑上相互独立(可能交叉)的集群。这种集群跟物理上独立的集群很不一样,用户可以很容易地通过动态调整 label,实现不同类型节点数目的增减,这具有很好的灵活性。

对长服务的支持,使得YARN逐渐变为一个通用资源管理和调度系统。目前,YARN既支持像类似 MapReduce,Spark 的短作业,也支持类似 Web Service,MySQL 这样的长服务。 支持长服务是非常难的一件事情,YARN 需要解决以下问题:服务注册、日志滚动、ResourceManager HA、NodeManager HA(NM 重启过程中,不影响 Container)和 ApplicationMaster 永不停止,重启后接管之前的 Container。截止2.7.0版本,以上问题都已经得到了比较完整的解决。

对Docker的支持,使得YARN能够为上层应用提供更好的打包、隔离和运行方式。YARN通过引入一种新的ContainerExecutor,即DockerContainerExecutor,实现了对Docker的支持,但目前仍然是alpha版本,不建议在生产环境中使用。

  • HBase

在 2015 年,HBase 迎来了一个里程碑——HBase 1.0 release,这也代表着 HBase 走向了稳定。 HBase新增特性包括:更加清晰的接口定义,多 Region 副本以支持高可用读,Family 粒度的 Flush以及RPC 读写队列分离等。

spark:

2015年的Spark发展很快,JIRA数目和PR数目都突破了10000,contributors数目超过了1000,可以说是目前最火的开源大数据项目。这一年Spark发布了多个版本,每个版本都有一些亮点:

  • 2014年12月,Spark 1.2发布引入ML pipeline作为机器学习的接口。
  • 2015年3月,Spark 1.3发布引入了DataFrame作为Spark的一个核心组件。
  • 2015年6月,Spark 1.4发布引入R语言作为Spark的接口。R语言接口在问世一个多月之后的调查中就有18%的用户使用。
  • 2015年9月,Spark 1.5发布。Tungsten项目第一阶段的产出合并入DataFrame的执行后端,DataFrame的执行效率得到大幅提升。
  • 2016年1月,Spark 1.6发布引入Dataset接口。

Spark目前支持四种语言的接口,除了上面提到的R语言的使用率以外,Python的使用率也有很大提升,从2014年的38%提升到2015年的58%;而Scala接口的使用率有所下降,从84%下降到71%。同时Spark的部署环境也有所变化,51%的部署在公有云上,48% 使用standalone方式部署,而在YARN上的只有40%了。可见Spark已经超越Hadoop,形成了自己的生态系统。而在形成Spark生态系统中起到关键作用的一个feature就是外部数据源支持,Spark可以接入各种数据源的数据,然后把数据导入Spark中进行计算、分析、挖掘和机器学习,然后可以把结果在写出到各种各样的数据源。到目前为止Spark已经支持非常多的外部数据源,像Parquet/JSON/CSV/JDBC/ORC/HBase/Cassandra/Mongodb等等。

上面这些调查数据来自美国,中国的情况有所区别,但是还是有一定的借鉴意义的。国内的Spark应用也越来越多:腾讯的Spark规模到了8000+节点,日处理数据1PB+。阿里巴巴运行着目前最长时间的Spark Job:1PB+数据规模的Spark Job长达1周的时间。百度的硅谷研究院也在探索Spark+Tachyon的应用场景。

Spark MLlib的ALS算法已经在很多互联网公司用于其推荐系统中。基本上主流的互联网公司都已经部署了Spark平台并运行了自己的业务。上面说的更多的互联网的应用,实际上Spark的应用场景有很多。在Databricks公司的调查中显示主要应用依次是:商务智能、数据仓库、推荐系统、日志处理、欺诈检测等。

除了互联网公司以外,传统IT企业也把Spark作为其产品的一个重要组成。IBM在今年6月的Spark summit期间宣布重点支持Spark这个开源项目,同时还开源了自己的机器学习系统SystemML并推进其与Spark的更好合作。美国大数据巨头Cloudera,Hortonworks和MapR都表示Spark是其大数据整体解决方案的核心产品。可以预见Spark是未来若干年最火的大数据项目。

在深度学习方面2015年可谓非常热闹,如Google开源其第二代机器学习系统TensorFlow,Facebook开源Torch和人工智能硬件服务器Big Sur等等。Spark社区也不甘落后,在1.5版本中发布了一个神经网络分类器MultiplayerPerceptronClassifier作为其深度学习的雏形。虽然这个模型还有很多地方需要优化,大家不妨尝试下,毕竟它是唯一一个基于通用计算引擎的分布式深度学习系统。

除了现在非常火的深度学习,在传统统计和机器学习领域,Spark这一年也有非常大的变化,包括GLM的全面支持,SparkR GLM的支持,A/B test,以及像WeightesLeastSquares这样的底层优化算法等。

具体内容可以看梁堰波在InfoQ上的年终回顾:《解读2015之Spark篇:新生态系统的形成》。

Elasticsearch:

Elasticsearch 是一个可伸缩的开源全文搜索和分析引擎。它可以快速地存储、搜索和分析海量数据。Elasticsearch 基于成熟的 Apache Lucene 构建,在设计时就是为大数据而生,能够轻松的进行大规模的横向扩展,以支撑PB级的结构化和非结构化海量数据的处理。Elasticsearch生态圈发展状态良好,整合了众多外围辅助系统,如监控Marvel,分析Logstash,安全Shield等。近年来不断发展受到广泛应用,如Github、StackOverflow、维基百科等,是数据库技术中倍受关注的一匹黑马。

Elasticsearch在今年下半年发布了2.0版本,性能提升不少,主要改变为:

  • Pipeline Aggregation

流式聚合,像管道一样,对聚合的结果进行再次聚合。原来client端需要做的计算工作,下推到ES,简化 client代码,更容易构建强大的查询。

  • Query/Filter 合并

取消filters,所有的filter语句自动转换为query语句。在上下文语义是query时,进行相关性计算;上下文语 义是filter时,简单排除b不匹配的doc,像现在的filter所做的一样。这个重构以为着所有的query执行会以最 有效的顺序自动优化。例如,子查询和地理查询会首先执行一个快速的模糊步骤,然后用一个稍慢的精确 步骤截断结果。在filter上下文中,cache有意义时,经常使用的语句会被自动缓存。

  • 可配置的store compression

存储的field,例如_source字段,可以使用默认的LZ4算法快速压缩,或者使用DEFLATE算法减少index size。对于日志类的应用尤其有用,旧的索引库在优化前可以切换到best_compression。

  • Hardening

Elasticsearch运行于 Java Security Manager之下,在安全性上标志着一个巨大的飞跃。Elasticsearch难于探测,黑客在系统上 的影响也被严格限制。在索引方面也有加强: indexing请求ack前,doc会被fsync,默认写持久化 所有的文件都计算checksum,提前检测文件损坏 所有的文件rename操作都是原子的(atomic),避免部分写文件 对于系统管理员来讲,一个需求较多的变化是,可以避免一个未配置的node意外加入Elasticsearch集群网络:默认绑 定localhost only, multicast也被移除,鼓励使用unicast。

  • Performance and Resilience

除上所述,Elasticsearch和Lucene还有很多小的变化,使其更加稳定可靠,易于配置,例如:

默认doc value,带来更少的heap usage,filter caching 更多使用 bitsets type mappings 大清理,更安全可靠,无二义性 cluster stat 使用diff进行快速变化传播,带来更稳定的大规模集群

  • Core plugins

官方支持的core plugins同时发布,和Elasticsearch核心使用相同的版本号。

  • Marvel 2.0.0 free to use in production

Marvel免费。

Apache Kylin:

Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区。最初于2014年10月1日开源,并于同年11月加入Aapche孵化器项目,并在一年后的2015年11月顺利毕业成为Apache顶级项目,是eBay全球贡献至Apache软件基金会(ASF)的第一个项目,也是全部由在中国的华人团队整体贡献至Apache的第一个项目。

在eBay,已经上线两个生产环境平台,有着诸多的应用,包括用户行为分析、点击分析、商户分析、交易分析等应用,最新的Streaming分析项目也已经上线。目前在eBay平台上最大的单个cube包含了超过1000亿的数据,90%查询响应时间小于1.5秒,95%的查询响应时间小于5秒。同时Apache Kylin在eBay外部也有很多的用户,包括京东、美团、百度地图、网易、唯品会、Expedia、Expotional等很多国内外公司也已经在实际环境中使用起来,把Apache Kylin作为他们大数据分析的基础之一。

过去的一年多是Apache Kylin发展的重要的一年:

  • 2014年10月1日,Kylin 代码在github.com上正式开源
  • 2014年11月25日,正式加入Apache孵化器并正式启用Apache Kylin作为项目名称
  • 2015年6月10日,Apache Kylin v0.7.1-incubating发布,这是加入Apache后的第一个版本,依据Apache的规范作了很多修改,特别是依赖包,license等方面,同时简化了安装,设置等,并同时提供二进制安装包
  • 2015年9月6日,Apache Kylin v1.0-incubating正式发布,增强了SQL处理,提升了HBase coprocessor 的性能,同时提供了Zeppelin Interpreter等
  • 2015年9月16日,Apache Kylin与Spark,Kafka,Storm,H2O,Flink,Elasticsearch,Mesos等一起荣获InfoWorld Bossie Awards 2015:最佳开源大数据工具奖,这是业界对Kylin的认可
  • 2015年11月18日,Apache Kylin正式毕业成为Apache顶级项目
  • 2015年12月15日,Apache Kylin v1.2正式发布,这是升级为顶级项目后的第一个版本,提供了对Excel,PowerBI,Tableau 9等的支持,对高基维度增强了支持,修复了多个关键Bug等
  • 2016年,Apache Kylin将迎来重要的2.x版本,该版本对底层架构和设计作了重大重构,提供可插拔的设计及Lambda架构,同时提供对历史数据查询,Streaming及Realtime查询等,同时在性能,任务管理,UI等各个方面提供增强。

同时,过去一年也是社区发展的重要一年,在过去一年内发展了来自eBay,美团,京东,明略数据,网易等众多committer,社区每天的讨论也是非常热闹。社区提交了很多新特性和Bug修复,包括来自美团的不同HBase写入,来自京东的明细数据查询,来自网易的多Hive源等多个重大特性为Apache Kylin带来了巨大的增强。

社区合作

在开源后的一年时间内,Apache Kylin也和其他社区建立了良好的合作关系,Apache Calcite作为Kylin 的SQL引擎被深入的整合进来,我们也向Calcite提交了很多改进和修复,Calcite的作者,Julian Hyde也是Kylin的mentor。HBase是Kylin的存储层,在实际运维中,我们碰到过无数问题,从可靠性到性能到其他各个方面,Kylin社区和HBase社区积极合作解决了绝大部分关键问题。另外,现在越来越多的用户考虑使用Apache Zeppelin作为前端查询和展现的工具,为此我们开发了Kylin Interperter并贡献给了Zeppelin,目前可以直接从最新版的Zeppelin代码库中看到这块。同样,我们也和其他各个社区积极合作,包括Spark,Kafka等,为构建和谐的社区氛围和形成良好合作打下了坚实的基础。

技术发展

技术上,这一年来Apache Kylin主要在以下几个方面

  • Fast Cubing

在现在的版本中,Cube的计算依赖MapReduce,并且需要多个步骤的MR Job来完成计算,且MR Job的多少和维度相关,越多的维度会带来更多的MR job。而每一次MR job的启停都需要等待集群调度,并且MR job之间的数据需要多次在HDFS落地和传输,从而导致消耗了大量的集群资源。为此我们引入了一种新的算法:Fast Cubing。一个MapReduce即可完成Cub的计算,测试结果表明整个Cubing的时间可以降低30~50%左右,网络传输可以下降5倍,这在超大规模数据集的计算上带来了客观的性能改进。

  • Streaming OLAP

Kylin作为一个预计算系统,不可避免的有着数据刷新延迟的限制,这在大部分用户案例中并不是问题,但随着业务和技术的发展,Streaming甚至Realtime的需求越来越高。2015年Kylin的主要发展都在Streaming OLAP上,为了支持低延迟的数据刷新,从整体的架构和设计上都做了相当大的重新设计,目前已经可以支持从Kafka读取数据并进行聚合计算的能力,同时提供SQL接口为前端客户端提供标准的访问接口,数据延迟已经可以做到分钟级别。

  • Spark Cubing

Spark作为MapReduce的一种替代方案一直在社区中被问及Kylin是否可以支持直接使用Spark来作为计算。为此我们在2015年下半年实现了同样算法的Spark Cubing引擎,目前还在测试中。

  • 可插拔架构

为了更广泛的可扩展性,并支持如上各种新特性,Kylin在2.x的代码中引入了可插拔架构和设计,从而解决了对特定技术的依赖问题。在新的设计中,数据源可以从Hive,SparkSQL等各种SQL on Hadoop技术读取,并支持Kafka;在计算引擎方面,除了MapReduce方面的Fast Cubing外,实现了Spark Cubing,Streaming Cubing等多种计算框架,并为将来其他计算框架留下了扩展接口;在存储上,HBase目前依然是唯一的存储层,但在上层设计中已经很好的进行了抽象,很容易可以扩展到其他Key-Value系统。

2,大数据与机器学习

机器学习是数据分析不可缺少的一部分。机器学习被赞誉为大数据分析和商务智能发展的未来,成功的机器学习项目依赖于很多因素,包括选择正确的主题,运行环境,合理的机器学习模型,最重要的是现有的数据,大数据为机器学习提供了很好的用武之地。

机器学习正很快从一个被很少人关注的技术主题转变为被很多人使用的管理工具。优秀的算法,大数据和高性能的计算资源的条件的满足使得机器学习快速发展,机器学习在今年第一次进入Gartner技术成熟曲线的报告中,已直接越过了期望鹏展期的高峰,进入大数据一样的应用期;而机器学习也是报告中第一个出现的技术。2015年是机器学习丰收年,发生了很多令人瞩目的大事。

各大巨头开源:

  • 2015年1月,Facebook开源前沿深度学习工具“Torch”。
  • 2015年4月,亚马逊启动其机器学习平台Amazon Machine Learning,这是一项全面的托管服务,让开发者能够轻松使用历史数据开发并部署预测模型。
  • 2015年11月,谷歌开源其机器学习平台TensorFlow。
  • 同一月,IBM开源SystemML并成为Apache官方孵化项目。
  • 同时,微软亚洲研究院将分布式机器学习工具DMTK通过Github开源。DMTK由一个服务于分布式机器学习的框架和一组分布式机器学习算法组成,可将机器学习算法应用到大数据中。
  • 2015年12月,Facebook开源针对神经网络研究的服务器“Big Sur”,配有高性能图形处理单元(GPUs),转为深度学习方向设计的芯片。

大公司不仅是用开源社区来增强自己的机器学习工具,而且也会以收购来提升自身的机器学习实力。如IBM于今年3月收购了AIchemyAPI,AIchemyAPI能够利用深度学习人工智能,搜集企业、网站发型的图片和文字等来进行文本识别和数据分析。

此外,2015年不仅仅是关于大公司的,利用机器学习的各种创业公司也占了同等地位。比如EverString完成B轮融资,该公司利用企业内部销售数据,和不断主动挖掘分析全球新闻数据,社交媒体等外部数据,通过机器学习自动建立量化客户模型,为企业预测潜在客户。

3,数据科学家的崛起

大数据需要数据分析,数据分析需要人才。数据科学是早就存在的词汇,而数据科学家却是近年来突然出现的新词。在Google、Amazon、Quora、Facebook等大公司的背后,都有一批数据科学专业人才,将大量数据变为可开发有价值的金矿。在大数据时代,数据科学家等分析人才的需求在激增。

据相关报告,国内大数据人才缺口目前已达百万,一名高级数据挖掘工程师月薪高达30K-50K。招聘网站上的每天都会产生大量的大数据相关职位需求。据拉勾网提供的统计来看,从2014年到2015年,IT行业关于大数据的岗位需求增长了2.4倍。人才培养迫在眉睫。复旦大学于今年成立了全国首个大数据学院。阿里云于年底宣布新增30所合作高校,开设云计算大数据专业,计划用3年时间培养5万名数据科学家。各知名大学也将数据科学设为硕士课程。

无论是国内还是国外,数据科学都是目前炙手可热的研究领域,数据科学家、数据分析师都是非常火爆的职位,几乎所有的产业都需要数据科学家来从大量的数据中挖掘有价值的信息。大数据分析领域的专属首席级别头衔也愈发多见。美国政府今年任命了DJ Patil作为政府的首席数据科学家(Chief Data Scientist),这也是美国政府内部首次设立“数据科学家”这个职位。

展望2016:

  • Hadoop。对于 HDFS,会朝着异构存储介质方向发展,尤其是对新兴存储介质的支持;对于 YARN,会朝着通用资源管理和调度方向发展,而不仅仅限于大数据处理领域,在加强对 MapReduce、Spark等短类型应用支持的同时,加强对类似Web Service 等长服务的支持;
  • 对于Hbase,将会花费更多精力在稳定性和性能方面,正尝试的技术方向包括:对于 HDFS 多存储介质的使用;减少对 ZooKeeper 的使用以及通过使用堆外内存缓解Java GC的影响。
  • Spark 2.0预计明年三四月份发布,将会确立以DataFrame和Dataset为核心的体系架构。同时在各方面的性能上会有很大的提升。
  • Apache Kylin 2.0即将发布,随着各项改进的不断完善,该版本将在2016年在OLAP on Hadoop上更进一步!
  • ElasticSearch开源搜索平台,机器学习,Data graphics,数据可视化在2016年会更加火热。
  • 大数据会越来越大,IOT、社交媒体依然是一个主要的推动因素。
  • 大数据的安全和隐私会持续受到关注。

 

专家介绍:

董西成 就职于Hulu,专注于分布式计算和资源管理系统等相关技术。《Hadoop 技术内幕:深入解析 MapReduce 架构设计与实现原理》和《Hadoop 技术内幕:深入解 析 YARN 架构设计与实现原理》作者,dongxicheng.org 博主。

梁堰波 明略数据技术合伙人,开源爱好者,Apache Spark项目核心贡献者。北京航空航天大学计算机硕士,曾就职于Yahoo!、美团网、法国电信从事机器学习和推荐系统相关的工作,在大数据、机器学习和分布式系统领域具备丰富的项目经验。

卢亿雷 精硕科技(AdMaster)技术副总裁兼总架构师,大数据资深专家,CCF(中国计算学会)大数据专委委员,北航特聘教授。主要负责数据的采集、清洗、存储、挖掘等整个数据流过程,确保提供高可靠、高可用、高扩展、高性能系统服务,提供Hadoop/HBase/Storm/Spark/ElasticSearch等离线、流式及实时分布式计算服务。对分布式存储和分布式计算、超大集群、大数据分析等有深刻理解及实践经验。有超过10年云计算、云存储、大数据经验。曾在联想、百度、Carbonite工作,并拥有多篇大数据相关的专利和论文。

韩卿(Luke Han) eBay全球分析基础架构部(ADI) 大数据平台产品负责人,Apache Kylin 副总裁,联合创始人,管理和驱动着Apache Kylin的愿景,路线图,特性及计划等,在全球各地不同部门中发展客户,开拓内外部合作伙伴及管理开源社区等,建立与大数据厂商,集成商及最终用户的联系已构建健壮的Apache Kylin生态系统。在大数据,数据仓库,商务智能等方面拥有超过十年的工作经验。

 

07 Jan 06:54

15 位健在的牛叉程序员,你知道哪几位?

by 黄小非

现如今程序员是越来越多了,所以优秀的程序员也是越来越多了。但是他们中哪些才是顶尖中的顶尖呢?

其实要明确地指出“哪一个”程序员是最优秀的,这几乎不太可能,但是业内的开发者们还是对这个话题乐此不疲。ITworld 就通过投票,以及对其他国外社区(比如 Quora、Reddit)中的数据进行分析,来判断排名和分析是否一致。结果,有一些名字确实在大家的讨论中反复出现。

下面就让我们来看看依然健在的最受大家认可的 15 位优秀程序员:

(小编先补充声明,下面排序并不是按个人成就。如果你喜欢的大牛排在后面了,别纠结别激动 ~≧▽≦~ )

1. Margaret Hamilton

主要成就:阿波罗计划飞行控制软件的幕后英雄

上榜理由:作为 Charlse Stark Draper 实验室软件工程部门的主任,她领导她的小组为 NASA 的阿波罗计划和Skylab任务设计并开发飞行控制软件。基于在阿波罗计划中的工作成就,她随后研发了通用系统语言和 DBTF 开发范式。她开创性地提出了“异步软件、优先调度、以及高可信度软件设计”等概念。这些都成为日后“软件工程”的基础。她是1986年Augusta Ada Lovelace奖的获得者,并且在2003年获得了NASA杰出空间表现奖

网友评价

  • ford_beeblebrox:Hamilton发明了软件测试,她可以算得上是美国计算机工程的创始人。
  • Dan Allen:我认为在她所做出成就之前(恕我冒昧,因为Knuth也被包括在这个范围当中),计算机编程(以及其相关的东西)都还只是数学的一个分支。然后一套航天飞行器的飞行控制软件清晰地把编程带向了一个不同的范式领域。
  • David Hamilton: …是她创造了“软件工程”这个词,然后又用例子告诉大家怎么做
  • Drukered:她太厉害了

推荐阅读

就是这个美女程序员,写出了让阿波罗成功登陆月球的代码!

(旁边是「著作等身」的阿波罗制导系统的代码)

2. Donald Knuth

主要成就:《计算机编程艺术》的作者

上榜理由:他写了一本关于计算机编程理论的决定性著作,发明了 TeX 数字排版系统。他是1971年第一届ACM Grace Murray Hopper奖的获得者(译者注:美国海军女少将 Grace Murray Hopper 也绝对是载入史册的计算机科学家和顶级程序员,可惜她已经去世,因此没有列入本文名单)。并且是计算机最高奖ACM图灵奖获得者(1974)(要知道当时他才36岁),还是1979年美国国家科学奖章获得者以及IEEE冯诺依曼奖章获得者(1995)。并在1998年被任命为计算机历史博物馆名人堂成员。

网友评价:

  • 匿名:写《计算机编程艺术》这本书,估计是有史以来关于计算机编程最复杂的工作。
  • Jaap Weel:在我用过的计算机软件里面,只有一种是几乎没有 bug 的,那就是Don Knuth编写的TeX。这太让人印象深刻了。
  • 伯小乐补充:关于 TeX 几乎没 Bug,是真事。高德纳再一次用行动宣告,我这个东西(TeX),不可能再有什么大的改进了,最多只能小修小补,使其趋近完美。他还专门设立了奖金:谁发现Tex的一个Bug,就付他2.56美元,第二个错误5.12美元,第三个10.24美元。请看此文:《程序员单枪匹马做的最复杂/重要的程序,是哪个?》。不过真的有人拿到他的支票了。
  • Mitch Ree-Jones:让我评价他的话,那就是优秀得让人难以置信。

推荐阅读:

程序员单枪匹马做的最复杂/重要的程序,是哪个?》、《高德纳谈计算机程序设计艺术(上)》和《高德纳谈计算机程序设计艺术(下)

3. Ken Thompson

主要成就:Unix 缔造者

上榜理由:和 Dennis Ritchie 一起,共同缔造了Unix操作系统。他是 B 语言的发明人,以及 UTF-8 字符编码规范和 ed 文本编辑器的发明人。同时他还是 Go 编程语言的共同开发者之一。他和 Dennis Ritchie 一起获得了1983年的ACM图灵奖,1994年的IEEE计算机先锋奖和1998年的美国国家技术奖章。1997年他正式成为美国计算机历史博物馆名人堂成员

网友评价:

  • Pete Prokopowice:…他很可能是有史以来最成就卓著的程序员。(他的成就包括:)Unix内核,Unix工具,计算机国际象棋世界冠军Belle、Plan 9、Go语言.”
  • Jan Jannink:Ken的贡献远远超过了我们的想象,他的工作是业界的根基,其作用之大,持续时间之久,时至今日还在影响着我们的生活。

4. Richard Stallman

主要成就:Emacs 和 GCC 的缔造者

上榜理由:他创立了GNU项目,并为其开发了很多核心工具,例如Emacs、GCC、GDB 等等,还有 GNU Make。他还创立了自由软件基金会。他是1990年ACM Grace Murray Hopper奖获得者,1998年EFF先锋奖获得者。
网友评价:

  • Srinivasan Krishnan:…在当年Symbolic公司和LMI公司的那场Lisp Machine纠纷中,他展示出了以一当百的编程实力
  • (黄小非补充:这是一个非常传奇的故事,当年Richard Stallman在麻省理工(MIT)的人工智能实验室工作,该实验室的重要成果之一就是Lisp Machine。后来,实验室中的两拨科学家分别下海创业,创立了Lisp Machine Inc. ,也即是LMI,以及Symbolic公司。这两家公司的主要业务都是基于Lisp Machine的,而且和MIT也签了约,说好了MIT授权他们使用Lisp Machine,而两家对Lisp Machine做的改进也授权MIT使用,互惠互利。可是,没想到后来Symbolic公司想另起炉灶,于是仿照Lisp Machine的功能自己重新研发了一个仿制品,日后再开发的软件产品就是基于这个仿制品系统而不是MIT的Lisp Machine了,这样也就不用与MIT和LMI再相互交换成果了。这个举动让Richard Stallman非常愤怒,他决定收拾一下Symbolic这个被金钱冲昏头脑的公司,于是他就盯着Symbolic的新产品推出情况,只要Symbolic一发布新产品,他就马上在动手在Lisp Machine上做一个功能一样的送给MIT和LMI使用。一般Sybmolic推出的新软件,Richard Stallman自己一个人花个几天就能做出一个功能一模一样的。他的这种方式和工作效率曾经让Symbolic公司一度非常恼火。)
  • Dan Dunay:“他对编程的理解和他思想的光辉是如此强大,以致于形成了一套完整的计算机编程亚文化体系”
  • Marko Poutiainen:他是个伟大的,虽然我并不是对他百分百的认同,但是必定是历史上最重要的程序员之一,无论在他身前身后都是如此。
  • John Burnette:你想想假设Linux写出来的时候,GNU项目还不存在的话,会是什么情况?所以Stallman才是老大,耶~

5. Anders Hejlsberg

主要贡献:Turbo Pascal 的缔造者、C# 之父

上榜理由:他是Turbo Pascal的真正创始人。Turbo Pascl可谓是历史上最受欢迎的编译器之一,也是首个集成开发环境(IDE)。随后,他主导开发了Turbo Pascal的继任者——Delphi。他还是 C# 的首席构架师。2001年,他获得了Dr. Dobb’s杂志颁发的“杰出编程奖”

网友评价:

  • Steve Wood:他当年用汇编语言代码写了Pascal编译器,同时支持当时PC机上的两种主流操作系统(DOS和CP/M)。他的编译器把编译,链接程序的时间从分钟级别提速到了秒级别。
  • Stefan Kiryazov:我崇拜这个家伙,在我成长为职业软件工程的三个关键阶段,每个阶段最喜爱的工具都出自他的创造。

6. Doug Cutting

主要成就:Lucene 的缔造者

上榜理由:他开发了Lucene搜索引擎,Nutch网络爬虫引擎以及Hadoop分布式大数据处理工具。他是开源项目的拥趸(Lucene,Nutch和Hadoop都是开源的)。他还担任过Apache软件基金会的总监。

网友评价:

  • Rajesh Rao:…他就是写出杰出搜索引擎框架(Lucene/Solr)的那个人。他为世界打开了大数据之门(Hadoop)。
  • Amit Nithianandan:他在Lucene和Hadoop上的创新性工作(当然也包括其他项目),为世界创造了巨大的财富和众多就业机会…

推荐阅读:

Lucene五分钟教程

7. Jeff Dean

主要成就:

Goolge搜索索引技术的幕后大脑。

上榜理由:他参与设计和实现了Google许多大型分布式系统,包括网络爬虫,索引和搜索,AdSense, MapReduce, BigTable和Spanner。他被选获得2009年的美国国家工程学院奖。2012年获得ACM SIGOPS Mark Weiser奖ACM-InfoSys基础奖(计算机科学类)

网友评价:

  • Natu Lauchande:…他在数据挖掘方面取得了重大突破(GFS, MapReduce, BigTable)
  • Erik Goldman: …他设计,实现并部署了MapReduce和BigTable,还有无数其他的东西。
  • 伯小乐补充:「Jeff Dean 是直接写二进制机器代码的,他写源代码,是为了给其他开发人员作参考」。这句是出自《趣文:谷歌大牛Jeff Dean的那些“惊人真相”》的趣评。

推荐阅读:

谷歌大牛Jeff Dean是如何成为互联网战神的》和《趣文:谷歌大牛Jeff Dean的那些“惊人真相”

8. Sanjay Ghemawat

主要成就:举足轻重的Google架构师

上榜理由:他参与设计和实现了Google的大型分布式系统,包括MapReduce、Bigtable、Spanner和 Google文件系统。他还编写过Unix的ical日历系统。他于2009年获选进入的美国国家工程院。2012年赢得了ACM计算机科学信息系统基础类奖

网友评价:

9. Linus Torvalds

主要成就:Linux 之父

上榜理由:他创建了Linux 内核 以及 Git(一个开源的版本控制系统)。他是众多奖项和荣誉的获得者,包括:1998年EFF先锋奖英国计算机社区Lovelace奖章(2000年),千禧技术奖金(2012年)以及IEEE计算机社区计算机先锋奖(2014年)。他还于2008年被提名计算机历史博物馆名人堂成员,以及2012年Internet名人堂成员

网友评价:

  • Erich Ficker:「为了说明他的成就,让我们来做个对比吧。他花了几年的时间就完成了Linux内核的编写,与此同时GNU Hurd项目(一个GNU自己开发的内核项目)已经发展了25年了,却还只停留在预发布的demo阶段。」
  • Dan Allen:「Torvald是程序员中的程序员。」
  • Alok Tripathy:「他太他*的优秀了!」

推荐阅读:

Linus:23年前我开发Linux仅仅是因为好玩》和《Git 10 周年访谈:Linus 讲述背后故事》,更多请点击这里

10. John Carmack | 约翰·卡马克

主要荣誉:Doom 之父

主要成就:他是id Software的联合创始人,他开发出了极具影响力的FPS游戏:《德军总部3D》、《毁灭战士》和《雷神之锤》。他是计算机图形技术领域的先锋,在图形学上多次取得重要突破:包括自适应性图块刷新(adaptive tile refresh),二叉空间分割(BSP),以及表面缓存技术等等。他在2001年入选交互式艺术与科学学院名人堂,并在2007年和2008年两次获得艾美奖工程和技术类奖项,并于2010年获得游戏开发者选择终身成就奖。

网友评价:

  • Alex Dolinsky:”他在20岁之前就写出了第一个渲染引擎。这家伙是个天才。我希望我有他1/4的功力就好了。“
  • dniblock:「《德军总部3D》、《毁灭战士》和《雷神之锤》在那个时代都是革命级的游戏,并且影响了一代游戏设计师。」
  • Greg Naugthon:”给他一个周末,他能做出任何东西。“
  • Chris Morris:”他就是编程界的莫扎特”

推荐阅读:

大牛约翰·卡马克语录》和《卡马克:用C++进行函数式编程

11. Fabrice Bellard

主要成就:QEMU 缔造者

上榜理由:他是许多著名开源软件程序的作者,包括QEMU——一个硬件模拟和虚拟化平台,FFmpeg——用于处理多媒体数据,以及一个Tiny C编译器,还有LZEXE,一个可执行程序压缩器。他是2000年和2001年混乱C代码竞赛的冠军,以及2011年Google-O’Reilly开源奖获得者。他还曾经是计算圆周率位数最多的世界纪录保持者

网友评价:

  • raphinou:“我觉得Fabrice Bellard的工作实在是太卓著和令人印象深刻了”
  • Pavan Yara:“Fabrice Bellard是全世界最高产的程序员…”
  • Micheal Valladolid:”他是软件工程界的尼古拉特斯拉“
  • Michael Biggins:”他是20世纪80年代以来产生的一位持续高产的程序员“

推荐阅读:

天才程序员 Fabrice Bellard

12. Jon Skeet

主要成就:StackOverflow 上的传奇贡献者

上榜理由:他是Google工程师,《C# in Depth》的作者。他保持者StackOverflow有史以来的最高声望,他平均每个月在StackOverflow上回答390个问题。

网友评价:

  • Steven A. Lowe:”Jon Skeet根本不需要调试器,他只要一直瞪着代码,然后代码就会自己出来坦白哪里出错了。“
  • Dan Dyer:”Jon Skeet的代码如果无法通过编译,那编译器就该出来道歉了。“
  • 匿名:”Jon Skeet的代码不需要遵守任何代码规范,因为他的代码本身就是规范。“
  • 伯小乐补充:上面这些评价,和《趣文:谷歌大牛Jeff Dean的那些“惊人真相”》这篇文章的趣评一个风格呀。

13. Adam D’Angelo

主要成就:Quora 联合创始人

上榜理由:他是Facebook的工程师,为Facebook构建了News Feeds 的最初基础设施。后来他成为了Facebook的CTO以及工程副总裁,接着他从Facebook离职联合创立了Quora。2001年,他以高中生的身份成为了美国奥利匹克信息竞赛排名第八的选手。在2004年的ACM国际大学生编程竞赛中,他是加州理工大学银牌优胜队的成员之一。他还在2005年Topcoder大学生挑战赛中闯入了算法编程竞赛的最终决赛轮。

网友评价:

  • 匿名:”他是一个‘全能’程序员”
  • Mark Zuckerberg:“他是我说的六个人之一。”
  • (黄小非补充:在创立Facebook之初,Mark Zuckerberg认为世界上只有6个人能够理解他创立Facebook的思想,当时他就盯上了在加州理工上学的Adam D’Angelo,认为他是6个人之一。)

14. Petr Mitrechev

主要荣誉:全世界最有竞赛能力的程序员

上榜理由:国际奥林匹克信息竞赛两次金牌得主(2000,2002)。2006年,他赢得了Google代码挑战赛TopCode算法公开赛冠军。另外,他还是两次Facebook Hacker Cup的得主(2011,2013)。在这篇文章发布的时候,他是TopCoder上算法总排名第二的参赛者(id叫Petr)并且在Codeforces的总排名也是第二
网友评价:

  • Kavish Dwivedi:「他就是竞赛型程序员的偶像,即使是在我们印度…」

15. Gennady Korotkevich

主要成就:编程竞赛的奇才

上榜理由:他是国际奥林匹克信息竞赛创办以来最年轻的参赛者(11岁)以及6次金牌获得者(2007-2012)。2013年ACM国际大学生编程竞赛优胜队的成员之一,2014年Facebook Hacker Cup的赢得者。在本文编写是,他是Codeforces排名第一的选手(id:Tourist)以及Topcode算法竞赛者中的第一名

网友评价:

15 位健在的牛叉程序员,你知道哪几位?,首发于博客 - 伯乐在线

31 Dec 01:09

将Hadoop的计算和存储分开能有效的提升性能

by 谢丽

2015年,将hadoop的计算和存储分开成为一个重要的Hadoop主题。大数据解决方案提供商BlueData今年发表过多篇关于这个主题的文章。来自Gartner的Merv Adrian年初也在Twitter上表示,该主题已经成为业内的一个主要议题。近日,BlueData副总裁Anant Chintamaneni回顾了他与EMC大数据解决方案首席技术官Chris Harrold就此议题举办的网络研讨会的内容。

从众心理导致人们将雅虎、Facebook或LinkedIn等早期大数据采用者的大数据实现方式视为实现大数据的唯一方式。大数据生态系统使得Hadoop成为下述内容的代名词:

  • 一大堆装有Hadoop的专用物理服务器;
  • Hadoop的计算和存储位于相同的硬件机器上;
  • Hadoop需要使用直连式存储(DAS)

Anant认为,现在该废弃这些原则了。他给出了一种更好的实现大数据的方式,如下图所示:

新方法的指导思想主要有以下几项内容:

  • Hadoop可以运行在容器或虚拟机上,即可以使用虚拟机或容器作为Hadoop节点。这种软件定义的基础设施可以提供干净的环境,保证部署的可预见性,而且交付速度更快,成本更低。在研讨会上,Chris曾着重说明了Adobe的虚拟化Hadoop部署。借助虚拟化,他们可以快速增加Hadoop的工作节点。另外,所有Hadoop供应商提供的“快速入门”选项都是在虚拟机或容器上运行Hadoop。Netflix已经基于虚拟化Hadoop集群构建出了出色的服务。
  • “数据本地化(data locality)”的概念已过时。数据本地化妨碍了企业采用Hadoop,因为将TB级的数据复制到物理服务器,然后在每次有服务器宕机的时候进行数据平衡/再平衡,操作非常复杂,成本非常高昂。集群规模越大,情况越糟。像雅虎这样的互联网巨头之所以会那样做,是受以前的网络带宽所限。而现在,10Gbps的网络也已很常见。将Hadoop的计算和存储分开还可以简化操作,用户可以分别扩展和管理计算和存储系统。另外,还有一个事实,就是在许多常见的Hadoop场景中,即使计算和存储在一起,Hadoop任务也无法受益于数据本地化。
  • HDFS并不需要本地磁盘,即Hadoop不需要本地直连式存储(DAS)。HDFS更多的是一种分布式文件系统协议,在本地磁盘上运行HDFS只是其中的一种实现方式。现如今,许多公司都拥有TB级的数据,且数据来源多样(音频、视频、文本等)。这些数据存储在共享的存储系统中,如EMC Isilon。BlueData和EMC Isilon提供了HDFS接口,允许将共享存储中的数据提供给Hadoop计算过程,而不需要复制数据。

Anant用BlueData一个客户的测试数据说明了新方法所带来的性能上的提升。图一是本地虚拟化Hadoop集群与物理Hadoop集群的对比:

(图一)

可以看出,虚拟化Hadoop集群的性能比得上或超过了物理Hadoop集群的性能。图二比较了使用共享存储和DAS的虚拟化Hadoop集群:

(图二)

可以看出,企业级NFS的性能要高于基于DAS的HDFS系统。

最后,Anant将网络研讨会的共识总结为以下几点:

  • 大数据是一个旅程:基础设施要经得起未来的挑战
  • 计算和存储分开可以为所有的大数据涉众提供更大的灵活性
  • 不要根据“数据本地化”做大数据基础设施的决策

Anant期待更多的大数据部署使用共享存储,更多的部署使用容器和虚拟机,更多的企业将Hadoop的计算和存储分开。


感谢杜小芳对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

30 Dec 00:48

为什么你的项目总是延期?

by 张龙

公司有个项目需要你来完成,老板让你给出个完成时间。当给出了项目完成的时间线后,你的老板会可能会将其分解为若干步骤,就像你之前所做的那样,然后分析每一步的完成时间,最后将这些时间加起来作为整个项目的时间线。不过,这样做就能确保项目按时交付么?SketchDeck团队对此给出了自己的答案

虽然这是估算多步骤项目时间线最常见的方式,但如果考虑到项目中相互依赖的过程,你会发现这么做简直就是一场梦魇。这也佐证了为何有如此之多的项目没有在截止日期前完成,因为这些项目的截止日期根本就是不切实际的。

在SketchDeck,团队通过其按需服务交付了70,000小时工作量的项目。一开始,他们发现设定过于简单的时间线(仅仅将项目中每一步的平均完成时间加起来)会低估项目的总完成时间。实际上,设定基于平均完成时间的时间线会将项目的实际完成时间低估67%左右。对统计数字的错误理解是导致很多项目延期的重要原因。

我们从70,000+小时的设计项目中学到了什么

设计项目通常是个多步骤过程。项目(比如说设计Logo、展示、网站等等)是通过一个个步骤来完成的:设计师一开始会做个小样,然后设计一个初稿,最后才是终稿。设计师与客户会对设计的每一步进行反复的沟通与讨论,直到客户对当前设计完全满意了才会进入到下一步。有时,这需要花费很长时间。客户可能需要很长时间(从几天到几个月不等)才会同意一个步骤。你的公司的流程可能就像是这样。

不过,与大多数公司不同的是,我们会精确度量每一步的平均完成时间(“样本”、“草稿”、“最终校正样张”)。这样,我们就可以将每一个这样的步骤的平均完成时间加起来得到项目总的时间线。

不过在实际操作过程中我们发现,自己还是低估了项目的持续时间。为了说明这一点,我们分析了成千上万的客户/设计师交互流程。对于每个项目来说,我们可以计算出这个看似合理的“基于中位数”的估算方法所预测的完成时间。然后再来看看项目的实际完成时间是多少。

对于多步骤项目来说,这种方法将项目从开始到结束的时间线平均低估了67个小时。如果看一下具有3个或更多步骤的项目,你会发现这个数字会增加到81个小时。有67%的项目都比基于中位数的估算时间要晚。

如果通过将项目中所有步骤的平均完成时间累加起来来估算项目的时间线,那么拥有2步或更多步骤的项目的平均估算时间是91小时左右,而多步骤的SketchDeck项目的平均实际完成时间则是155小时。

原因

人们一直都在低估时间线。研究表明,学生群体会有意且系统化地低估自己完成任务与学术项目的时间、人们也常常会比自己期望的时间晚一周来邮寄自己的纳税申报表。大量的人类心理学怪癖都对这个现象产生过影响。著名的心理学家Daniel Kahneman称这种现象为“计划谬论”。Kahneman认为计划者会忽略掉类似任务所需要的时间;相反,他们会给出任务走向的理想化进程。Kahneman观察到,了解个案的人们很少会尝试探求这个个案到底属于哪一个统计分类。

平均的问题

对于项目的每一个步骤来说,实际完成时间超过或是低于平均完成时间的几率都是50%。如果项目有两个步骤,那么这两个步骤的完成时间都超过或是低于平均完成时间的几率就是25%。如果项目有3个步骤,那么这个几率就是12.5%,以此类推。如果项目有6个步骤,那么其中一些步骤超过平均时间的几率就会超过98%。

精确估算项目时间线的解决之道

为了探索并解决这个问题,我们提供了一系列互为补充的解决方案。这些方案可用于任何类型的项目管理,从图形化设计到火箭船的构建。

根据每个步骤的分布来计算项目时间线

总体的项目完成时间实际上是个分布,这是将项目中每个步骤的完成时间分布组合起来而得到的。一旦掌握了总体项目完成时间的分布,你就会知道中位数时间是什么,以及它为何会变长。

改进所有步骤的完成时间分布

现在,我们知道了项目总体的完成时间与每个步骤的完成时间分布息息相关。你可以重点关注两件事:让每一个步骤更快地完成(即降低中位数完成时间),以及让每一个步骤更加可靠。我们通过一系列手段改进了这两点:

  • 流线化内部流程(比如说,谁提出来谁来做,而不是等待别人完成)
  • 更短的内部截止日期,从而为客户提出的截止日期预留出足够多的缓冲期
  • 根据时区来调度任务,减少协作者之间的延迟
  • 及时通知客户,加快其响应速度

当项目延期时,有选择地改进步骤的完成时间分布

既然总体的项目时间线是由每个步骤构成的,因此改进其中一些步骤的完成时间分布会对项目时间线产生积极影响。归功于我们对项目数据所做的细粒度监控,我们能在延期时立刻做出反应,从而让项目管理团队能给予一些支援。我们发现在专门的项目管理时间上多花一小时能够极大地减少中位数完成时间。

希望你的截止日期能够更加精确

不切实际的截止日期对任何人都是无益的,半斤八两的管理手段是非常危险的。如果有数据,那就请好好利用。对于时间线来说,2+2并不一定等于4。也就是说,一个步骤要花费2小时,另一个步骤也要花费2小时,但两个步骤加一起可能根本就不是4小时。如果你认为就是4小时,那结果就会陷入到“过于乐观”的泥潭中,这与完全没有数据作为支撑的估算没什么两样。

29 Dec 07:42

20个命令行工具监控 Linux 系统性能

by cout_love_endl

对于每个系统管理员或网络管理员来说,每天要监控和调试 Linux 系统性能问题都是非常困难的工作。我已经有5年 Linux 管理员的工作经历,知道如何监控系统使其保持正常运行。为此,我们编写了对于 Linux/Unix 系统管理员非常有用的并且最常用的20个命令行系统监视工具。这些命令可以在所有版本的 Linux 下使用去监控和查找系统性能的实际原因。这些监控命令足够你选择适合你的监控场景。

1. top —Linux系统进程监控

top 命令是性能监控程序,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具。Top 命令可以定期显示所有正在运行和实际运行并且更新到列表中,它显示出 CPU 的使用、内存的使用、交换内存、缓存大小、缓冲区大小、过程控制、用户和更多命令。它也会显示内存和 CPU 使用率过高的正在运行的进程。当我们对 Linux 系统需要去监控和采取正确的行动时,top 命令对于系统管理员是非常有用的。让我们看下 top 命令的实际操作。

# top

1

2. vmstat — 虚拟内存统计

vmstat 命令是用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 模块、中断、CPU 活跃状态等更多信息。在默认的情况下,Linux 系统是没有 vmstat 这个命令的,如果你要使用它,必须安装一个包名叫 sysstat 的程序包。命令格式常用用法如下:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 810420  97380  70628    0    0   115     4   89   79  1  6 90  3  0

3. lsof — 打开文件列表

lsof 命令对于很多 Linux/Unix 系统都可以使用,主要以列表的形式显示打开的文件和进程。

打开的文件主要包括磁盘文件、网络套接字、管道、设备和进程。使用这个命令的主要原因是一个一个盘不能卸载并且显示文件正在使用或者打开的错误信息。这个命令很容易看出哪些文件正在使用。这个命令最常用的格式:

# lsof

COMMAND     PID      USER   FD      TYPE     DEVICE     SIZE       NODE NAME
init          1      root  cwd       DIR      104,2     4096          2 /
init          1      root  rtd       DIR      104,2     4096          2 /
init          1      root  txt       REG      104,2    38652   17710339 /sbin/init
init          1      root  mem       REG      104,2   129900     196453 /lib/ld-2.5.so
init          1      root  mem       REG      104,2  1693812     196454 /lib/libc-2.5.so
init          1      root  mem       REG      104,2    20668     196479 /lib/libdl-2.5.so
init          1      root  mem       REG      104,2   245376     196419 /lib/libsepol.so.1
init          1      root  mem       REG      104,2    93508     196431 /lib/libselinux.so.1
init          1      root   10u     FIFO       0,17                 953 /dev/initctl

4. tcpdump — 网络数据包分析器

tcpdump 是一种使用最广泛的命令行网络数据包分析器或数据包嗅探程序,主要用于捕获和过滤 TCP/IP 包收到或者转移在一个网络的特定借口信息。它也提供了一个选项参数去保存将捕获的包在一个文件中用于以后分析使用,tcpdump 几乎在所有的 Linux 版本中都是可用的。

# tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

5. netstat — 网络统计

netstat 命令是一个监控网络数据包传入和传出的统计界面的命令行工具。它对于许多系统管理员去监控网络性能和解决网络相关问题是一个非常有用的工具。

# tcpdump -i eth0

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648
22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648
22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347

6. htop — 进程监控

htop 是一个更加先进的交互式的实时监控工具。htop 与 top 命令非常相似,但是他有一些非常丰富的功能,如用户友好界面管理进程、快捷键、横向和纵向进程等更多的。htop 是一个第三方工具并不包括在 Linux 系统中,你需要使用包管理工具进行安装。

# htop

6

7. iotop — 监控 Linux 磁盘 I/O

iotop 也是和 top 和 htop 命令相似,但是它会有一个报告功能去监控和显示实时的磁盘 I/O 输入和输出和程序进程。这个工具对于查找精确的高的磁盘读/写过程是非常有用的。

# iotop

8. iostat — 输入/输出统计

iostat 是收集和展示系统输入和输出存储设备统计的简单工具。这个工具通常用于查找存储设备性能问题,包括设备、本地磁盘、例如 NFS 远程磁盘。

# iostat

Linux 2.6.18-238.9.1.el5 (tecmint.com)         09/13/2012

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.60    3.65    1.04    4.29    0.00   88.42

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
cciss/c0d0       17.79       545.80       256.52  855159769  401914750
cciss/c0d0p1      0.00         0.00         0.00       5459       3518
cciss/c0d0p2     16.45       533.97       245.18  836631746  384153384
cciss/c0d0p3      0.63         5.58         3.97    8737650    6215544
cciss/c0d0p4      0.00         0.00         0.00          8          0
cciss/c0d0p5      0.63         3.79         5.03    5936778    7882528
cciss/c0d0p6      0.08         2.46         2.34    3847771    3659776

9. IPTraf —实时IP局域网监控

IPTraf 是一个基于开源的 Linux 系统实时网络(IP 网络)监测的工具。它能收集到各种各样的信息,如通过网络对 IP 流量监测,包括 TCP 标志信息、ICMP 详细细节、TCP/UDP 流量故障、TCP 连接的数据包和拜恩计数。并且它还收集 TCP,UDP,ICMP,IP,非 IP,IP 校验错误,界面活性等一般信息和详细信息的接口统计数据。

9

10. Psacct 或者 Acct — 监视用户活动

Psacct 或者 Acct 是用于监测每个用户对系统的活跃状态的一个非常有用的工具。在后台有两个守护进程在运行,一个是密切关注系统上每个用户的整体活动,另一个进程关注有哪些资源被它们消耗。

   这个工具对于系统管理员是非常有用的去跟踪每个用户的活动,可以知道用户正在做什么,发出了什么样的命令,占用了多少资源,多长时间活跃在系统上。

11. Monit — 程序和服务监测

这是一个免费的开源的基于 web 程序的自动监控和管理系统进程、程序、文件、目录、权限、校验文件系统。它监控的服务包括 Apache、MYSQL、Mail、FTP、Nginx 等等。系统状态是可以从命令行或者自己的网络接口来查看。

11

12. NetHogs — 监视每个进程的网络带宽

NetHogs 是一个开源的漂亮的小程序(类似于 Linux 上面的 top 命令),在您的系统上保持每个进程的网络活动状态。它也保持了一个程序或者应用实时的网络流量带宽使用情况。

12

13. iftop — 网络带宽监控

iftop 是另一个基于终端的开源的系统监测工具,主要功能是通过你自己系统上的网络接口显示一个经常更新的网络带宽利用率的列表(即源主机和目的主机)。iftop 监控的是网络的使用情况,而 top 监控的是 CPU 的使用情况。iftop 监视一个选定的接口并且显示两台主机之间当前宽带的使用情况。

13

14. Monitorix — 系统和网络监控

Monitorix 是一个尽可能多的在 Linux/Unix 上一个轻量级监控工具,主要设计是监控正在运行的系统和网络资源。它有一个内置的 HTTP web 服务去定期收集系统和网络信息并显示成图片。它可以监视系统的平均负载使用、内存的分配、磁盘驱动器、系统服务、网络端口、邮件统计(Sendmail、Postfix、Dovecot 等等)、MYSQL 数据库等等更多的服务。它的主要目的是监控整个系统的性能,并且有助于监测故障、瓶颈、异常活动等状况。

14

15. Arpwatch — 以太网活动监控器

Arpwatch是一种用来监视 Linux 网络的以太网的网络流量的地址解析(网络地址转换)的一个程序。它一直随着网络时间戳的变化监视以太网流量和产生日志的 IP 和 MAC 地址对。当一个 IP 地址或 MAC 地址对发生变化的时候,它会发送电子邮件通知管理员。

并且它在检测 ARP 攻击是非常有用的。

16. Suricata — 网络安全监控

Suricata 是一个高性能的开源的网络安全与入侵检测与预防 Linux、FreeBSD、Windows 等操作系统的监控工具。它是一个非营利基金 OISF(Open Information Security Foundation)拥有的。

17. VnStat PHP — 监测网络带宽

VnStat PHP 是一个 web 前端应用最流行的社交工具叫“vnstat”。 VnStat PHP 使用了很好的图形模式监控网络流量的使用情况。它显示了每时、每天、每月的总结报告中的网络流量使用情况。

18. Nagios — 网络/服务器监控

Nagios 是一个领先的开源的强大的监控系统,网络/系统管理员在他们影响主要业务流程之前识别和解决服务器相关的问题。Nagios 可以监控远程 Linux、Windows、开关、单窗口的路由器和打印机。它能显示你的网络和服务器关键的告警,有利于在错误反生之前帮助你解决问题。

19. Nmon — 监控Linux系统性能

Nmon(即奈吉尔性能监视器)工具用来监视 Linux 系统的所有资源包括:CPU、内存、磁盘使用率、网络上的进程、NFS、内核等等。这个工具有两个模式:即在线模式和捕捉模式。在线模式适用于实时监控,捕捉模式用于存储输出为 CSV 格式后的处理。

   19

20. Collectl — 一体化性能检测工具

Collectl 是另一个功能强大的基于命令行的监控工具,它可用于收集有关系统资源的信息,包括 CPU 使用率、内存、网络、节点、进程、NFS、TCP 套接等等。

20

我们想知道你使用什么样的监控程序来监控你的服务器性能?如果我们错过你想要的任何工具,请通过评论告知我们,并且不要忘记分享他。

20个命令行工具监控 Linux 系统性能,首发于博客 - 伯乐在线

25 Dec 06:35

如何优雅地使用 Sublime Text

by aoi

Sublime Text 是一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受。

相比于难于上手的Vim,浮肿沉重的Eclipse,VS,即便体积轻巧迅速启动的Editplus、Notepad++,在SublimeText面前大略显失色,无疑这款性感无比的编辑器是编程和写作最佳的选择,没有之一。

目录:

Sublime Text 2和3的对比

相比于2,Sublime Text 3就秒启动一项,就压倒性地胜利了。因此在之后的叙述中都以Sublime Text 3为主角。并且3一直在不断的完善更新,具体的差异可参看Sublime Blog。简单的说:

  • ST3支持在项目目录里面寻找变量
  • 提供了对标签页更好地支持(更多的命令和快捷键)
  • 加快了程序运行的速度
  • 更新了API,使用Python3.3

强烈推荐朋友们使用3! 唯快不破,不解释。

Sublime Text 3安装插件

Sublime Text的强大就是她拥有强大的课可扩展性。您可根据自己的需要安装不同的插件;这使得她变的无比强大的同时又不失轻便。

  • 插件安装方式一:直接安装:

    安装Sublime text 3插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages)。

  • 插件安装方式二:使用Package Control组件安装:

    按Ctrl+`调出console(注:安装有QQ输入法的这个快捷键会有冲突的,输入法属性设置-输入法管理-取消热键切换至QQ拼音)粘贴以下代码到底部命令行并回车:

    import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

重启Sublime Text 3。如果在Perferences->package settings中看到package control这一项,则安装成功。按下Ctrl+Shift+P调出命令面板输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。

PS:国内使用SublimeText3,经常可能遇到无法安装可用插件问题,可remove掉Package Control重新安装下;如遇到连Package Control也无法安装,则可以在别处拷贝一份关于Package Control的文件-(Package Control.sublime-package)存放于Installed Packages目录之下即可。

Sublime Text 3插件推荐

无插件,不神器!根据自己的需要定制属于自己的强大插件集;下面是一些常用的推荐。
Sublime Text3 插件:增强篇
20个强大的SublimeText插件

作为在移动端旧游之后,又Web端新游的自己,墙裂推荐以下这么几款插件:

MarkDown Editing
SublimeText不仅仅是能够查看和编辑 Markdown 文件,但它会视它们为格式很糟糕的纯文本。这个插件通过适当的颜色高亮和其它功能来更好地完成这些任务。

SideBarFolders
打开的文件夹都太多了? 来用这个来管理文件夹,世界原来也可以这么美好。
SideBarFolders                                                                   SideBarFolders

Sublime Terminal
这个插件可以让你在Sublime中直接使用终端打开你的项目文件夹,并支持使用快捷键。

ColorPicker
通常,如果你想使用一个颜色选择器则可能打开 Photoshop 或 GIMP。而在 Sublime Text 中,你可以使用内置的颜色选择器。安装完成后,只要按下Ctrl / Cmd + Shift + C 快捷键。

SublimeREPL
这可能是对程序员很有用的插件。SublimeREPL 允许你在 Sublime Text 中运行各种语言(NodeJS , Python,Ruby, Scala 和 Haskell 等等)。

Ctags插件
有童鞋抱怨Sublime Text不能支持函数的跳转(比如像Eclipse那样,按住Control点击该方法或者对象,即可跳转到定义的地方; Alt+←即可回到原处)。其实Sublime Text也可以借助插件实现之(当然,有些情况下:Can not find defination)毕竟这个也是借助正则来匹配完成的。因此这个也就要求代码很规范。这个插件相对来讲会有些麻烦,具体的可以参见:Sublime Text ctags 的配置.

SublimeLinter插件
SublimeLinter 是前端编码利器——Sublime Text 的一款插件,用于高亮提示用户编写的代码中存在的不规范和错误的写法,支持 JavaScript、CSS、HTML、Java、PHP、Python、Ruby 等十多种开发语言。这篇文章介绍如何在 Windows 中配置 SublimeLinter 进行 JS & CSS 校验。

比如写例如像lua这样的弱语言脚本代码,有这个可以规避掉很多不该有的低级错误吧?当然这也需要你SublimeLinter安装完毕之后再安装一个SublimeLinter-lua即可。具体的使用可以参见:借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码

SideBarEnhancements插件
SideBarEnhancements是一款很实用的右键菜单增强插件;在安装该插件前,在Sublime Text左侧FOLDERS栏中点击右键,只有寥寥几个简单的功能;安装了就相当于给其丰了大胸一般。

更强大的是,该插件还能让我们自定义快捷键呼出某个浏览器以预览页面!这样就不用到项目目录下寻找和拖动到特定浏览器中预览了。
安装此插件后,点击菜单栏的preferences->package setting->side bar->Key Building-User,键入以下代码:

[   
    { "keys": ["ctrl+shift+c"], "command": "copy_path" },
    //chrome
    { "keys": ["f2"], "command": "side_bar_files_open_with",
            "args": {
                "paths": [],
                "application": "C:\\Users\\jeffj\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe",
                "extensions":".*"
            }
     }
]

这里设置按Ctrl+Shift+C复制文件路径,按F2即可在Chrome浏览器预览效果(如果需要的话,也可以根据自己的需要为Firefox,Safari,IE,Opera等加上),当然你也可以自己定义喜欢的快捷键,最后注意代码中的浏览器路径要以自己电脑里的文件路径为准。

HTML-CSS-JS Prettify
一款集成了格式化(美化)html、css、js三种文件类型的插件,即便html,js写在PHP文件之内。插件依赖于nodejs,因此需要事先安装nodejs,然后才可以正常运行。插件安装完成后,快捷键ctrl+shift+H完成当前文件的美化操作。插件对html、css文件的美化不是非常满意,但还可以,后面将说明如何修改css美化脚本。本人用起来超级爽的,鉴于篇幅,就不赘述,可以参见这篇介绍。

CSScomb CSS属性排序:
有时候看看自己写的CSS文件,会不会觉得属性很乱查找不易维护难?CSScomb可以按照一定的CSS属性排序规则,将杂乱无章的CSS属性进行重新排序。选中要排序的CSS代码,按Ctrl+Shift+C,即可对CSS属性重新排序了,代码从此简洁有序易维护,如果不款选代码则插件将排序文件中所有的CSS属性。当然,可以自己自定义CSS属性排序规则,打开插件目录里的CSScomb.sublime-settings文件,更改里面的CSS属性顺序就行了。因为这个插件使用PHP写的,要使他工作需要在环境变量中添加PHP的路径,具体请看github上的说明。

SublimeTmpl 快速生成文件模板
一直都很奇怪为什么sublime text 3没有新建文件模板的功能,像html头部的DTD声明每次都要复制粘贴。用SublimeTmpl这款插件终于可以解脱了,SublimeTmpl能新建html、css、javascript、php、python、ruby六种类型的文件模板,所有的文件模板都在插件目录的templates文件夹里,可以自定义编辑文件模板。

SublimeTmpl默认的快捷键:

ctrl+alt+h html
ctrl+alt+j javascript
ctrl+alt+c css
ctrl+alt+p php
ctrl+alt+r ruby
ctrl+alt+shift+p python

如果想要新建其他类型的文件模板的话,先自定义文件模板方在templates文件夹里,再分别打开Default (Windows).sublime-keymap、Default.sublime-commands、Main.sublime-menu、SublimeTmpl.sublime-settings这四个文件照着里面的格式自定义想要新建的类型,这里就详细介绍了,请各位自己折腾哈~

Javascript-API-Completions:
支持Javascript、JQuery、Twitter Bootstrap框架、HTML5标签属性提示的插件,是少数支持sublime text 3的后缀提示的插件,HTML5标签提示sublime text3自带,不过JQuery提示还是很有用处的,也可设置要提示的语言。
sublime-jq-pluginsublime-jq-plugin

SFTP:快速编辑远程服务器文件
在Win下用Xftp 和 WinScp,被这种需要切换点击or F5刷新的手动操作蛋疼到无语;故此一遇见这SFTP,顿觉这世界都美好了许多。当然Sublime下面也有些其他同步插件,比如FtpSnyc,但是配置起来的错误提示一点都不人性化,就毫不留情的舍弃了。Sublime下有SFTP,只要Ctrl+S即可同步本地到服务器,妥妥的爽歪歪有么有?如何配置,请参见在 Sublime Text中使用 SFTP 插件快速编辑远程服务器文件;如欲使用FtpSync可参见Sublime使用及FtpSync远程同步;大道至简,因简而悦;开心垒码,值得折腾。

WakaTime — 记录你的Code时间;
WakaTime可以做到精确地统计到你花在某个项目上的时间;WakaTime针对不同的IDE,拥有不同的插件,在Sublime上安装着插件,就能统计到我使用Sublime进行的所有项目的行为。可以高效管理和知晓自己code时间;并且,统计完善, 适合发朋友圈装逼(如果你喜欢的话)~

Waka的基本设计和rescuetime类似。每个人注册完将获取一个key,装一个客户端,把key输进去(登陆是同一个道理),然后它就把本地的所有行为带个key扔给服务器来统计,一段时间之后给你个报表。不过Waka做的真的很精准,精确到每一个文件用了多少秒,每一种语言用了多少时间。

安装和使用都很简单,请参见这里。另外一篇比较详细的文章时间都去哪了?用RescueTime和WakaTime来记录你的时间,对RescueTime和WakaTime有一个更为详细的叙述,可以一读。

剩下些许其他的可以按需安装的插件,比如:

  • ConvertToUTF8 支持 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的插件
  • Bracket Highlighter 用于匹配括号,引号和html标签。对于很长的代码很有用。安装好之后,不需要设置插件会自动生效
  • DocBlockr 可以自动生成PHPDoc风格的注释。它支持的语言有Javascript, PHP, ActionScript, CoffeeScript, Java, Objective C, C, C++
  • Emmet(Zen Coding)快速生成HTML代码段的插件,强大到无与伦比:可以超快速编写HTML/CSS/JS,当然这个插件还支持多种编译环境,如常见的:Eclipse/Aptana、Coda、Notepad++、Adobe Dreamweaver、TextMate等,web开发必备!!!。
  • jsFormat 格式化js代码,懂者自懂;强迫症Coder必备!默认快捷键Ctrl+Alt+F。
  • phpFormat 格式化php代码,懂者自懂;强迫症Coder必备!
  • CSS Compact Expand CSS属性展开收缩:写CSS的盆友,喜欢将其写多行还是一行(个人喜欢将其格式化为多行)?如果阅读别人的代码不符合自己的习惯,可以用CSS Compact Expand这个插件将CSS格式化一下,按 Ctrl+Alt+[ 收缩CSS代码为一行显示,按 Ctrl+Alt+] 展开CSS代码为多行显示;强迫症Coder必备!。
  • Autoprefixer插件:这是一款CSS3私有前缀自动补全插件;该插件使用CanIUse资料库(当然,SublimeText自然也有CanIUse这个插件咯),能精准判断哪些属性需要什么前缀,与CssComb插件一样,该插件也需要系统已安装Node.js环境;使用方法:在输入CSS3属性后(冒号前)按Tab键即可。
  • YUI Compressor:压缩JS和CSS文件,按F7键后,若压缩当前文件(demo.js),则压缩后的文件(demo.min.js)保存在该文件的同级目录,需要安装java的JDK。使用方法:YUI Compressor
  • ClickableURLs:可点击的URL
    使用小插件ClickableURLs可以让文件中的URL能够点击。
  • 终极王道:自己编写专用的Sublime Text插件。虽然说各个方面比如移动端,Web前段,服务器端,非Coder的Writer所需要的方便已经被集成在了不同的插件中。但譬如,需要快捷打开PC端的某个模拟器,便捷的进行某些校验,只要你想的到的基本都可以将其在插件内,以快捷键处理之。至于如何编写SublimeText插件,请参看这里编写自己的Sublime Text2 插件

定制属于自己的快捷键

  • 首先要会使用SublimeText内置的快捷键:
    比如 Commond Shift P 打开命令面板:例如打开Package Control安装各种插件;可以可以输入Set(Snytax)来改变使用的语言环境,瞬间切换等等。
  • 设置快捷键。在SublimeText里,打开Preferences -> Key Bindings – User,我设置的快捷键:
    [
        { "keys": ["ctrl+f9"], "command": "build" },
        { "keys": ["f10"], "command": "build", "args": {"variant": "Run"} },
        { "keys": ["ctrl+shift+x"], "command": "toggle_comment", "args": { "block": true } },
    ]

    具体可参见这边文章 Sublime Text3 快捷键汇总及设置快捷键配置环境变量

  • 定制属于自己的专属快捷键:
    比如就拿定制Sublime Text(2/3)编译lua 的快捷键来说:
    • 首先:下安装lua环境(MAC)
      curl -s https://raw.githubusercontent.com/rudix-mac/rpm/2014.10/rudix.py | sudo python - install rudix
      
      或者:curl -O https://raw.githubusercontent.com/rudix-mac/rpm/2014.10/rudix.py
      sudo python rudix.py install rud
    • 安装IED:SublimeText3;完毕后上面选择:Build System—New Build System 输入:
      {  
          "cmd": ["/usr/local/bin/lua", "$file"],  
          "file_regex": "^(...*?):([0-9]*):?([0-9]*)",  
          "selector": "source.lua"  
      }

      保存为Lua.sublime-build,然后Tools-Build System上就能选择lua来编译脚本了)
      PS:网上找到的大多数都是 “cmd”: [“lua”, “$file”]可能我是用rudix自动来安装lua的,需要改一下路径。

      新建一个xx.lua文件,随便写个语句,选择lua为build system,按一下command+b,就能跑出来了。 如下图所示:
      LuaShortCutSublimeText
      LuaShortCutSublimeText

      WindowS下面的定制请参看这里Sublime Text(2/3)编译lua

Sublime不可不知的实用技巧:

—-更新2015.05.21 15:50 ShenZhen@nanshan
对于这个依赖于插件的强大性感无比开源编辑器;优雅的适用之,就在于合理的使用需要的插件,走一条快准狠的键盘一刀流。这个当然可以自己用python来写,但是一般的需求基本上都已经有人完成,还是不浪费时间自己造轮子了。今儿就再赘述一些使用的经验,让使用她可以更加优雅。

(1) Ctrl+O(Command+O)可以实现头文件和源文件之间的快速切换
(2) 通过 View -> Side bar 可在左侧显示当前打开的文件列表

(3) ST3虽然不像notepad++可以在sidebar上显示函数列表,但是可通过Ctrl+R查看

(3) 通过 Preference -> Key binding user 可根据个人操作习惯自定义快捷键(包括ST3自带的和插件的)

(4) 双击可选中光标所在单词,三击可选中光标所在行(等同于Ctrl+L(Command+L));

(5) Ctrl+Shift+T可以打开之前关闭的tab页,这点同chrome是一样的

(6)Ctrl+R定位函数;Ctrl+G定位到行;

(7) 单个文件批量修改:纯相同的内容:选中需要修改的内容Alt+F3(Mac下默认的是Ctrl+Command+G) , 或者连续 Ctrl+D(Win) /连续 Command+D(Mac)之后重新写即可,使用Ctrl + U进行回退,使用Esc退出多重编辑。
不纯相同却有一定规律可循的内容:这个就需要借助SublimeText强大正则的支持了。可以使用Ctrl+H(Mac下是Alt+Command+F)调出:
SublimeTextSublimeText
正则表达式是非常强大的文本查找&替换工具,Sublime Text中使用Alt + R切换正则匹配模式的开启/关闭。Sublime Text的使用Boost里的Perl正则表达式风格。鉴于篇幅,加之本身就对这个不甚熟悉,这里就不再多啰嗦;以下是一些可以参考的文章:

(8) 有时我们需要对一片区域的所有行进行同时编辑,Ctrl+Shift+L可以将当前选中区域打散,然后进行同时编辑:
SublimeTextSublimeText

(9)有打散自然就有合并,Ctrl + J(mac下Command+J)可以把当前选中区域合并为一行:
SublimeTextSublimeText

(10)在Ctrl + P(Command+P)匹配到文件后,我们可以进行后续输入以跳转到更精确的位置:

  • @ 符号跳转:输入@symbol跳转到symbol符号所在的位置
  • # 关键字跳转:输入#keyword跳转到keyword所在的位置
  • : 行号跳转:输入:12跳转到文件的第12行。

(11)Ctrl + Enter(Mac~Command+Enter)在当前行下面新增一行然后跳至该行;Ctrl + Shift + Enter在当前行上面增加一行并跳至该行。

(12)Sublime Text的查找有不同的模式:Alt + C切换大小写敏感(Case-sensitive)模式,Alt + W切换整字匹配(Whole matching)模式,除此之外Sublime Text还支持在选中范围内搜索(Search in selection),这个功能没有对应的快捷键,但可以通过以下配置项自动开启。

“auto_find_in_selection”: true

这样之后在选中文本的状态下范围内搜索就会自动开启,配合这个功能,局部重命名(Local Renaming)变的非常方便:
SublimeTextSublimeText

(13)Windows下Ctrl + ←/→进行逐词移动,相应的,Ctrl + Shift + ←/→进行逐词选择。
SublimeTextSublimeText
而Mac下的Command+←/→是从一端移动到另一端;相应的,Command + Shift + ←/→是从一端选择到另一端。

(14) Windows下Ctrl + ↑/↓移动当前显示区域,Ctrl + Shift + ↑/↓移动当前行。
SublimeTextSublimeText
而Mac下的Command + ↑/↓是从当前行移动到头/尾;相应的,Command + Shift + ↑/↓是从当前行选择到头/尾;

(15)使用Ctrl + N在当前窗口创建一个新标签,Ctrl + W关闭当前标签,Ctrl + Shift + T恢复刚刚关闭的标签。

(16)编辑代码时我们经常会开多个窗口,所以分屏很重要。Windows下:Alt + Shift + 2进行左右分屏,Alt + Shift + 8进行上下分屏,Alt + Shift + 5进行上下左右分屏(即分为四屏)。

(17)Sublime Text基本的手动格式化操作包括:Ctrl + [向左缩进(等同于将一块选中Shift+Tab),Ctrl + ]向右缩进(等同于将一块选中后Tab键),注解: Ctr+[ 和 Ctr+[ 针对一块连续内容使用,无需选中;此外Ctrl + Shift + V可以以当前缩进粘贴代码(非常实用)。

(18) Ctrl+Shift+V(好吧,尝试了下Windows下的这个,目测不行,看来须得安装下Clipboard-history插件~(粘贴板历史记录)才行啊)(Mac下Command+Shift+V),粘贴之时可以调出之前粘贴过的内容(以一个轻量弹框显示以供选择),哇哦,才发现这个功能,感觉棒棒哒
SublimeTextSublimeText

(19) Sublime text 删除插件步骤:“Ctrl+Shift+P”—“Remove Package”—“找到需要删除的插件,并点击即可删除”;

(20) 作为强大而小巧,性感且快捷的SublimeText,怎么能够允许不时弹个框提醒你购买或者别的,并且顶部有未注册这样破坏美感的存在呢?OK,输入Sublime text 3最新版破解方法中提供的注册码,就妥妥的哦了。

定制属于自己的个性化主题

SublimeText 她不仅仅是作为性感无比,强大可大编辑器的存在;要知道在如今这么靠脸吃饭的时代,她的美者这方面怎么可能不臻至完美呢?Mac和Windows都默认十多种不同风格的主题,想必会有您喜欢的。即便没有也没关系,我们可以自己定制自己喜欢的风格主题。在线制作专属Sublime Text主题。这个网址可以轻松按照自己的意愿制作喜欢的主题。完毕之后将生成的xx.sublime.theme文件,点开Preferences -> Browsr Packages这个,放在这个直属目录之下,即可在Theme处选择这个主题了,亲测没有问题。

后记:作为如此便捷的她(Sublime Text3),值得分享肯定不止这些,在Coding and Writing路上,要继续去发现和发扬她的美,未完待续…
—写于2015.04.17 22:49 ShenZhen@nanshan

Sublime锦上添花些许设置

—-更新2015.08.31 11:59 ShenZhen@nanshan—-

Sublime Text内运行javascript(ES6)

首先安装nodejs

当然你可以使用其它诸如jsc之类的环境来运行js, 本文使用的是nodejs. 首先确保你的电脑已经安装好nodejs, 并已将其添加到环境变量中 (一般安装时自动添加或者询问是否添加)

添加build system

在sublime text中依次打开Tools -> Build System -> New Build System… 粘贴以下代码后保存(如Node.sublime-build), 然后把Build System设成Automatic
{ “cmd”: [“node”, “—use-strict”, “—harmony”, “$file”], “selector”: “source.js”}

附加说明

在以上的build文件中(Node.sublime-build), node是执行命令, —harmony和—use-strict是执行参数, $file是当前文件名, 所以一次build操作实际上相当于在命令行中执行了node —use-strict —harmony filename
. —harmony表示启用ES Harmony features, 而这些features目前只能在strict模式下运行, 所以需要同时添加use-strict参数(详见what-is-extended-mode).
如果不想启用es6的特性,把build文件更改成以下代码保存即可.
{ “cmd”: [“node”, “$file”], “selector”: “source.js”}

具体使用

在sublime test中新建一个test.js文件, 然后输入你的测试代码, 比如:

for (let i = 0; i < 3; i++) {
    console.log('i:', i);
}

使用快捷键 ctrl + b, 将得到以下执行结果:

i: 0i: 1i: 2[Finished in 0.1s]

温馨注解:

  • (1)文件必须是存在于磁盘中的, 而不是untitled的, 否则sublime无法找到相应的文件.
  • (2)Nodejs安装目录需要加入path环境变量中,否则Ctrl+B运行 会出现:[WinError 2] 系统找不到指定的文件。

更换Sublime Text程序图标

不仅主题可以更换,图标也可以。在Dribbble上有大量重新设计的Sublime Text精美图标。更换方法:

  1. 下载一个图标,有.icns格式的最好。如果没有,用iConvert转换之。
  2. 终端执行:open /Applications/Sublime\ Text.app/Contents/Resources/
  3. 替换Sublime Text 3.icnsSublime Text 2.icns文件。
    Sublime

Sublime 拼写检查

如果你经常使用SublimeText从事英文创作,那么启用拼写检查就非常有用处了。选择Preferences > Settings – User菜单,添加以下代码:

“spell_check”: true,

写在一路更来的结语

不得不说的是此篇文章的命名,较之于内容来讲是大了很多。毕竟要优雅使用某个工具,并不是件很容易的事。一边发现学习,一边总结更新,到此已5个月整。然而,对她~SublimeText3三的使用和了解也是仅仅限于一般水平而已。只能说:每个人都工具的使用都怀有不同的态度和追求;但是,工欲善其事,必先利其器;此一点总是没错的。因此,在投资自己这里,除学习知识之外,工具的使用大抵就是最应该投资学习的,再次可以是蓝股等等,一如Google工程师@徐宥工具的强是无敌的所言。

所谓,一个好汉三个帮;欲要优雅使用一个工具,辅助器具是必不可少的。而在于Win下以SublimeText来编程或者写作,譬如AutoHotKey,Listary等对个人来讲着实已成必备工具(在Mac下,有Alfred在手,可以说是天下我有);其给人带来的方便快捷和意想不到的惊喜,足以可以令其称为Win下小众软件中实用最。当然,像AutoHotKey这种在乎于人强,其功能愈发强的工具,其修行之路漫漫,还当上下以求索之(15.09.17更)。

当然,也不能盲目停留在SublimeText这孤傲的世界里。虽性感强大如斯,毕竟也已逝老牌儿范儿了。新的时代总会崛起些新秀,比如Github出品的Atom许有赶超Sublime之势,目测充盈着些许不同的理念;有时间定当去学习下,知乎有话题:如何评价 Github 发布的文本编辑器 Atom?,可预先了解下。

最后寄语:
工欲善其事,必先利其器!
公欲善其事,必先利其器!

参考文章出处:
Sublime Text 全程指引 by Lucida
Sublime Text 3能用支持的插件推荐
Wakatime 测试工作时间

如何优雅地使用 Sublime Text,首发于博客 - 伯乐在线

25 Dec 01:09

详解BAT盘根错节的O2O矩阵格局

by PMCAFF产品社区

最近在百度地图的“附近”功能中无意发现了商家的推广信息,而后发现原来是百度方面发布的本地直通车,在自身产品中植入O2O推广信息广告,目前百度是BAT中的第一家,这也从侧面说明了百度的流量优势,而整个O2O归根到底无非是由流量、支付、服务三大环节构成,BAT分别以自身优势以及借助第三方分别踏入这三大环节之中,彼此互相盘根错节,均想让自己占有更多环节优势。

Image title

通过这三个重要的环节,我们可以更为清晰的看清BAT的整个O2O格局矩阵。

注:本文重点针对BAT在O2O领域的自有核心产品及各家O2O相关的主要产品的流量演化路径进行分析,有意见欢迎拍砖。

百度:自顶向下顺势发展

Image title

Image title

百度的优势在于流量,并且来自于自有产品,用户在手机百度、百度地图、百度糯米等产品中直接搜索就能获得想要的信息,在这一点上百度优于微信,微信中的用户想要搜索附近O2O服务信息必须进入微信钱包中,再进入大众点评,进入层级过多且繁琐,因此百度的自有产品流量胜于微信。只不过早期百度地图等产品虽有巨大的流量,但是很多用户导给了美团以及大众点评等和自己无关的第三方,这等于用户通过百度来到了阿里腾讯......

  • 从流量到服务,反攻支付

肥水不流外人田,因此百度需要将搜索流量导入到自身产品,而这一套在PC时代百度就已经玩得比较顺,将长尾关键词流量导入到旗下的百度文库、百度百科、百度贴吧中,并且在商业化层面,将搜索旅游相关关键词的用户导入去哪儿,为去哪儿的上市铺平道路。因此百度要做O2O必然是重复之前的路径,将流量导入到自身服务型产品中,再次形成闭环矩阵,先是全资收购糯米,接着是宣布200亿重金用于发展百度糯米,以及入股UBER,通过去哪儿与携程换股拿下旅游行业第一位置。

从流量方面谈百度自有流量最强大的两个产品为手机百度和百度地图,根据百度2015Q2财报显示,百度的移动搜索月活跃用户达6.29亿,手机百度日活跃用户已经破亿,百度地图移动端市场份额超过70%,掌握着O2O的流量入口。再从服务方面谈,根据百度2015Q3财报,旗下自营的百度糯米百度糯米GMV年增长已达475%,电商化交易总额(GMV)达到602亿元人民币。易观智库7月的数据显示,在全国TOP 100城市白领外卖市场中,百度外卖以5.97亿元的交易额位居第一,看来200亿的弹药也确实没白砸,而与第三方合作方面最吸引人注目的则是去哪儿与携程的合并,这两家合并后掌握着旅游市场70%的绝对份额,这也为百度从流量到服务的O2O路线提供了绝对充足的弹药。

由于百度的自有支付起步较晚,相对于阿里腾讯偏弱,尚在发力中,因此旗下自有流量产品中的百度地图、百度外卖、UBER、去哪儿等都不得不同时借助于支付宝以及微信支付,支付要想占领市场其前提必须是有场景,而当百度补足了线下服务的场景后,支付的发展就变得水到渠成,进而反攻对手。

  • 人工智能的想象

此外,值得一体的是,百度是在BAT中对人工智能前沿技术领域投入最大的,2015Q3中显示已经达到57.02亿,占营收的31.02%。百度在人工智能领域的深入布局,留给了百度更多的深入的想象空间,比如当用户搜索“附近哪家餐馆好?”时,百度可以根据其百度外卖数据,以及糯米餐饮预订相关数据记录,对其精准的个性化推荐,以及根据用户的O2O使用行为,联合商家为用户提供某个单项菜品的特殊优惠。如果这些私人定制一旦介入到餐饮、旅游等O2O行业,将会是非常有价值的事情,而“度秘”在百度系产品中的接入则算是探路的前奏。

  • 小结:

百度推出的本地商家直通车可谓是顺势而为,百度由于自身的流量强势,因此并不会受到支付的影响,而对于商家而言最需要的不是用谁的支付,这不是商家想要的核心,从古至今商业的核心永远是流量,无论是SHOPING MALL的万达,还是淘宝还关键词广告,谁能够给为商家带来流量谁就能在最后实现最终商业价值的回归,进而沉淀下来。而百度本地商家直通车项目虽小,但是未来增值的潜力却巨大,将会产生关键词广告的最大价值。

百度是BAT中流量优势最为明显的,布局路线稳扎稳打,可以让人清晰地看到从流量到服务的整个路径,拥有什么流量就补什么服务,有强势合作伙伴就合作,没有就自建,对合作伙伴的控制力最强。而腾讯与阿里的投资布局就有些迷雾重重,腾讯的投资的58迟迟不接入微信,滴滴又与阿里快的合并,阿里的美团又跑去了腾讯,扑朔迷离充满各种不确定,反观之下,百度显得更有定力与格局,重在长远规划。

阿里:自下向上反攻

Image title

Image title

阿里的支付环节是最为强势的,阿里并没有公布具体用户数,但从侧面来看2015年天猫双十一交易额为912.17亿元其中无线交易额为626亿元,无线占比68.67%,这就足以了手机支付宝有着极强的用户优势。支付宝在十几年间积累的上亿用户,为自己建立起了极为深厚的护城墙,使其在O2O环节的支付中变得不可缺席,无论百度腾讯有多少的流量,都无法绕过阿里的支付宝,百度系的去哪儿、携程、百度外卖、腾讯系的58同城、美团、大众点评等等均无法绕开。这是BAT三国杀中最有趣的部分,任凭百度腾讯投资并且建立了多么强大的流量,却都无法绕开支付宝的体系,这样就让阿里拥有了百度和腾讯的部分交易数据,再通过一定比例放大,百度和腾讯的交易数据很可能就在阿里面前全盘出来了......

  • 阿里想要的是流量和服务,但流量依然是弱势

阿里的弱势在于流量和服务,阿里分别通过投资以及手机支付宝向这两方面延展。第一,从投资上来说,在上游流量方面,阿里全资收购了UC浏览器和高德地图,这两款都是流量型产品,有着一定的市场,易观的《中国第三方手机浏览器市场季度监测报告2015年第1季度》显示,UC浏览器占据了36.4%的市场份额,在易观的《2015Q3中国手机地图市场季度数据监测》中,高德地图占领了26%的市场份额,都有着不错的成绩。其次阿里通过投资线下的苏宁、银泰、快的等等一系列动作完成线下布局,虽然银泰和苏宁对线下均有极强的掌控能力,但银泰和苏宁所集中的领域只是零售,还是无法帮助阿里完成更大的O2O格局。第二,再从手机支付宝说,支付宝也在向两端发力,加入了附近以及商户等功能,用户可以通过该功能查找到相关商家,发力上游流量,在线下方面通过与到店商家的相关结合,让用户可以扫码支付,发力下游商家控制。

在上游方面,用户对使用支付宝进行搜索商家的习惯目前依然是不成熟的,并且阿里不具备百度和腾讯自身拥有O2O流量的优势,其最大的自有流量依然只是电商流量,与O2O无关,而高德地图和UC浏览器的神马搜索市场份额又远远不及百度,因此阿里的O2O流量在BAT中处于弱势的位置。但阿里通过支付宝向服务延展的能力却不容小觑。

  • 从支付到服务,反攻流量

从支付宝向流量拓展暂时乏力,但是向服务拓展却极具掌控力,这个环节其实是是很可怕的。可怕在哪里?支付这个环节可以算是流量的终结者,例如用户通过百度或者美团大众点评来到了商家那里,结果发现使用支付宝可以付款竟然可以获得优惠,结果最后就刷支付宝付了,而百度和新美大的流量又统统给支付宝做了嫁衣。支付宝扫码支付其实是个黑洞,除了吸收线下流量以外还会吸收线上流量,这充满了半路打劫的意思,各位还记得美团的员工狠砸商家支付宝的事件么?因为支付宝利用打折补贴的方式,可能是真的把美团辛辛苦苦推广换来的用户给抢了过去,而本该是美团对商家的抽成也不翼而飞。

今年阿里的双十二尤为引人注目,阿里不再将目光聚焦在线上C2C电商,而是进入线下,“1212支付宝口碑”活动是对整个涉及线下支付的餐厅、超市、便利店、售货机、外卖、加油、电影院等等进行了猛烈的到店狙击,试图让大众更为深刻的记住支付宝拥有到店支付的属性,来势不小。

  • 小结:

阿里是BAT中最为需要流量与服务的,自从与美团决裂后,其劣势在于缺少像腾讯与百度那样有着众多强势的控制下游服务环节的第三方O2O公司支撑,更多的是依赖于自身的支付宝,进行自下而上的反攻,而支付宝对后端控制比较强势,所有到店支付,皆有可能被其染指。

腾讯:优势平衡,中道发展

可以看出,虽然微信支付在支付领域拥有一定势能,但是还远远比不上支付宝,支付宝在O2O支付环节有着不可缺席的地位,微信支付还远远难以取代,而腾讯系也必须借助支付宝。

  • 腾讯的阿里路线

Image title

Image title

这里最需要谈的是微信支付和支付宝的龙虎斗,我们现在在线下都能看到一般有支付宝的支付的地方很可能就会有微信支付,这也很好理解,支付宝作为一个半路“劫匪”,腾讯自然有理由“劫回去”,但这里面有个问题就是腾讯拿过去的流量也有可能是自己亲儿子美团大众点评的,但是这些数据并不会回流给美团大众点评,这可能也是让亲儿子没法接受的吧......

  • 腾讯的百度路线

其次谈自有产品流量,微信最大的自有流量来源就是微信,根据腾讯的公布数据,微信的全球月活用户为5.49亿,且国内用户占据绝大部分。微信的流量分为两部分,第一是微信公众号,第二是微信钱包。微信公众号的形态比较尴尬,虽然微信有着800万个品牌公众号,但由于微信公众号是去中心化形态,因此也就决定了微信无法通过中心化的运营介入到用户的使用过程中,微信的公众号有再多的流量腾讯也无法轻易使用,不能进行流量的引导。由于在微信公众号中无法建立中心化的流量引导,因此也就必然出现了微信钱包来弥补这一功能,在微信钱包中,用户需求得以满足。由于微信钱包是中心化体系,这也意味着微信方面必须提供最为高频并且有着严格的标准化服务的产品,而腾讯的选择与百度不同,因为腾讯在PC时代尝试过从流量到电商的转化,效果并不理想,C2C电商的拍拍做失败后转手给了京东,但转而被京东宣布着手关闭,而投资3.25亿人民币的高鹏网也不见踪影,花费2亿收购的易迅最后也最终惨败,转移给了京东,

  • 小结:

腾讯是BAT中发展最为中道的,腾讯有一定的自有流量以及支付,但其不像百度和阿里在流量以及支付方面分别有着突出优势,而是处在中间位置,因此腾讯的布局是在支付方面亲自上阵与支付宝一较高下,支付宝怎么做自己就怎么做,从滴滴快的补贴大战到春节红包大战再到现在的线下支付大战,微信支付全部一路跟随到底。而腾讯在流量方面交给第三方处理,除了做一些极为基础简单的水电煤缴费服务外,更重的O2O不再亲力亲为,这也帮助腾讯扩展自身的服务以及支付体系。

流量、支付、服务的思考

最后再一次辩证地看待流量、支付、服务这三个环节。

第一,由于流量处于最顶端,因此无论下游如何缠斗,其所受影响最小,这是百度和微信的天然优势,而阿里没有。

第二,支付的这个环节似乎并不重要,百度借力支付宝依然能够形成流量到服务的整个O2O过程,但这个环节又十分重要,因为支付可以在线下直接对线上流量实现截流,因此百度必须发力支付,而腾讯与阿里也将会在支付方面继续缠斗不休。

第三,服务环节也更为重要,强势掌握服务环节的O2O公司必然也同样掌握自有前端流量,可以自成一体而不依赖BAT,这也导致了BAT在移动时代变得不像PC时代那么有掌控力,例如腾讯旗下的滴滴与阿里旗下的快的合并,腾讯投资的58启动的新项目接受了阿里的投资,而原本是阿里投资的美团也与阿里反目进入腾讯阵营等等,而对比之下,百度对旗下O2O公司的掌控更强一些。

结语:

重新回过头去看整个BAT在O2O的格局,就会发现一切都是盘根错节再也不像PC时代那样的泾渭分明,BAT在流量、支付、服务三大环节均有很大的涉猎,百度依然是流量生意,自顶向下建立O2O闭环,从流量到服务再反攻支付领域,而无论PC到移动时代怎么变,商家依然需要更多客户需要流量,百度本地直通车是一次顺势之为。阿里的强势在支付环节,以支付宝为利剑切入O2O的下游商家环节,对百度腾讯系的流量一剑封喉。腾讯的优势为中庸,同时在走百度阿里线路,在支付方面不断与支付宝纠缠,而下游服务采取第三方O2O公司合作的方式进行深入布局。

 本文由PMCAFF 产品经理社区原创专栏作者@承哲 原创发布于社区。

24 Dec 02:34

2002~2015,大牛程序员的桌面变迁

by 张天雷

1个月前,unix.se的Anders Jensen-Urstad曾经发文展示了著名编程人员或Unix大神在2002年的桌面截图。近日,Anders再度与这些人联系,获得并对比了其中一些人桌面截图的变化。接下来,本文就通过对比这前后十几年桌面的差别,来展示时代的变迁。

Brian Kernighan(Unix传奇人物,awk之父,《C程序设计语言》的作者之一)

在2002年,Brian的桌面上只有正在使用的Unix系统的xterm界面。而且,从图中可以看出,整个界面近乎为黑白,看让去十分无聊。

到2015年,Brian的桌面就变得绚丽了很多。虽然Brian使用的仍然是终端,其背景颜色已经发生了变化。而且,右侧的程序栏显示Brian还是安装了很多应用程序的。

Richard Stallman(自由软件运动的精神领袖、GNU计划以及自由软件基金会的创立者、著名黑客)

在2002年,Richard虽然已经安装了X和GNOME,但更多的还是采用文本模式进行办公。

到了2015年,Richard开始使用Trisquel的标准环境,但是大部分时间是在终端中使用Emacs工具。

Bram Moolenaar(Vim编辑器作者)
在2002年,Bram主要依赖xterm进行工作,同时使用Netscape来浏览网页。相对于其他人,Bram的桌面已经多了一些色彩,而且设置了xterm中的高亮显示。此外,Bram还打开了KDE状态栏的自动隐藏功能。

Bram在2015年仍然依赖xterm来使用Vim、Zimbu和邮件。但是,其屏幕大小已经发生了很大变化,可以同时显示更多的内容。

Rasmus Lerdorf(PHP语言的发明者)

虽然Rasmus使用了一张色彩艳丽的图片来展示自己的桌面,其Linux的Gnome桌面上主要运行的也只有Vim和Pine。

到2015年,Rasmus仍然在使用Linux、终端和浏览器。但是,他开始使用Thunderbird来替代Pine收发邮件。而且,他笔记本中所使用的系统也更新为了带Unity的Ubuntu。

Warren Toomey(Unix历史学家)

2002年,Warren回复Anders的请求时,提及了他使用Unix系统的经过。Warren第一次接触Unix系统,是通过一台运行OSx的Pyramid 90x的机器。该机器提供了AT&T环境与BSD风格的环境。起初,Warren使用的是AT&T环境,后来改为BSD风格。之后,他使用过SunOS 3.5及后续版本、386BSD 0.1以及FreeBSD。在2002年,Warren使用的则是FreeBSD 4的稳定版,以fvwm 1.24作为窗口管理器,主要在tcsh环境中使用vi编辑器。

到了2015年,Warren仍然以xterm作为主要工作环境。但是,fvwm已经被LXDE所取代,tcsh也换成了bash。而且,操作系统也切换到了Lubuntu。更大的不同是,Warren使用了Firefox、lyx、Gimp、KeepassX、Shutter、viking、dia、Wireshark、calibre、audacity、Handbrake以及VLC等GUI工具。当然,Warren还感慨到了计算机性能的变化——当年机器的配置实在是太弱了!

Jordan Hubbard (FreeBSD联合创始人,苹果公司Darwin项目的负责人)

从下图可以看出,Jordan在2002年已经开始使用苹果系统。使用了除终端系统外的iTunes和网页浏览器。这在当时已经是比较前卫的选择。

到2015年,Jordan依然在使用苹果系统和终端系统。但是,操作系统本身已经经过了若干代的更新。

Timothee Besset(曾经担任id Software软件公司的Linux版本维护者,现为独立程序员)

相比于其他人,Timothee的桌面要丰富很多,甚至展示了《重返德军总部》的游戏画面。他经常使用的应用包括IDEIRCIMTerm以及邮件客户端

到2015年,Timothee的桌面反而简洁了很多。他主要展示了使用saltstack进行配置的效果。

通过以上对比可以看出,这些大牛程序员所喜爱使用的编辑器基本没变,但桌面还是变得绚丽和丰富了很多。那么,从2002到2015,你的桌面是否也经历了类似的变化呢?


感谢魏星对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

22 Dec 09:24

别人家的工资!在BAT做三年,普通员工能拿多少?

by aoi

新年即将到来,大多数人也会迎来年底加薪。说到薪资,BAT 作为国内互联网三巨头,员工薪资相信很多人都很好奇。有人提出,按起薪 15k 算,在 BAT 工作了三年的普通员工,按照每年 20% 的增幅可以达到 15*1.2*1.2*1.2=25k。年薪 25k*14(百度),25k*16(腾讯),25k*15(阿里)。那么这个算法准确吗?

有很多网友对这个问题做了回答,其中还有部分自称是 BAT 员工的爆料,一起来看看吧。

我们先来看看传说中的 BAT 的常见级别及薪资待遇:

1、阿里巴巴

a、阿里内部的常见级别和定义

P 序列=技术岗 M 序列=管理岗 (注:样本有限,以下全部数据仅供参考!)

别人家的工资!在 BAT 做三年普通员工能拿多少?

b、阿里的级别对应薪资

别人家的工资!在 BAT 做三年普通员工能拿多少?

阿里薪资结构:一般是 12+1+3=16 薪;年底的奖金为0-6 个月薪资,90% 人可拿到 3 个月。除了薪水,股票也是重要的收入之一,阿里的股票分年限行权,一般 4 年拿完。

2、百度

a、百度的技术级别

百度有 4 万人,每年招聘应届生技术产品人员 1000 人左右,技术岗位级别和阿里类似,分为T序列 12 级,不赘述了,大概阿里的级别减 1 或2,就是百度的级别。

主要集中在 T5/T6,升 T7 很困难,T7 升 T8 更困难;T7 以上一般就不做 coding 了;一般来说,在百度待 3 年能给到 T5,很多人都等不到三年,原因下面说,社招过来的,一般是外面公司的技术骨干了;T10 是技术总监,十个左右;T11 是首席科学家;T12 基本没见过。

b、百度薪资的大概范围

别人家的工资!在 BAT 做三年普通员工能拿多少?

百度薪资结构:月薪×14.6(12+0.6+2),其他岗位月薪×14;T5 以上为关键岗位,另外有股票、期权;T5、T6 占比最大的级别,T8、T9 占比最小;级别越高,每档之间的宽幅越大。

3、腾讯

a、腾讯的技术级别

腾讯的分级和阿里/百度都不一样,分为 T1/T2/T3/T4 共 4 级,每级又细分为 3 小级。员工仍然集中在中段,尤其是 T2.3 和 T3.1;想从 T2 跨到 T3,即从 2.3 升 3.1 是非常困难的。

b、腾讯的薪酬和级别的关系

别人家的工资!在 BAT 做三年普通员工能拿多少?

那么这些数据是不是真的呢,让我们从知乎网友的回答中找找答案。


以下内容精选自知乎问题《在 BAT 工作三年的普通员工拿多少工资?》的回答。

别人家的工资!在 BAT 做三年普通员工能拿多少?

@samtoxic

肯定是相亲遇到 BAT 的员工,不好意思问人家薪酬了。

@匿名用户

很多老员工的工资, 比楼主描述的, 要低但是, 他们兑换 rsu 交的税, 比楼主描述的年薪还要高这年头, 屌丝才拼工资。

@匿名用户

在阿里 6 年,拿了 6 年 3.75。算了下工资每年 40% 的涨幅。是不是很 NB?

可是走之前也才刚过 30K, 因为入职是个可怜的 P4,税前只有可怜的 4K 。

如果呆在阿里不走的,衡量的成功失败的不是工资,是股票。君不见现在大家纷纷去了支付宝和菜鸟,图个什么?大家都清楚。

如果离开阿里,那衡量成功的是层级,这基本能说明在阿里经历了多大的事。

@匿名用户

BAT 也不一样。B厂 3 年到 T5 没问题,T5 价一般能过 20k,30W 问题不大,有没有 35 就不知道了,不过按照去年年终的给力程度应该是差不多的。如果升得快能到高工,年薪肯定过 40 了。T的薪水低不少。3 年应该是 T2.2,2.3,少于 20k。

有些工作两年的 T2 还没狼厂白菜应届生高。我估计大家说的倒挂可能就是说鹅厂。升到高工也才 30 多万,跟狼厂 T5 差不多。而且T的升级速度也没B快,一般人 3 年不大可能到高级,5 年都不一定能到。A的薪水不了解,不过肯定不会像T这么低,应该跟B差不多。

@匿名用户

百度某部门;

13 年加入百度,任职产品经理,p3 序列,1.1w;年终绩效2,2 个半月年终奖;

14 年普调+晋升 p4,1.35w;年终绩效1,8 个月年终奖

15 年普调+晋升 p5,1.56w;年终绩效不明,今年公司据说不会有很高的年终。

我算是比较规范的晋升方式+调薪方式,大概 2 年涨薪 40% 多。

百度1-12 的的产品序列,初级 p3,默认 3 年 2 级(不符合的据说会被淘汰),p5 要求可以独立带项目,p6+ 基本就属于中层骨干,据说 p6+ 开始享受百度的股票分红。

p5 在不同部门(要害部门和非要害部门),bp 会相差很大,社招经验和工作年限也相差很大。我知道的有我 2 倍 bp 的 p5,也有可以拿股票的 p5.

以上….

t 序列是百度的技术序列,但…一般t序列的整体 base 比p序列的整体 base 要高 30% 左右,参考之即可~

@匿名用户

设计部门,2 年,研究生海归学历,月薪 25k 目前。

@匿名用户

工作三年,看到被我带的一个研究生的 offer,工资比我高 2k。

@匿名用户

作为一名国内较大(相对而言)的互联网公司的 HR,我不请自来答一记!

我个人觉得,这个问题还是要区分岗位性质来对待,对于技术/产品/运营类岗位我不清楚,因为我在分公司也就无从得知,而对于我自己这个岗位……刚进公司的时候,的确有点低。同样跟我进公司的人,被领导承诺了一年会加薪,也是一拖再拖,后来又说会在 2016 年待我们工作满一年再进行调薪,具体涨幅无从知晓。

@匿名用户

回答一个A厂的技术类情况,12 年入职的一批人工资在8-9k 左右,我实验室几乎每个人都有 offer,但是没人去。真正从 12 年的校招,也就是 13 年入职的那批人,薪水才涨到 15k,加上招人少,A家一下子成了香饽饽。表现好一年升 p6,工资一般接近 20k, 再过两年升 p7 的也很多,工资在 27k 左右。但听说范围很大。A家吸引人的地方是老马发股票慷慨,入职第一年表现好就有,p6 以上年年都有。像蚂蚁的股票,随便一发价值可能就是上百万,当然要交很多税。

@匿名用户

这是 bat 在知乎被黑的最惨的一次。

@匿名用户

往回撸,3 年前是 2012 年,12 年应届应该不会有 15k,11 年的时候我是到手 1w 出点头,%20 每年,应该现在是 25 左右。我不在 bat,可我涨幅远超这个了。

所以题主说的不对,当然我也不是 12 年应届,但是就目前个人经验来说,保持每年 35% 的涨幅应该是正常的。不过现在没个 50% 谁跳槽啊。。

可有意思的是,最近一些周边高薪程序员都是平薪在换工作,可见涨幅只适用于某些阶段,后期还是看命,压宝的…

@匿名用户

支付宝,2014 应届毕业生,运营,起薪 6k,谈完薪资就觉得自己要少了……

@匿名用户

bat man 来答一发。11 年 2 月研究生毕业入鹅长,13W,每个月 9k 多(比起现在 14,15k 的起薪,感觉弱爆了有木有)14 年离开场,19k 左右,中间有过两到三次 20-30% 的调薪。大部分时候如果不是优秀员工,真的很难有 20% 以上的调薪,优秀员工的难度,你知道的,鹅长是5%-10% 的占比每年。(只拿了一次优秀员工S级,调薪 25% 多,鹅场越来越抠。有一次调薪 20% 左右,是因为普调吧,估计是厂长看我们工资太低了很可能被倒挂了,才调的。

其他大部分时候是5% 左右的调啊)14 年到 15 年初,在阿里呆了几个月,27k+ 股票,P6+ 的职位。不过据我了解,给我的薪水有点高,有可能跟我在 tx 的经历有点关系吧。很多一块进去的 P7 也就这个数。走的时候老大挽留,加薪到 30K(原来的薪水有点高),没留。。。今年 5 月份,因家庭原因,重新回到深圳,在一家公募基金做互联网金融。金融行业你懂得,我们的大头在奖金。。。

@匿名用户

确实个个行业工资都不高了,毕竟是资本的寒冬啊。

@wangyue

工资待遇只是衡量一个人价值的一部分,还要看员工对公司的满意度以及公司的人性化程度,BAT 硕士的起薪大约 14K。宣称是发 14 或者 16 个月工资,但是不要忘了他们的加班也是很严重的,有同学就在里面。而且每年的 20% 的加薪恐怕做不到。不要觉得自己没有这样的工资就否认自己,BARMT 毕竟不是产业的全部。适合的才是最好的,选择幸福感最高的公司才是我们追求的。

@匿名用户

我这样来说,就简单非 bat 得同类公司,对于人才的渴求度会更高。原因有三。

1. bat 名声在外,好的不好的都往这挤,而同行的人都应该知道大公司混进去技术不达标的一般占 30% 左右,可能有些还更多。

2. 中小公司人才来了都是当宝的,不会舍得放,所以技术不错的到次一级公司会容易得到不错的待遇,并且不用在 bat 跟一帮精英抢饭碗,锻炼技术另说。

3. 还有一点这行其实参差不齐,好的很多,差的更多,就技术和做人而言。去 bat 的人多如牛毛,刷下来的就更多,这些人去哪儿了?去到了各种中小公司,他们可能活得比 bat 滋润。

@匿名用户

应届生,阿里巴巴,市场推广 8k。

@匿名用户

13 年本科应届生入职T,T1-1,月才 8.6k,而且那会是*14,并非后来的*16 好么。。。

14 年 4 月普调了 16%,各种被倒挂,被外界薪资刺激,一度想离职。。万幸 leader 给力,10 月又调了 24%,并且号称改成了*16,才算勉强接近平均水平。。

15 年 leader 离职,4 月普调只悲催的只调了8%,离职前月 12.5k

不知道年 20% 的调薪是哪来的!?要不是那年我的表现确实不错,leader 也不可能帮忙申请到了 24% 的调薪啊。。。

离职后目前 26k。。。

别人家的工资!在BAT做三年,普通员工能拿多少?,首发于博客 - 伯乐在线

21 Dec 08:23

那些去纳斯达克敲了钟的中国互联网企业,走的是一条怎样的路?

by guest

编者按:题图为当地时间2011年5月11日,中国婚恋网站“世纪佳缘”在纳斯达克上市,LED屏上打出了中国国旗图案。20年一瞬,作者想为我们梳理中国互联网上市企业走的是一条怎样的道路。

本文作者downpour,原发布于微信公众号“技术创业空间”(itstarter),技术人员的创业必读媒体。36氪经授权转载

大家好,我是downpour。今天由我来发起第一个话题:中国互联网企业的赴美上市之路,希望通过对过去的梳理和总结,展望未来技术创业的趋势。

一、历史回顾

在这个全民创业的时代,把企业做上市或许是每位创业者都梦寐以求的。现在,国内的创业者已经有了越来越多的上市选择,比如近期异常火爆的新三板。而在过去,能够成功登陆美国纳斯达克几乎成为了一个创业企业走向成功的重要标志。今天,我们就来帮助大家一起梳理一下过去20年间中国创业企业的赴美上市之路。

中国的创业企业,尤其是互联网创业企业的赴美上市之路随着资本市场情况的变化,产生过数波上市的浪潮,每一波浪潮的代表企业都不同,下图是笔者总结的自2000年以来,中国互联网代表企业的上市时间表,在这张时间表上,我们能够比较清晰地看到2000年以来的四波浪潮:Image title

互联网企业的第一波上市潮,以门户为代表的三剑客(新浪、网易、搜狐)的上市为标志。在上世纪90年代末,互联网兴起的主要表现形式就是网站。那么衡量一个网站是否成功的标志是什么呢?是访问量!所以,门户网站作为综合性的内容载体,很容易成为访问聚集地,我们俗称:「入口」。也就是从这个时候起,「入口」开始成为互联网发展所围绕的最重要的概念,后面我们可以看到围绕着「入口」这个概念,衍生出各种各样的创业企业和商业模式。

抢占「入口」成为互联网发展这个阶段最重要的商业模式,而「入口」的概念也深度影响了之后互联网发展过程中的每个阶段。

互联网企业的第二波上市潮,集中于2003年到2007年之间。而在这一期间,我们可以看到上市的公司行业类型开始逐渐增多。率先登场的,是2003年底的携程,成为了国内旅游行业最大的垂直门户。之后,盛大在2004年中叶上市,陈天桥一度成为中国首富。

2004年另外2家上市的公司是艺龙和51Job,它们分别代表了旅游和招聘这2个领域的垂直门户。到此为止,「入口」这个概念在门户网站上开始往垂直领域发展,同时迸发出很多各领域的创业企业,而这些看似杂乱无章的垂直纵深,实际上是围绕着人们的日常生活服务(衣食住行)需求逐步展开的。所以,2006年新东方的上市,标志着围绕日常生活的各个领域的创业公司获得了空前的成功。

还有这期间上市的巨人、九城等游戏公司——游戏这种娱乐方式也是我们日常生活的重要组成部分之一——以其强大的变现能力,迅速成为中国互联网创业的一股重要力量。当然,有人往细分领域挖,就有人往纵深挖。百度就是典型的把访问入口做成超级入口的公司,由于搜索是人们访问互联网最大的刚需之一,百度的成功,标志着在PC端超级入口的概念已经发挥到了极致。

第二波上市潮,是把互联网带入日常生活服务的重大成功,「入口」的概念也开始往垂直和纵深这两个不同的方向发展。

互联网企业的第三波上市潮,集中于2010年到2012年之间。在这期间,我们看到垂直门户开始百花齐放,进入到更多的生活分类中:世纪佳缘是基于婚恋的,搜房是基于房地产的,优酷是视频行业的绝对老大。

与此同时,工具类「入口」横向杀出,奇虎和高德地图的上市让所有的人明白了原来互联网不仅仅是网站,对于访问量的追求变成了一场占领用户日活的游戏。

在这一波浪潮中,还涌现出了一家社交类的公司人人。人人上市的当天,股价就上涨接近40%,市值超越新浪、搜狐、盛大等前辈,而社交作为一种新型的互联网模式(区别于以入口为核心的流量变现,社交更多需要通过为用户提供增值服务来变现),当年也受到了资本的强烈追捧。而当当网的率先上市和之后唯品会的上市,则拉开了后续电商上市的序幕。

第三波上市潮,是一个承上启下的阶段。我们看到了互联网开始渗透到日常生活的每一个领域,互联网从一味追求访问量发展到追求用户的日活。与此同时,社交和电商正在以越来越快的速度向我们袭来。

互联网企业的第四波上市潮,起于2013年。我们看到的是互联网发展到了一个全新的阶段:寡头产生(百度、阿里巴巴、腾讯),并购丛生(上市公司与非上市公司,非上市公司与非上市公司频频并购)。

从行业领域看,电商在这个阶段大放异彩,不仅有垂直电商(聚美优品),也有自营电商的巨头(京东),更有超级无敌的平台型电商(阿里巴巴)。

同时,社交类的创业公司开始崭露头角,微博这个曾经异常火爆的社交产品在此期间上市,而陌陌作为第一家专营移动互联网社交的产品也成功登陆纳斯达克。

奇虎的思路,猎豹和迅雷脱颖而出,在国内互联网公司中占有一席之地。垂直生活服务领域也涌现出了一些上市公司,但更多的独角兽还没有上市就已经具备了互联网巨头的潜质。

第四波上市潮,可以说是一场资本盛宴,我们发现中国也能够涌现出十亿美金、百亿美金、甚至千亿美金的互联网公司。移动互联网的蓬勃发展也深深影响到了每一家上市公司。

二、商业模式

流量 / 电商 / 社交

创业,首先要选好行业。如果我们不考虑更加垂直的细分行业,所有公司最终都会落到三个领域:

  • 以流量运营为核心的公司
  • 以电商为核心的公司
  • 以社交为核心的公司

我们现在看到的中国互联网三巨头:百度、阿里巴巴、腾讯,正好也是从这三个不同的领域走出来的互联网巨头。

当然,不同的领域,做法和门槛截然不同。所以对于技术创业者来说,最重要的是:尽可能不要在创业早期尝试跨领域。如果我们回顾一下历史就会发现,腾讯做电商一定做不好,拍拍就败得很彻底,直到收购了京东才逐步有了和阿里抗衡的资本。而同样,阿里巴巴做社交也是一败涂地,来往几乎没有人去使用它。

在赴美上市的这些公司中,它们通常都选好一个领域,然后在这个领域中避开巨头的骚扰,形成一定创新,从而能够从斜刺里杀出一条血路。比如说奇虎360,最初是通过360安全卫士占领了大量的电脑桌面入口从而获得了成功。再比如说去哪儿,通过比价从而完成了对旅游入口的再次抢夺。

所以,对于创业者来说,考虑好团队的基因,并在一个领域中形成微创新,这将是迈向成功的第一步。

直接变现 / 流量变现 / 服务变现

任何的商业模式最终都必须有非常明确的变现方式,笔者为大家总结了一下赴美上市的公司的主要变现方式:Image title

我们可以看到,这些变现方式中,出现最多的字眼还是「流量」。只是不同的公司对于流量的变现渠道不同而已。

传统的门户网站,包括垂直的门户网站,主要是向用户系统的输出内容,所以往往这类公司通常都是将流量通过广告进行变现。

而像百度这样的超级入口,它在经历了流量通过广告变现的第一阶段之后,逐渐延伸出各种各样的流量运营变现的方式,我们俗称「卖流量」。这种「卖流量」的效应,在PC时代显得尤为重要,因为在一个网站的早期,百度关键字几乎就是最有效的推广方式。这也就是百度成为超级入口并不断发展其它模式,而其它的网站却始终只能围绕广告变现的根本原因(比如优酷的视频广告,时间越来越长)。

在这几种变现方式中,直接变现(用户直接买单)是变现能力最强的一种方式。比如游戏就是非常典型的直接变现,所以当年的PC时代,几乎每个公司都靠卖点卡,卖游戏道具赚得盆满钵满。而这种变现的方式,在巨头介入之后变了味,在腾讯发现了它可以利用自身强大的用户体系直接通过游戏变现时,它几乎没费什么劲,就打败了绝大多数的竞争对手,把游戏直接变现做到极致。

通过用户增值服务变现,互联网发展到第二阶段(不仅仅追求访问流量,而是要追求用户粘性)的主要变现方式,而这种变现方式主要倚赖的场景是电商。比如世纪佳缘,直接满足了用户的婚恋需求,用户买单的意愿也极为强烈。这种通过用户增值服务变现的方式,逐步形成了一个词汇:粉丝经济。而粉丝经济,在移动互联网时代,逐步散发出越来越强大的生命力。

对于我们创业者来说,变现方式是一定要考虑的问题。在当前互联网环境中,往往更多考虑的是烧钱圈地,而圈来的用户和流量,究竟能不能变现,这才是最重要的课题。一味烧钱,最终创业也只有死路一条。

工具 / 平台 / 生态系统

近年来有一个观点十分流行:

  • 如果一个互联网产品是一个工具,那么它是一个十亿美金的生意;
  • 如果一个互联网产品是一个平台,那么它是一个百亿美金的生意;
  • 如果一个互联网产品能够打造生态系统,那么它是一个千亿美金的生意。

对于生意的规模判定可以再商榷,但我们可以顺着这个思路看清楚一个创业企业的发展道路:从工具开始,逐步做成平台,最后发展成为生态系统。

以腾讯为例,腾讯早期是一个非常典型的工具:解决大家的基本社交需求。在打造社交产品的过程中,利用其用户体系往其它的领域导入流量,从而形成了一个异常庞大的用户增值服务平台,再通过大量的资本并购,形成了一个跨众多行业的生态系统。

目前由于互联网巨头的产生,使得新型的创业企业要成为生态系统的可能性已经大大降低。记得过去很多创业者在寻求融资的过程中往往会被问到的问题是:如果你这个产品被腾讯抄了去怎么办?或许在过去,这个问题还真的有点头疼,而现在这已经不能成为一个问题了,因为腾讯根本不用抄,直接把你买了就好了。

正因为如此,对于创业者而言,就需要更加明确自己的创业项目定位,究竟是做一个工具,还是做一个平台。作为一个工具,你的目标用户市场有多大?作为一个平台,你的市场规模又有多大?如果我们仔细分析那些成功在纳斯达克上市的公司,往往目标用户是全网用户,市场规模至少是千亿美金以上的生意。所以,明确自己创业项目的定位和目标,是技术创业者提高创业成功率最重要的环节之一。

如果你的生意是一个垂直领域,市场规模也没有那么大,或许独立上市的机会并不那么大,但是做得足够好,被巨头并购的概率也很大。事实上,我们可以看到像腾讯这样的互联网巨头在做并购的时候是有着非常明确的版图逻辑的:Image title

在微信钱包的这张九宫图中,我们看到的滴滴打车、京东、大众点评、美丽说,几乎就是各个领域的佼佼者,它们都有腾讯的入股,成为腾讯这个生态系统中细分领域的版图支撑者。

16 Dec 06:17

氪纪 2015 | BAT 这一年的战场在哪?

by Bernice

编者按:2015 年即将过去,在所有人都在对这一年的奔忙回首总结时,BAT 三家对互联网资源的争夺却从来没有停止过。12 月 11 日,彭博社(Bloomberg)根据法国巴黎银行的分析师给出的数据,称 BAT 明年在互联网领域的投资将达到 800 亿美元,其中阿里巴巴明年将有可能斥资 380 亿美元。

都说 2015 年是冰火两重天的一年,也是互联网公司合并的一年。华兴资本的创始人包凡曾经如此比喻 BAT 和这些公司的关系:“BAT 就像天上的神仙,看着人间在打仗。”

除了深度参与四次大的并购(滴滴快滴、美团大众点评、58同城和赶集、携程和去哪儿网),BAT 还把触角伸向了不同领域。

B百度: 除了 OTA,O2O 仍是绕不过去的重头戏

百度官方发布的 2015 年第三季度财报显示,截至9月30日,百度总营收为 183.83 亿人民币,净利润为 28.41 亿人民币,同比下滑 26.7%,净利下滑的主要原因是,百度在 O2O 领域、网络视频、在线旅游业务中都有较大投入, 其中 O2O 成为百度最重要的战略。

最引人注目的投资是 2015 年 6 月底,百度 CEO 李彦宏放出“壕”言,宣布追投糯米网 200 亿人民币。2014 年初,百度全资收购糯米,成为糯米网单一全资大股东,今年的追加显示出百度在 O2O 上的野心和决心。投资糯米后,百度分三个阶段对糯米进行了整合,在品牌、技术和团队管理上都注入了百度的优质资源。

和新美大不同的是,百度希望糯米网能够“去团购化”,来帮助商户搭建自我营销平台,直接对接商户 CRM 管理系统,借助百度的大数据技术,帮助商家更好地“运营”用户,甚至为商家提供管理和营销精准的决策依据。

7月,在 O2O 领域,百度宣布:百度糯米从百度拆分出来独立运营,将融资 2 亿美元。这和李彦宏释放出的 200 亿投资 O2O 似乎相背离。有投行人士表示,这次拆分外卖业务,是因为外卖行业非常烧钱,百度更愿意专注在糯米这一件事上;对百度外卖来说,脱离百度独立发展可以有更加灵活的机制获得鼓励。

携程、去哪儿网合并后形成的利益共同体的交易成为百度主导的第二大引人注目的动作。今年 10 月,携程和去哪儿发布公告称双方达成了一项股权置换交易,交易后,百度将拥有携程普通股可代表约 25% 的携程总投票权,携程将拥有约 45% 的去哪儿总投票权,两家合并后市值超过 122 亿美元。也就是说,去哪儿被并购,百度称为这起合并最大的主角,成为 OTA 领头羊,百度由此占据了 OTA 核心地位,对完整 O2O 战略布局又近了一步。

除了这两次大的 O2O 布局,今年 2 月,百度战略投资了就诊服务平台医护网,旨在探索医疗领域 O2O 的新型服务模式;2015 年 4 月,百度与天星资本联合投资了点餐平台客如云;7 月,百度以 1 亿美元领投了上门洗衣服务 e 袋洗,这次投资 e 袋洗为百度带来更多了社区服务 O2O 场景。

2015年,除了 O2O 之外,百度的投资还有电子商务类和工具类。在电子商务方面,今年 3 月,百度领投二手车交易品平台优信拍,9 月和 10 月,分别领投了母婴电商蜜芽和食品电商我买网。在工具方面, 5 月,百度以数百万美元投资美国内容推荐平台 Taboola,6 月,领投了两家公交 WiFi 运营商,分别是16 WIFI 和华视互联。

除了上述领域外,百度还有一个“互联网金融梦”:今年下半年百度和中信银行合作成立了直销银行“百信银行”,该直销银行出资方为中信银行和福建百度博瑞网络科技有限公司,注册资金暂定现金投入 20 亿元;12 月 14 日,百度内部架构大调整,成立金融服务事业群组,这个群组由消费金融业务、钱包支付业务、互联网证券业务组成,百度副总裁朱光担任金融服务事业群组总经理。

值得一提的当然还有百度的无人车事业。今年 3 月 22 日,在 2015 年 IT 领袖峰会上,百度 CEO 李彦宏公布了由百度深度学习研究院 (IDL) 负责的无人驾驶汽车计划,12 月这个承诺终于兑现:百度对无人车进行路测并取得成功,至此百度宣布无人驾驶车在国内首次实现城市、环路及高速道路混合状况下的全自动形式。随后百度宣布将与零部件厂商、整车制造商、出行服务商等组建“智慧出行”生态,并成立自动驾驶事业部,计划三年实现自动驾驶汽车的商用化,五年实现量产。

2015年百度投资细节

在 O2O 方面:

2015年2月,百度投资了就诊服务平台医护网;

2015年4月,百度与天星资本联合投资点餐平台客如云;

2015年6月,百度投资了分类信息网百姓网;

2015年6月,百度追投了糯米网 200 亿人民币,成为糯米网单一全资大股东;

2015年7月,百度领投了上门洗衣服务 e 袋洗;

2015年10月,携程和去哪儿合并后,将其拥有的去哪儿股份换成携程 25% 的股权;

在教育方面:

2015年4月,百度领投以色列音乐教育公司 Tonara;

在电子商务方面:

2015年3月,百度领投二手车交易品平台优信拍

2015年9月,百度领投母婴电商蜜芽;

2015年10月,百度领投食品电商我买网;

此外,百度还在今年 2 月以 1 亿美元投资智能终端公司神奇工场

在交通方面:

2015年4月,百度领投拼车软件 51 用车;

2015年4月,百度领投顺风车出行软件天天用车

2015年8月,百度参投 Uber 中国;

在文化方面:

2015年5月,百度以 3.7 亿美元收购 PPS 业务,并将 PPS 视频与爱奇艺进行合并

2015年6月,百度投资传统院线公司星美控股 1.5 亿港元;

在工具方面:

2015年5月,百度以数百万美元战略投资美国内容推荐平台 Taboola;

2015年6月,百度领投公交WiFi运营商16 WIFI;

2015年6月,百度领投公交 WiFi 平台华视互联

A 阿里巴巴:“后淘宝时代”与内容并存,整合闭环

对阿里巴巴来说,“后淘宝时代”是一个刚诞生不久的概念,意思是绕过平台,直接连接人和商品。所以 2015 年阿里巴巴的投资重点之一就是围绕这个概念进行深耕。

具体来说,今年 2015 年 8 月,阿里巴巴以 283 亿人民币投资苏宁云商,占股 19.99%,成为其第二大股东,阿里此举更多目的是对老对手京东构成挑战。这次合作中阿里得到了苏宁长期积累的线下资源,占领了许多三、四线市场,在传统3C家电领域,阿里获得了更多话语权;5 月,传言阿里拿出 100 亿人民币投资了圆通速递,具体金额双方没有确认,但物流是电子商务的命脉,投资圆通也是阿里解决的电商瓶颈。

此外,阿里在今年 5 月以 5600 万美元投资美国母婴用品电商 Zulily;8 月以 2 亿美元领投印度电商 Snapdeal。值得一提的还有银泰商业,早在 2014 年 3 月,阿里巴巴亿 53.7 亿港元投资银泰商业,获得 25% 股权,今年 7 月,阿里巴巴持股 32% 成为银泰唯一第一大股东。

文化内容投资也是阿里巴巴今年的投资重点。12 月 11 日,阿里巴巴收购香港《南华早报》,有消息称阿里为这此收购支付 1 亿美元,收购内容包括《南华早报》的纸质和网络版,杂志和户外媒体等业务,阿里表示收购完成后将逐步取消南早的付费墙。

但 2015 年阿里最大的一笔投资无疑是收购优酷土豆。早在去年 4 月,优酷土豆的创始人古永锵和 BAT 各家都有洽谈,但最终还是“从了”阿里,优酷土豆的股东将以每单位 ADR (美国存托凭证) 27.60 美元的价格获得现金,这次阿里出资额超过 40 亿美元。为了完成生态闭环,阿里的这次收购在意料之外,也在情理之中。对于投资内容的阿里来说,收获一个 IP 是很理想的状态,收购合一集团对阿里日后开发文学、影视内容,或者在各个渠道进行分发,获取票房、电视剧版权销售等收入提供便利。

接近年末,阿里巴巴又宣布了和迪士尼的合作,两家公司签订了多年期合作协议,并推出了“迪士尼视界” 的综合数字娱乐平台。据悉,该款产品将以儿童和家庭为核心受众,将为用户提供包括迪士尼与皮克斯公司的电影和动画剧、游戏、电子读物、歌曲、迪士尼主题乐园及度假区的最新资讯。阿里参与博纳影业私有化的消息紧随其后。

此外,今年 3 月,阿里巴巴以 24 亿元人民币收购传媒娱乐集团光线传媒 8% 的股份,成为该公司第二大股东 6 月,阿里巴巴以 12 亿人民币投资第一财经传媒有限公司,占股 36.74%,也成为该公司第二大股东;7 月,阿里巴巴将旗下的虾米音乐、天天动听整合成立阿里音乐等等,阿里的文化帝国版图尽显。

O2O 领域也是阿里今年布局已久的领域,在新美大成立之前,阿里一直是美团的坚强后盾,直到 9 月,美团和大众点评合并,阿里让旗下的口碑网复活,企图自己下水争夺 O2O 市场。口碑网和传统外卖行业是有不同的,它是以淘宝的平台模式让线下的餐饮在上网开店,这符合阿里一贯特色。除此之外,9 月阿里巴巴还投资了互联网生活服务品牌 58到家。但无论涉足 O2O 的哪一环,阿里最为强势的都将是支付。

和百度、腾讯一样,在互联网金融领域阿里巴巴也成立了自己的银行:网商银行。这家银行自 2014 年 9 月底获准筹建,今年 6 月成立,由蚂蚁金服、复星、万向、宁波金润、杭州禾博士和金字火腿等六家股东发起设立,成立后旨在服务小微和年轻人。网商银行行长俞胜法表示,小微企业、个人消费者和农村用户,将是网商银行的三大目标客户群体。

 2015年阿里巴巴投资细节

在文化方面:

2015年3月,阿里巴巴以24亿元人民币收购传媒娱乐集团光线传媒 8% 的股份,并列成为该公司第二大股东;

2015年6月,阿里巴巴以12亿人民币投资第一财经传媒有限公司,占股 36.74%,成为该公司第二大股东;

(2013年1月收购虾米音乐;12月收购天天动听)2015年7月,阿里巴巴将旗下的虾米音乐、天天动听整合成立阿里音乐,高晓松出任阿里音乐董事长

2015年10月,阿里巴巴以45亿美元全资收购优酷土豆;

2015年10月,阿里巴巴和腾讯、投资机构元禾共同投资资本投资运营凭条华人文化控股;

在硬件方面:

2015年2月,阿里巴巴以5.9亿美元投资智能手机厂商魅族科技;

2015年6月,阿里巴巴以7亿美元投资印度最大的手机品牌 Micromax 25% 的股权;

在社交方面:

2015年3月,阿里巴巴以2亿美元投资美国阅后即焚照片分享应用 Snapchat;

在O2O方面:

2015年9月,阿里巴巴投资互联网生活服务品牌 58到家;

(2011年7月,5000万美元领投美团网)2015年10月,美团与腾讯投资的大众点评合并)

在电子商务方面:

2015年5月,阿里巴巴以5600万美元投资美国母婴用品电商 Zulily;

2015年8月,阿里巴巴以2亿美元领投印度电商 Snapdeal;

2015年8月,阿里巴巴以 283 亿人民币投资苏宁云商,占股 19.99%,成为其第二大股东;

(2014年3月,阿里巴巴亿53.7亿港元投资银泰商业,获得25%股权;今年7月,阿里巴巴持股32%成为唯一第一大股东)

除此之外,阿里巴巴在今年 9 月和蚂蚁金服共同投资印度手机增值服务提供商 One 97 公司5.75 亿美元。

T 腾讯:跑不掉的垂直社交和手机游戏

腾讯的投资并购部是一个非常神秘的部门,该部门只有不到 20 人的团队,但每年被爆出的大手笔交易案例及投资金额却令人咋舌。但从已经公布的投资情况来看,2015年,腾讯投资的主要领域主要集中在在社交、O2O和游戏三个板块。

在社交方面,腾讯在 11 月 5日以 5500 万美元领投了知乎的 C 轮融资,甚至有传言称腾讯还将入股二次元视频网站哔哩哔哩(B站)。由此看来,腾讯B青睐的不但是社交,还是垂直细分的小众社交。在内容为王的时代,知乎和B站都以其特定的内容代表一部分人群,而且有很高的用户粘性。易观智库的分析师对此解释:“90后、95后人群是未来互联网盈利的主要人群,腾讯此举也是为了培育市场。”

同样的逻辑,腾讯还在2015年初投资了另类社交引用 same,same 的特点是以频道为主,用户可以在上面发布或看其他人细碎、毫无章法的意识流叙述,找到相通之处。8 月,腾讯以 5000 万美元投资移动消息应用 Kik,Kik类似于海外版的微信,获得投资后估值超过 10 亿,后来腾讯参与了虚拟现实社交平台 Altspace VR 的多轮融资。

投资社交也是腾讯本身的优势所在,腾讯拥有的微信和 QQ 是天然的传播平台,这两款应用为腾讯带来足够的流量,流量变现能为腾讯带来巨大利润。抓住这两款产品,腾讯便不缺入口和支付,因此在今年1月,腾讯投资了 O2O 领域的外卖平台零号线和饿了么,但规模远不及百度豪掷的 200 亿。

和 “A”和“B”不同的是,腾讯的投资还瞄准了手游市场,手游是腾讯掌有的独特资源,腾讯 CEO 马化腾称,腾讯手游业务加速增长,网络广告收入同比翻番。12月8日,腾讯宣布旗下的穿越火线(CF)获得超过 3 亿手机用户。但在投资方面,2015年2月,腾讯投资瑞士游戏发行商 Miniclip SA,成为该公司的最大股东。

4月,腾讯投资 1.26 亿美元获得 Glu Mobile 14.6% 的股权,这是腾讯今年在手游领域砸钱最多的一次,腾讯试图通过这次投资在明年将其最成功的射击类手游《全民突击》(WeFire)推向美国和其他西方市场,Glu Mobile CEO尼克罗·德马西(Niccolo de Masi)最近在接受一次采访时表示,“腾讯已经在中国拥有了非常大的市场份额。如果他们想要更快增长,就需要将业务扩大至其他国家。”他还表示,腾讯和 Glu Mobile 专门成立一个团队对《全民突击》尽享设计,希望对对美国和欧洲的玩家更具吸引力。由此看来,腾讯在手游的野心也许比我们想象中要大。

另外,在今年5月,腾讯以 6000 万美元收购美国手游公司 Pocket Gems 20% 的股份;同时还有传言称腾讯还计划通过与日本移动游戏厂商合作,在明年将另一款移动游戏推向当地市场,但是这款游戏的名称尚未对外公布。

但无论是 O2O、社交还是手游,腾讯有着 QQ 和微信两款王牌产品做支持,所以接下来要做的,就是通过这两个连接器实现流量变现,把手中的业务扩到最大。

在互联网金融方面,腾讯也有自己的一把算盘:今年 8 月,腾讯微众银行低调成立,这也是中国首家纯互联网银行,微众银行成立后App 随即上线,但没有物理网点和 PC 端计划,微众银行一共包括活期、定期和股票基金三款产品,是腾讯在互联网金融领域的一次拓展。可惜,微众银行短暂的内测和低调上线之后并没有进一步的大动作,在线开户和远程小贷的路能走多远,无人知晓。

在携程去哪儿合并之前,腾讯也迈入了 OTA 的大门。8月,艺龙发布公告称收到腾讯的非约束性私有化要约,根据腾讯的要约,腾讯希望以 18 美元每 ADS 的价格收购所有流动普通股完成私有化。其实早在 2011 年腾讯就投资艺龙,  当时以 8400 万美元获取了 15%的股权。36氪分析,尽管没有携程和去哪儿庞大,但艺龙依然有 10%的市场份额,除了同程、我趣旅行和面包旅行之外,腾讯在 OTA 上没有太大优势,所以必须在自己的资产组合中寻求更可靠的、接近第一梯队的元素。

 2015年腾讯投资细节

在 O2O 方面:

2015年1月,腾讯领投外卖平台零号线;

2015年1月,腾讯与京东、红杉资本等联合投资餐饮平台饿了么;

2015年7月,腾讯领投法律服务平台赢了网和点菜平台“悠先点菜”

在企业服务方面:

2015年 5 月,腾讯以 5000 万元人民币入股智能电视解决方案供应商欢网科技;

2015年 7 月,腾讯参与投资了免费 WiFi 运营商 MagicWiFi;

2015年 7 月,腾讯参与投资室内定位公司 Sensewhere

在社交方面:

2015年,腾讯投资另类社交软件 Same;

2015年 8 月,腾讯以 5000 万美元投资移动消息应用 Kik;

2015年 11 月,腾讯领投网络问答社区知乎;

2015年,腾讯参与了虚拟现实社交平台 Altspace VR 的多轮融资

在硬件方面:

2015年4月,腾讯与复兴领头硅谷的体征数据监测设备公司 Scanadu

在文化方面:

2015年4月,腾讯投资电影服务平台微影时代;

2015年,腾讯并购盛大文学,整合成立了新的公司阅文集团;

2015年10月,腾讯和阿里巴巴、投资机构元禾共同投资资本投资运营凭条华人文化控股;

在金融方面:

2015年1月,腾讯以 1.5 亿美金投资汽车金融互联网平台易鑫资本;

在电子商务方面:

2015年1月,腾讯与京东联合投资汽车信息网站易车网 15.5 亿美元,腾讯占股 3.3%;

2015年8月,腾讯领投二手车交易平台人人车 C 轮融资;并和Yuri Milner 一起以 9000 万美元投资在线医疗门户 Practo;

2015年11月,腾讯领投移动生鲜电商平台每日优鲜

在游戏方面:

2015年2月,腾讯成为瑞士游戏发行商 Miniclip SA 的最大股东;

2015年4月,腾讯投资 1.26 亿美元获得 Glu Mobile 14.6% 的股权;

2015年5月,腾讯亿 6000 万美元收购美国手游公司 Pocket Gems 20% 的股份

另外,今年1 月,腾讯以 1200 万人民币领投了生活消费类公司城觅; 5 月曾在海外投资了一家名叫Tissue Analytics的医疗公司,主要做远程慢性伤口护理,投资金额为 75 万美元。

结语:

其实BAT 在 2015年的投资趋势,离不开这一年互联网公司的合并,2015年也被称作“合并之年”,从年初的滴滴快滴合并,到 4 月的 58 赶集合并,从 10 月的新美大成立,再到 10 月携程去哪儿联姻,都能看到这些公司背后 BAT 的身影。汉能投资董事长陈宏表示,这是因为 BAT 有强大的市值做资本支撑,并且这些竞争领域交叉,在竞争中除了做大做强,就是被并购,所以一旦中小企业的业务和 BAT 形成互补,就很有可能被并购。

展望 2016年,BAT 三家除了可能达到的总投资额 800 亿美元外,巴黎银行分析师还给出了如下预测:明年 BAT 的投资方向将主要集中在 O2O 领域,且明年中国的 O2O 市场将发生大的裂变,这一领域的总市值将超过 1 万亿;从具体公司角度来看,三家公司需要在新美大和滴滴快滴两家公司争取更大持股。

P.S.  2015,是冰火两重天的 2015。从投融资的轰轰烈烈,到热潮迅疾褪去,一切发生也不过转瞬。而越是这般在激变的年代里,所历之事便越值得记录,因为其中往往不乏激流与暗涌,光环与落败,于经历者而言是大彻大悟,于旁观者则是趣味盎然,因此要做成一本 “互联网创业史记” 的 36 氪媒体自然不会错过写下他们的机会,于是我们写成 “氪纪 2015” 系列,将这一年之事总结写成后端至诸位面前,供诸位品判。其它系列文章:

氪纪 2015|煤老板的玩笑到 O2O 宇宙中心——集体迁入望京的狂热及野心

氪纪 2015|如果免费能做成,有 BAT 就够了,还要你们做什么?

氪纪 2015 | 这里有一份海外民宿创业(不完全)指南

氪纪 2015|变样了?盘点被创业者改变的十大生活场景

氪纪 2015 | 进击的二次元,主流文化,Are You OK?

氪纪 2015 | 跨境电商 “野蛮生长” 记 

氪纪 2015 | 依旧很痛的痛点,若陷若现的前方 

氪纪 2015 | O2O 已死?我们认为它才刚刚开始

氪纪 2015|换个姿势做上班狗!被创业者改变的十大工作场景

13 Dec 13:33

现实世界中正在用Java解决的难题

by 光光头去打酱油

我们采访了11位专业商务人士,他们中大部分人都有从事涉及 Java 生态系统相关的工作。我向他们询问了一些问题,在他们职业生涯中用Java 解决了哪些实际问题。

我们采访了这些人:

Anthony Kilman, Tech Lead, AppDynamics |Gil Tene, CTO, Azul Systems |Bhartendu Sharma, Vice President of Operations, Chetu |Charles Kendrick, CTO and Chief Architect, Isomorphic Software | Fred Simon, Co-Founder and Chief Architect, JFrog | Ray Auge, Senior Software Architect, Liferay |Michael Hunger, Lead Developer Advocate, Neo Technology |Brandon Allgood, PhD, CTO, Numerate | Dr. Andy Piper, CTO, Push Technology | Jonas Bonér, Founder and CTO, Typesafe | Toomas Rὅmer, CTO and Founder, ZeroTurnaround |

下面是他们的回答:

1、服务器端、大数据、大型网站、Twitter 后端就是使用 Java 语言。这些都是 Java 最耀眼的领域。物联网、Android 移动平台,你可以使用同一种语言来编写移动端和大数据服务端。

2、Pre-cloud 融合虚拟化和商用硬件逐渐融入云端。可以方便快捷地创建一个计算机网络,而不用考虑软件。先创建一个本地环境,然后推送到需要使用它的地方。分布式计算系统。能够更加迅速在AWS上活跃起来。

3、Java 已经很完善了,任何地方都能看到它的身影。甚至可以在嵌入式系统中找到它。这是一个伟大的软件开发语言,它解决了在软件开发中的管理问题,能够轻松的完成一些事情,而且很容易招到开发人员。

4、Java 是最安全、最稳定且可扩展的企业软件。Twitter 从 Ruby 转移到 Scala 和 Java ,就是因为其扩展性、稳定性和编程速度。

5、Java 平台对于处理复杂任务非常高效。能够在各种平台上运行。 Java 可以在不同的硬件平台上工作。

6、自 1995 年发布以来就没有什么重大的改变。这是一个非常稳定的企业软件。从物联网和移动端又让我们看到 Java 能解决更多不同问题。 Java 更适合长远的发展,而不是快速发展。我们正与大型披萨连锁店合作,开发应用控制他们烤箱的制作温度、 湿度、 烹饪时间以及其它维护。

7、有两个亮点:

1、Java开发库生态系统及开源。我们正在参与那些高质量的库。我们使用这些库很多年了,也不需要我们一直回馈这些库。我们现在作为 Eclipse 基金会和 Apache 成员,会提供力所能及的帮助。这对我们公司和我们的开发者来说是互惠互利的。我们很高兴能够回馈开源项目,甚至“提供资金支持其发展。”

2、Java OSGi 模块化。上世纪 1990 年由 IBM、Sun 等其他公司建立的模块化软件。它作为产品一直在不断发展,变得越来越复杂,无法再保持灵活,越来越难以维护。它使我们能够开发高端功能,并导出到Java,允许我们向极限挑战。

8、Reactive 应用程序可以在很短的时间内获得响应,通过云扩展、收缩规模。弹性系统也可能因为压力过大而无法启动或快速运行。Reactive 应用是易伸缩的,多用于能源等关键行业。

9、在大型企业里,Java 有最大的代码库。它几乎可以用于任何地方,从物联网到服务器——无处不在。人们往往看不到这一点。他们以为所有级别的东西都是用 C 或 C + + 编写的。他们觉得服务器页面在互联网上应该获得更多的关注,像使用 Cobol 编写运行的金融系统后台。

10、Java 影响着 Android OS、Amazon Kindle 以及企业数据库和大数据处理(Hadoop 和 Cassandra 都是用 Java 编写的, Spark 是用 Scala 编写的,一种 JVM 语言)。安全性、稳定性、可扩展都是 Java 平台的特点(如实时交易)。由于其性能、稳定性、并能够跨平台,所以你可以在 Windows 或 OSX 平台上用 Java 开发。

11、在企业服务器端广泛使用,特别是大型、面向数据库的系统、涉及多服务多平台之间的集成以及分布式事务。

相关文章

11 Dec 06:44

关键业务系统的JVM启动参数推荐

by studychen

关键业务系统的JVM启动参数推荐

The post 关键业务系统的JVM启动参数推荐 appeared first on 头条 - 伯乐在线.

09 Dec 00:49

美团O2O排序解决方案——线下篇

by 美团技术团队

背景

针对美团90%的交易发生在移动端的业务特点,我们实现了一套适用于O2O业务的搜索排序技术方案,已在许多产品和子行业中得到应用。在之前的线上篇中,我们已经介绍了服务的框架、排序算法等。本文为线下篇,主要讲述数据清洗、特征矩阵、监控系统、模型训练和效果评估等模块。

数据清洗

数据清洗的主要工作是为离线模型训练准备标注数据,同时洗掉不合法数据。数据清洗的数据源主要有团购的曝光、点击和下单。
整个数据清洗的流程如下:

  • 序列化
    曝光、点击和下单数据从Hive表中读取,采用schema的处理方式,可以直接根据日志字段名来抽取相应的字段,不受日志字段增加或者减少的影响。
    曝光日志存储了一次用户行为的详细信息,包括城市、地理位置、筛选条件及一些行为特征;点击日志主要记录了用户点击的POIID、点击时间;下单日志记录了用户下单的POIID、下单时间和下单的金额。数据清洗模块根据配置文件从数据源中抽取需要的字段,进行序列化(Serialization)之后存储在HDFS上。
    序列化的过程中,如果日志字段不合法或者单一用户曝光、点击或下单超出设定的阈值,相关日志都会被清洗掉,避免数据对模型训练造成影响。
  • 数据标注
    数据序列化之后在HDFS上保存三份文本文件,分别是曝光(Impression)、点击(Click)和下单(Order)。数据标注模块根据globalid(一次搜索的全局唯一标示,类似于sessionid)和相应的团购id为key,将曝光、点击和下单关联起来,最终生成一份标注好是否被点击、下单、支付的标注数据。同时这份标注数据携带了本次展现的详细特征信息。
    数据标注通过一次Map/Reduce来完成。
    Map阶段:Map的输入为曝光、点击和下单三种HDFS数据。 用三个Mapper分别处理三种日志。数据分发的key为globalid。其中,如果点击和下单数据中的globalid字段为空(""),则丢弃该条日志(因为globalid为空无法和曝光日志join,会出现误标注)。
    Reduce阶段:Reduce接收的key为globalid, values为具有相同globalid的曝光、点击、下单数据List,遍历该List, 如果
    日志类型为曝光日志,则标记该globalid对应的曝光日志存在(imp_exist=true)。
    日志类型为点击日志,则将曝光日志的clicked字段置为1。
    日志类型为下单日志,则将曝光日志的ordered字段置为1。
    日志类型为下单日志,如果pay_account字段>0, 则将曝光日志的paid字段置为1。
    遍历List之后,如果imp_exist == true, 则将标注好的数据写入HDFS, 否则丢弃。
    数据标注的流程图如下:
    Drawing

特征矩阵

特征矩阵的作用是提供丰富的特征集合,以方便在线和离线特征调研使用。

特征矩阵的生成

特征矩阵的生成框架为:
Drawing

下面我们来详细说明一下流程。
基础特征按来源可分为三部分:
1、Hive表:有一些基础特征存储在Hive标注,如POI的名字、品类、团购数等。
2、离线计算:一些特征需要积累一段时间才能统计,如POI的点击率、销量等,这部分通过积累历史数据,然后经过Map/Reduce处理得到。
3、HDFS:特征矩阵可能融合第三方服务的特征,一般第三方服务将产生的特征按照约定的格式存储在HDFS上。
数据源统一格式为: poiid/dealid/bizareaid '\t' name1:value1'\t' name2:value2...
特征合并模块,将所有来源合并为一个大文件,通过feature conf配置的特征和特征顺序,将特征序列化,然后写入Hive表。
特征监控模块每天监控特征的分布等是否异常。 特征矩阵的特征每日更新。
添加新的特征来源,只需要按照约定的格式生成数据源,配置路径,可自动添加。
添加新特征,在feature conf文件末尾添加相应的特征名,特征名字和数据源中的特征name保持一致,最后修改相应的特征Hive表结构。

特征矩阵的使用

特征矩阵的使用框架为:
Drawing

我们来详细说明一下流程。
其中特征矩阵既提供在线的特征仓库,又可提供离线的特征调研。线上服务需要大量的特征来对POI/DEAL质量打分,特征分散会造成服务取用特征很耗时,特征矩阵将特征整合,很好的解决了特征耗时的问题。一般调研一个新特征需要积累一段时间的数据,将特征放入特征矩阵,
然后和已有的数据进行融合,可方便的构造包含新特征的训练数据。下面我们分别来看一下在线、离线和特征融合的流程。

  • 在线使用
    在线方面的使用主要是方便特征的获取,将线上需要的特征纳入特征矩阵统一管理,通过配置文件读取特征矩阵的特征,封装成Proto Buffers写入Medis(美团自主构建的Redis集群,支持分布式和容错),通过Medis key批量读取该key对应的特征,减少读取Medis的次数,从而缩减特征获取的时间,提高系统的性能。
    特征矩阵在线使用框架如下:
    Drawing

流程说明:

  1. 序列化模块通过特征配置文件从特征矩阵抽取需要的特征,调用protoBuffer Lib将特征封装成protoBuffer的格式,写入Medis。
  2. 线上通过featureLoader服务从Medis读取数据,然后通过protoBufferLib反序列化数据,取到相应的特征值。
  • 离线使用
    离线方面的使用主要是方便调研新特征。如果从线上获取新特征,由于需要积累训练数据,特征调研的周期会变长;而如果将待调研的特征纳入特征矩阵中,可以很方便地通过离线的方法调研特征的有效性,极大的缩短了特征调研的周期,提高开发效率和模型迭代的速度。
    特征矩阵离线使用框架如下:
    Drawing

其中,从特征矩阵取出待调研的新特征,格式化为 joinKey '\t' FeatureName:FeatureValue, 例如 12345 '\t' CTR:0.123,joinkey为poiid, 新特征为CTR,特征值为0.123。格式化后的新特征文件和标注好的rerank日志作为输入,经过Map/Reduce处理生成新的标注日志,用于模型训练。

  • 特征融合
    特征融合作用于离线特征调研,上篇我们提到数据标准会输出拥有丰富特征的标注日志,特征融合的目的在于将待调研的新特征通过某一个joinkey 合并到在线特征列表中,从而在模型训练中使用该特征。
    特征融合的框架:
    Drawing

流程说明: 特征融合模块可以指定任意一个或者多个join key,将离线特征加入在线特征列表。

监控系统

监控系统的目的是确保在线和离线任务的正常运行。监控系统按照作用范围的不同又分为线上监控和离线监控。

  • 线上监控
    线上监控主要是监测收集的在线特征日志是否正常,线上特征监控主要检测特征的覆盖度、阈值范围、分布异常三方面。
    三方面的监控主要分以下几个场景:
    覆盖度:监控特征的数据源是否存在或者有数据丢失。
    阈值范围:监控特征的阈值是否符合预期,防止因为生成特征的算法改变或者在线计算方法的不同等因素造成特征的最大值或者最小值发生比较明显的变化,导致特征不可用。
    分布异常:监控特征值的分布是否符合预期,主要防止因为获取不到特征,使得特征都使用了默认值,而又没有及时发现,导致线上模型预估出现偏差。分布异常主要用到了卡方距离[3]。
    特征覆盖度监控效果图:
    下图是用户到POI距离的覆盖度监控。从图中可以直观的看出,该特征的覆盖度约为75%,也即只有75%的用户能得到距离特征,另外25%可能没有开手机定位服务或者得不到POI的坐标。75%的覆盖度是一个比较稳定的指标,如果覆盖度变的很高或者很低都说明我们的系统出现了问题,而我们的监控系统能及时发现这种问题。
    Drawing

  • 离线监控
    离线监控主要检测两方面:1、离线任务是否按时完成及生成的数据是否正确。 2、特征矩阵特征的有效性。
    当离线定时任务多达数十个的时候,很难每天去逐个检查每个任务是否如期完成,这时候离线任务监控的重要性就凸显出来。当前离线监控可以根据配置文件,监控需要关注的任务,以及这些任务生成的数据是否正常。如果不正常则发出报警给任务负责人,达到任务失败能够及时处理的目的。
    特征矩阵监控的目的与在线特征的监控目的一样,监控指标也相同,所不同的是因为监控数据的获取不同,监控实现也不尽相同,这里不再赘述。

模型调研

模型训练

模型训练框架支持多种模型的训练,将训练数据格式化为模型需要的输入格式。修改模型训练的配置文件,就可以使用该框架训练模型了。
模型训练框架:
Drawing
其中,顶层是训练数据和测试数据的输入层,该层是原始训练和测试数据。
中间是模型训练的框架,框架支持多个配置项,包括配置模型算法、相应的参数、数据源的输入及模型的输出等。
底层是多种模型的实现,算法之前相互独立,每种算法封装成独立的jar,提供给模型训练框架使用,目前支持的算法包括GBDT[4]、FTRL[5]。
为了实现模型的快速迭代,模型训练支持在Spark上运行。

效果评估

模型的效果评估主要是对比新模型和老模型的效果,以评估结果来决定是否更新线上模型。
我们的系统支持两种效果指标的评估,一种是AUC[1],另一种是MAP。

MAP(Mean Average Precision)[2]是一种对搜索排序结果好坏评估的指标。

  • Prec@K 的定义: 设定阈值K,计算排序结果topK的相关度。
    Drawing
    注:绿色表示搜索结果与搜索词相关,红色表示不相关。
  • AP(Average Precision)的定义: Average Precision = average of Prec@K
    Drawing
  • AP作为排序好坏的直观理解
    Drawing
    灰色表示与搜索相关的结果,在团购中表示被点击的DEAL,从召回结果看Ranking#1要好于Ranking#2,反映在MAP指标上,Ranking#1的MAP值大于Ranking#2的MAP值。
    所以可以简单地使用AP值来衡量模型排序的好坏。

  • MAP的计算
    Drawing
    对于多个query的搜索结果,MAP为这些搜索结果AP的均值。
    实验结果表明MAP作为排序指标,对模型好坏的评估起到很好的指导作用。
    在AUC的近似计算方法中,主要考虑有多少对正负样本组合中正样本的得分大于负样本的得分,与正样本在排序中的具体位置没有绝对的关系。当正负样本的分布变化,如某一小部分正样本得分变大,大部分正样本得分变小,那么最终计算的AUC值可能没有发生变化,但排序的结果却发生了很大变化(大部分用户感兴趣的单子排在了后边)。
    因此AUC指标没法直观评估人对排序好坏的感受。

总结

本文重点介绍了美团排序系统离线各个部分的工作。离线工作在O2O排序服务中占据着举足轻重的地位,为线上排序效果的提升提供了强有力的支持。为了更好的优化我们的服务,我们仍在探索中不断前进。

参考

  1. Approximating area under the curve . Khan Academy.
  2. Information retrieval . Wikipedia.
  3. Pearson's chi-squared test . Wikipedia.
  4. Friedman, J. H. (2001). Greedy function approximation: a gradient boosting machine. Annals of statistics, 1189-1232.
  5. 在线学习算法FTRL. CSDN blog.