上一家公司倒闭,为什么我又来了创业公司?

一面冰川,一面火山。你在资本的寒冬里繁华落尽,而我在市场的浪潮下激流永进。前不久朋友圈还不断地被冠以 “去年拿到A轮的创业公司现在快倒闭完了” 的文章刷屏,另一面,最近摩拜单车一轮又一轮的融资让人不禁感叹:“这还是不是资本寒冬了!”

获得融资的新闻时常还有,但是,那些怀着改变世界的心愿喊着”我要去创业的人“是真的少了很多。在这个时候还毅然选择投身创业的人,是真的一定要创业的人。你们知道我说的是冯老师?

不是每个人当下都适合创业

最近我面试了几个前创业者,他们都很年轻,90后居多。他们做过了“CEO”、“CTO”之后,又回过头来重新找工作。在15年中间的鼎盛时期,几乎所有的媒体,甚至国家都在鼓吹创业,一大批刚刚毕业的学生就这样被卷进浪潮中。

有一位从牛津读完研回国创业的男生,想重新找一份基本的编程工作,主要是觉得自己还年轻不想丢掉技术,各方面的技能都补齐之后再考虑创业。 考虑到对数据可视化感兴趣,所以想从前端作为切入点,愿意只拿一半的薪水工作,在试用期结束之后重新考核。他很有天份、聪明,基本功也扎实,并且能够重新脚蹋实地的做一些事情。我们很愿意给予这样的机会。

遇到前后反差比较大的人,我都会问他当下的感受。经历磨练心智,同时看待事情的角度会更完整。人与人之间的差距在经历失败时会更加鲜明。我也曾有过失败之后依然看不清方向还不知道自己想要什么的混沌阶段。我不太认同“创业让人成长” 这句话,因为创业本身就有很多运气成份,不同的人创业所面临的挑战也不一样,如果王思聪创业成功了我并不会觉得他有什么特别了不起。我更认同的是“挫折让人成长”。 创业之所以迷人是因为它有太多挫折要经历,但是,你真的能够顺利的解决所有问题吗?

把别人的路走的更漂亮也是一种选择

圈子里面有另外一位90后小哥,大学在阿里实习做前端,毕业之后转正,一路在阿里成长。看起来是一个中规中矩的套路,毋庸置疑的是阿里包括很多一线的互联网公司充斥着这样的人,但是在2〜3年能成长为对行业有影响力的人寥寥无几。90后小哥算一个,这和天份、勤奋还有选择有关。

如果让这个男生毕业之后进入一家快速发展的公司跟着公司一起成长,而不是自己去做CEO,那么现在他的情况会是什么样子?

选择是一件很有意思的事情。每次你的选择都只有一次机会,不可能重来,如果你意识到每一次的选择都会改变你以后的人生轨迹,你还会轻易的做决定吗?我们的理性或者尝试理性的甚至有能力去做理性的决定吗? 这两个问题其实是矛盾的,因为我们需要不停的选择、尝试并进行校正之后才能做出适合自己的选择。到最后才能比较容易的做出理性并正确的选择。

大多数时候,我们之所以会做出我们没能坚持住的事情,皆是源于我们对于自己以及当下环境的了解还不够深刻,而多数是因为对自己的了解还不够。

平凡人如何走出“不平凡”的人生轨迹

我们中的绝大多数人都是平凡人,在智商,毅力和处事的方法上来说都差不多。可能是使用的方法和接受的引导不同而已。在我看来,不管是在任何行业做任何事情,如果需要有所造诣,都必须要经历下面的四个阶段,也包括创业本身。

新手

“万事开头难“ ,如果你想要做好一件事,它会比你想象的复杂很多。需要很多的实践总结不断的学习,才能应付自如。这个阶段有一个在行业内非常有经验的导师,非常重要。多听过来人的话是没错的。

熟手

有没有人在第一个阶段就放弃的? 就是那些因为觉得苦、累、难而选择换一件事情来做的人。创业就很典型,很多人第一次创业没有任何的积累,一切都靠摸着石头过河。又做着最苦、最难、最累的事情,放弃的人也就特别多。

如果跨过新手,在你的领域成为熟手,相当于掌握了应对和解决大多数问题的方法以及规则。就算是没有遇到过的问题,也能凭借经验有路所寻。

如果没有新挑战,此时也容易进入舒适区。

专家

从一个阶段跨到另一个阶段都会是一个坎。比如有些人在成为有经验的熟手之后,就停止向上发展了。最多换一个更好的环境,薪资更高的地方做同样的事情,就把自己放到一个温床,最终是非常容易被行业淘汰的。 在变成熟手之后就容易进入舒适区,但是想再往上又会是一个瓶颈。此时需要结合自身的特点和优势,找到属于自己的方向。

专家与熟手的区别:
带领团队,培育新人
开始建立自己的影响力
成为团队中的leader,找那些最难最有挑战的事情去做,冲在最前面。
将自己所在的领域知识进行总结,并与行业领先的水平对比并靠拢
全面优化自己的处事方法、技能,提高效率
……

大师

专家是那些在专业领域非常出色的人,他们最终都会成为企业的高管以及核心人物。我所理解的大师是那些为行业作出贡献并推动整个行业发展的人。

用几句话来形容:
方方面面追求极致
用作品打动人,影响人
工艺改造、提升(为行业带来新的方法论,以及工具)
行业影响力
以上几个阶段,每个人能够经历到哪个阶段,分别在每个阶段花多长时间?是一个很难有定论的问题,并且也不一定是按照顺序全部经历。对于大多数人来说要做到以上三段并不难,只要认真、专注、持续、虚心它就一定会到来。

放眼一看,说来容易,能做到的人并不多。为什么?

自己创业与加入创业公司

创业路上所遇到的困难是前所未有的,如果未能成功走到最后,则要自己承担时间和经济上的损失包括机会成本。如果实在是有自己的创业梦想去实现,但是在还没有准备好之前倒是可以进入一家初创公司,在一定的安全边际之内进行尝试。

如果说产品经理是CEO的预备班,那么进入初创公司可以说是在拿着工资去做创业实践。

什么时候加入创业公司

我是平凡人中的一个,08年加入“报喜”旗下的一家独立b2c电商网站,几乎与“凡客”同时起步。只是当“凡客”如日中天的时候,我们由于集团不再投入而关闭,后来带领中国的团队负责微软全球在线商城。也是在那里,技术和管理能力都得到了很大的提升,并在那个时候写了一些关于.NET的技术文章得已在圈子内形成了一定的影响力。在此以前我都没有想过会加入一家创业公司。

直到后来,14年到15年和“创业”做了一些接触,参与了一些创业周未和一些线下活动。我看到了这些团队里很多闪耀的东西:激情、活力和创新。 而这些正好是很多大外企里缺少的。创业公司快速发展的节奏,可以让每个人都有机会得以快速成长。

08年那个时段的创业公司,大多都是带着传统公司味道的创新。现今,开放、透明、自由从一开始就植根在部分公司文化里。

保持开放的心态,不带偏见的去尝试一切可以接触到的,甚至是你之前认为自己完全不可能接受的东西,有可能才最适合现在的你。

加入什么样的创业公司?

到现在为止我已经待了三家创业公司,也尝试过自己创业。
第一家是受朋友邀请去杭州一家智能家居的创业公司做技术负责人,因为文化不同,三个星期之后离开。
第二家是之前的“明星”创业公司,担任架构部的开发经理,最终因为公司倒闭而离开。
第三家就是现在所在的公司。

我依然对加入创业公司保持谨慎的态度,如果你真的要去创业公司,要多考察一下这家公司的情况。

看风险

天使轮的创业公司还是很容易死掉的,并且处于创业的初期是属于风险和困难都最大的那一类型的公司。A-B轮之间处于一个调整期,由极速发展业务会慢慢转向流程、规范化,而C轮以后的公司基本上整体文化,各大部门老大,都已经确定下来,去了之后搬砖的可能性还是很大的,只不过上升空间会比那些发展缓慢的外企、传统公司好一些。

看背景

这个背景非常的微秒,背景太多高层之间的方向容易混乱。背景如果来自于传统的公司,就要具体考察一下公司的文化。背景如果太强,需要看一下公司的团队是否能够保持艰苦奋斗的精神。如果没有背景那就看看CEO和初创团队是否有真能力和足够勤奋。

看文化

创业公司吸引人的很大原因之一,是因为它大多有着一套公平、透明的机制,至少不会埋没有能力的人和真正努力进取的人。如果这个保证不了,那基本上也就很难留住人。

到一线去,到困难最多的地方去

在加入现在公司之前,同时还有国内一家旅游OTA准上市公司二级事业部技术负责人的offer。这个团队最开始属于创新中心的孵化项目。随着业务的发展,开发、测试以及前后端人员逐渐接近30人。从薪资、 稳定性、以及预期回报的成功概率、甚至所能够拿到的资源上来讲它都是有明显优势的。那我为什么要选现在的公司?

最多实践的地方

可以说创业公司是严重缺少人才的地方,即使你在某些方面不是很成熟,只要你有想法,都是有可能获得实践机会的。我看到仅毕业两年的女生,她们是设计师,但是她们却承担着用户调研,策划,项目推进上线,上线反馈收集总结等等事情。我看到品牌的同事在负责商城的收入,我看到对数据营销感兴趣的同学在研究增长并做实验。 你想给用户创造惊喜? 那就去轮岗客服吧,在你开心用户也开心的时候,给用户随便送点优惠券或者免费产品吧。

而我,在实践着如何在资源不足,同时业务快速发展的同时逐步实现技术架构的升级以及技术团队的升级。之所有不考虑准上市公司也是因为他们的技术架构以及组织架构、文化等这些都已经成型。比起在一个成型、稳定的架构之上添砖加瓦,更吸引我的是在一团乱麻中找到联系进而重构一个平台。


最考验解决问题能力的地方

在创业公司最不缺的就是发现问题的人,产品上的问题,团队上的问题,市场的问题,甚至商业模式的问题和CEO的问题。所以我们将“办法总比问题多”列为企业slogan。如果你站在一个公司生存的角度去想问题,就会发现有现在的问题(比如产品、运营的)以及发展中的问题(比如技术框架健壮性以及团队扩展性的问题)甚至很长远的问题(我们如何建立核心竞争力,让对手永远无法赶超我们?)

那么我们怎么去解决?没有人可以给你答案,我们只有走过去才知道。所以这段时间的经验才会变得有成倍的价值。

需要不断转换思路的地方

之前我们在别的地方用过的方法已经不行了,几个月前我们在这里用过的方法也可能不行了。比如要从一堆问题中找到第一个能够快速解决并能带来最大回报的问题是哪一个?最近看到一个挺有意思的概念“双环学习”。


双环学习是不同层次的问题解决逻辑。对行动背后的想法加以检视,反思我们看问题的心智模式,进而才能采取真正有效的行动。当发现错误时,其改正方法包括对组织目标,政策和常规程序的修改。双环学习向组织中根深蒂固的观念规范提出质疑挑战,有利于人们提出与以往不同的问题解决办法,并获得巨大的飞跃。

而这个思路的转换就发生在“双环学习”那里,当一种方法解决不了问题或者解决的不是那么好的时候,我们就需要对问题的根源进行反思,找到更合适、更有效的办法。

不能停止学习的地方

我害怕温室,是的。每个人都有自己的安全边际,在达到自己的安全边际之后,就很容易进入舒适区。而这个快速发展的时间,你被时代淘汰可能只需要一年的时间。而那些最能逼迫我们成长的,就是我们遇到的那些问题和挑战。


和舒服相比,开心更重要

这是一个很年轻、自由、开放的团队。尽量少的规章制度和流程,你可以和公司的任何人坦诚沟通提出建议和问题,包括CEO。

我们是谁?做了什么?以及将来要做什么?

生意专家,为实体商户提供一站式开店产品。通过一个账号,管理繁琐的收银记账、客户关系、商品利润,并集成了各种创新的电子商务工具,帮助商家降低经营成本,提升顾客购物体验,增加销售收入。

我们尽量将软件设计的简单、好用。同时集成最新的一些互联网工具(比如微信扫码支付、手机微店等),并可以满足所有零售实体店和大部分服务类店铺的日常管理,比如服装店、精品店、化妆品店、鞋店、鲜花店、蛋糕店、文具店、宠物用品店、西餐厅、咖啡馆、美容美体会所、健身俱乐部等等。

未来我们还会涉及到实体店铺的供应链管理、打通B端和C端、以及第三方的开放平台和更多的开发者代享收益。

打造工程师文化

如今的互联网公司甚至只要是和技术沾边的公司开口必谈极客精神、工程师文化。虽然现在资本市场已经降温,但是技术环境里面浮躁的氛围似乎还在。不信你看看到处举办的各种技术大会,讲来讲去都是那么几个话题。再加上公众号的一些推波助澜,很多人看过几篇关于淘宝、京东之类的大型网站演进方案,就觉得自己也应该是一名架构师,去处理那些高并发的问题。或者对那些新兴的技术抱有莫名的狂热,照着网官的例子写了个小Demo就说自己熟悉了。

在我们内部一直奉行的标准是:

  • 喜欢研究技术,但不盲目崇拜新技术,善于用最合适的技术来解决问题
  • 精益求精,不分大小问题,即使是一个简单的数据导入导出也可以用很优雅的方案解决
  • 在研究那些另人目炫的高大上架构之前,先把代码写漂亮
  • 除了技术,先做到熟悉业务
  • 主动分析问题、解决问题、并善于总结和分享的习惯

我们是一家提供SaaS服务的公司,技术将会一直是我们的核心竞争力之一。我们将努力构建一个开放、透明、公平、自由同时能够为技术社区做点事情的团队。

想为创业的同伙做点事情

我相信有很多在创业的伙伴们和我们一样,面临着资源紧缺,业务快速发展的问题。但同时系统的稳定性以及平台的基础建设又是刻不容缓。有没有可能我们共同做一些事情?比如自动部署、统一日平台,统一任务调试,监控中心等等?这些其实我们已经做过了一些尝试,但还是需要时间来让它们更加健壮,如果你们团队也需要这些东西,不妨我们花时间交流一下(可以在公众号后台留下你的信息和联系方式)。

构建技术团队

我们的后端用ASP.NET实现 ,正在用Web API做前后端分离和SOA化。也有一些基础服务用Node实现,移动端正在用ReactNative做重构, 在前端这块,我们也在积极的尝试Vue。

下面打一个小小的广告〜
生意专家正在进行B轮融资,我们需要更多志同道合的小伙伴来加入我们。牛B的.NET后端工程师、业务架构师、基础平台架构师、DevOps、前端架构师/Leader、iOS以及Android工程师,有兴趣或者有推荐的朋友公众号后台联系。薪资Open、团队年轻、办公地点在外滩SOHO。

JOIN OUR PARTY

如何运用笔记本,提升你的核心竞争力?

我是名重度手写爱好者,虽然现在大多数人都已经习惯用电脑代替手写。但是,我还是一如既往地保持着学生时代的书写习惯,因为只有亲手写下的文字,才能感受到其庄重和特别的意义。

有空的时候,我会翻一翻笔记本,每次读读写过的文字,就会让我不禁回忆起当初写下这些文字的一些生活片段,这是一种极好的生活体验,也是自我沉淀和回忆的一种方式。

在上一篇文章中《新的一年,我为自己准备了四本笔记本》主要总结了2017年这四本不同笔记本的用途和规划。

不论在什么时候,本子永远都只是作为工具而存在,而最本质的始终应该是人。

任何一本笔记本,任何一种记录方法,只要是能够提高工作和学习效率,便于日后查阅检索的,我们都应该去大力提倡并且积极地去践行。

能够最大化地去挖掘和利用笔记本的用途和价值,不仅可以大大地提高工作和学习效率,还可以让你的人生收获意想不到的惊喜。

笔记本用途之一:梦想笔记本

每一年的年尾,对于大部分人来说,都是最忙的时候。因为年尾需要对这一年的学习工作生活做一个细致全面的盘点总结,找出自己在全年中的不足和遗憾,并根据人生梦想金字塔的原则,对下一年做出一个详实可行的人生规划。

我在利用梦想笔记本制定人生规划的时候,按照时间长短,一般分为长远规划和近期规划。比如长远规划中未来想成为行业top10,手绘达人,书法达人,开一家自己的小店……再根据梦想需要达成的时间分配到每一年的计划中。

短期计划主要以年月周为单位制定单元愿景。

在新的一年开始的时候,在本子的第一页画一棵梦想树(不会画画的可以找图片打印),然后用便签写上这一年打算实现的梦想,按照所属领域,贴到这棵树不同的分支上,并在这张纸的空白处附上一句鼓励自己的话,比如:心不变,脚在动,方能圆梦。

(附图 梦想树  )

图片发自简书App

也可以选择用思维导图工具做年度梦想规划,然后打印出来粘贴到本子上。

思维导图的工具推荐:

FreeMind,XMind,Visual Paradigm,Community Edition。

在制定月计划时,可以利用现有的日历格式,或者按照自己的需要制定表格。在月初先把这个月固定的事件写出来,然后再合理规划安排剩余的时间。

图片发自简书App

 

图片发自简书App

注意:如果选择手绘时,颜色最好不要超过四种。

 

图片发自简书App

在制定日规划时,也可以充分利用这些现成格式的便签纸粘贴到本子上。这样做的好处是不仅方便快捷,而且也可以拓展本子当页的容量。

如果时间和条件允许,也可以采取纯手绘的方式记录。

 

图片发自简书App

 

图片发自简书App

 

笔记本用途之二:效率笔记本

 

图片发自简书App

梦想笔记本是根据时间管理对人生进行规划,而效率笔记本是按照事情的紧急程度,把需要做的事情归为四类:紧急重要,紧急不重要,重要不紧急,不重要不紧急,然后按照事情的优先级别去分别对待和处理各类事件。

读书 甘特图

 

图片发自简书App

任务清单

 

图片发自简书App

在这本笔记本中,除了年度,月计划之外,也可以根据需要为某项任务或者技能单独设置打卡页。

比如监督自己的读书情况,可以在笔记中利用甘特图,左边列出书单,右侧用马克笔以番茄钟为单位记录读书进度。

比如想要完成一项任务,迎接考试,背单词,减肥,健身等可以在本子中设置相应的任务清单,把需要完成的任务进行拆分,分配到每天的待完成任务清单中,每天打勾来督促计划的完成。

笔记本用途之三:思考笔记本

图片发自简书App

 

图片发自简书App

 

图片发自简书App

笔记本不仅可以设置计划,督促进度实施,进而实现梦想,同时,也是本灵感或者思考的笔记本。我一般会随时随地记录一些想法,或者是一些微课的记录,有时候是干货复盘。

这类笔记本在应用的时候,随一般使用a5大小的本子,用两页合并起来,记录一件事情。

最上面用大号的马克笔或者荧光标记出题目,然后在旁边标注出记录的时间,主要人物,地点以及关键词,以方便日后检索。

在记录的过程中要注意留白,以便日后补充或者总结。如果没有空余地方或者忘记留白,可以用便签纸写下来粘贴到本子上。

在记录的过程中要注意内容间的逻辑结构,是平行式?递进式?还是有因果关系?不同结构的内容用不同的符号标识出来,最后用荧光笔在关键的地方涂抹,以突出重点。

最后,灵感思考性的笔记本要注意及时复盘,并在结尾处做出总结,列出是日后的行动方案。

今天就先说这么多啦,日后还会慢慢拆解笔记术。希望我今天分享的内容对你有用,你恰好需要、刚好喜欢。

~END~


码字辛苦,如果这篇文章对你有所启发,点个“红心”支持我一下吧!

 

文/梦归秦淮(简书作者)
原文链接:http://www.jianshu.com/p/0e22a852a174
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

科学上网利器(1) – Shadowsocks vps设置方法

Shadowsocks是现在最流行的科学上网方法。这篇文章就告诉大家怎么才能利用Shadowsocks实现科学上网,畅游网络。

1.Shadowsocks特点

我自己的感受:随机启动24小时后台运行(占内存10MB以内,基本不怎么耗电),跟人直接置身墙外使用手机的感受差不多。

  • 1.省电(在电量查看里几乎看不到它的身影)
  • 2.支持开机自启动,且断网无影响,无需手动重连(方便网络不稳定或者3G&Wi-Fi频繁切换的小伙伴)
  • 3.可使用自己的服务器(安全和速度的保证)
  • 4.支持区分国内外流量(传统V-P-N在翻出墙外后访问国内站点会变慢)
  • 5.可对应用设置单独代理(5.0之前的系统需要root)

Shadowsocks的正常使用需要服务端(其实所有的翻-墙方式都需要服务端),搭建服务端需要你拥有一个属于自己的VPS。下面是我自己精挑细选出来的三家VPS供应商(如果你坚持认为我是在给这三家VPS打广告,你就不用往下看了),这三家我都在用,感觉不错,当然你也可以选择其他家的VPS产品。

2.VPS供应商

2.1 DigitalOcean

KVM架构    512MB内存  20GB硬盘   1TB流量/月 5美元/月(折合人民币30元/月) https://www.1-17.cn/go/digitalOcean(使用本链接注册账户立即到账10美元)

2.2 搬瓦工

1、OpenVZ架构 512MB内存   5GB硬盘 500GB流量/月 9.99美元/年(折合人民币5元/月) https://www.1-17.cn/go/host512(温馨小提示:此款VPS的年付选项在Billing Cycle的下拉菜单里) 2、OpenVZ架构 128MB内存   3GB硬盘 300GB流量/月 5.99美元/年(折合人民币3元/月) https://www.1-17.cn/go/host128 3、OpenVZ架构  96MB内存   2GB硬盘 200GB流量/月 4.99美元/年(折合人民币2.5元/月) https://www.1-17.cn/go/host96 4、OpenVZ架构  64MB内存 1.5GB硬盘 100GB流量/月 3.99美元/年(折合人民币2元/月) https://www.1-17.cn/go/host64(内存太小,有小伙伴反映在搭建过程中会报错, 慎用 ) 注:搬瓦工域名在部分地区被墙,可能需要翻-墙访问,但在上面购买的VPS不受影响。

2.3 Linode

Xen架构     1GB内存  24GB硬盘   2TB流量/月 10美元/月(折合人民币60元/月) (只推荐给对连接速度和网络延迟有极致追求的用户,楼主自己也在用) https://www.linode.com/

2.4 shadowsocks(强烈推荐!裂墙推荐!可以看1080P!)

完全不用设置!买了就上!不用输入代码,不用操作服务器!这个网站是专业的,你懂!

https://shadowsocks.com/

Linode只能使用信用卡支付,官方会随机手工抽查,被抽查到的话需要上传信用卡正反面照片以及可能还需要身份证正反面照片,只要材料真实齐全,审核速度很快,一般一个小时之内就可以全部搞定。账户成功激活以后,就可以安心使用了。DigitalOcean和搬瓦工两家的VPS都支持PayPal付款(DigitalOcean也可以选择在账单里绑定信用卡进行支付)

2.4 技术特点

我简单解释一下三家差价比较大的原因和技术特点: OpenVZ为不完全虚拟化技术,每个VPS账户共享母机内核,易受同一母机下其他VPS的影响,几乎不能单独修改内核。Xen和KVM为完全虚拟化技术,各VPS之间互相独立,基本互不影响,而且可以任意修改内核。 这三种架构对我们搭建shadowsocks服务器来讲最直观的区别就是,Xen和KVM可通过系统内核修改来优化服务器,大幅度提升shadowsocks的连接速度,尤其体现在晚高峰的时候。 我在同一时间段用100MB的文件简单的在自己的三台VPS上面测试了一下shadowsocks的连接速度: 搬瓦工(9.99美元/年)的平均下载速度在1.36-3.43Mbps之间(174-439KB/S),也就是说速度表现不是很稳定,速度快的时候也可以看下YouTube 720p,速度慢的时候YouTube 480p还是没有问题的。DigitalOcean(5美元/月)的平均下载速度稳定维持在3.70Mbps以上(474KB/S),这个速度已经是我本地物理带宽的上限,所以VPS的速度上限未知,基本在大部分时候YouTube 1080p都可以流畅播放,任意时刻YouTube 720p都没问题。 Linode(10美元/月)的上传下载速度均达到带宽满载,官方给出的数据是“40 Gbit Network In / 125 Mbit Network Out”,由于楼主本地带宽有限,有热心小伙伴分享了他在联通LTE网络环境下的测试结果,数据显示速度可达60M以上(7.83MB/S),略恐怖,意味着任意时刻YouTube 1080p秒开,只要你的带宽够,一般来说看4K也是没有问题的。(Linode除了速度快之外,还有一个杀手锏就是提供日本节点,ping值70ms以内,有超低网络延迟需求的小伙伴可以重点考虑下) 个人建议 ,对连接速度和稳定性尤其是网络延迟有极高要求的首选Linode(只有最快,没有更快),有较高要求的推荐DigitalOcean(一分价钱一分货),对于普通用户来讲,搬瓦工就可以(性价比高)。 ——————————-

2.5 测试

2.5.1 搬瓦工各节点测试IP

Los Angeles     104.194.78.3 Florida       74.121.150.3 Phoenix       198.35.46.2

2.5.2 DigitalOcean各节点测试域名

San Francisco  speedtest-sfo1.digitalocean.com 新加坡       speedtest-sgp1.digitalocean.com New York      speedtest-ny1.digitalocean.com Amsterdam     speedtest-ams1.digitalocean.com 英国伦敦      speedtest-lon1.digitalocean.com

2.5.3 Linode各节点测试域名

Tokyo,JP     speedtest.tokyo.linode.com Fremont,CA    speedtest.fremont.linode.com Newark,NJ     speedtest.newark.linode.com Atlanta,GA    speedtest.atlanta.linode.com Dallas,TX     speedtest.dallas.linode.com London,UK     speedtest.london.linode.com 请在CMD下自行使用“ping IP -t”或“ping 域名 -t”命令来测试不同位置的机房与你的电脑之间的ping值以及丢包率(Ctrl+C退出测试)。 如果还是不知道该选择哪个节点的小伙伴,搬瓦工一般选用Los Angeles节点居多,DigitalOcean一般选用San Francisco节点居多(都在美国西海岸),而Linode一般选择“Tokyo,JP”(日本节点)或者“Fremont,CA”(美国西海岸),由于Linode日本节点ping值很低(70ms左右)、销售火爆,可能会一时无货,如果遇到无货,等一会再试试(我也是刷新了一会就有了)。一开始节点选择的不理想也不要紧,以后还可以方便的切换机房。 特别对比: Linode的Fremont,CA节点与DigitalOcean的San Francisco节点相比,同在美国西海岸,ping值和丢包率基本差不多,但Linode的网速明显更快。

3.部署 Shadowsocks 服务

3.1  选择个人喜欢的SSH客户端,我这里选择的是XShell,百度下载即可 3.2  新建连接,如图所示填写相关内容,并且连接科学上网利器(1) - Shadowsocks vps设置方法科学上网利器(1) - Shadowsocks vps设置方法3.3  等待片刻,连接成功之后,输入如下命令(每行执行一次) 感谢 tennfy 提供的一键安装脚本

  1. wget http://tennfyfile.qiniudn.com/debian_shadowsocks_tennfy.sh
  2. bash debian_shadowsocks_tennfy.sh

3.4  安装过程中会让你输入 Shadowsocks 的配置,如图所示科学上网利器(1) - Shadowsocks vps设置方法3.5  安装完成之后,最后会显示你的  Shadowsocks 具体信息,请妥善保存!

  1. Congratulations, shadowsockslibev install completed!
  2. Your Server IP: xxx.xxx.xxx.xxx
  3. Your Server Port: xxxx
  4. Your Password: xxxxxx
  5. Your Local Port: 1080
  6. Your Encryption Method:xxxxxx

4.本地代理设置

4.1  下载 Shadowsocks-gui 软件;

4.2  配置软件;

  1. 服务器IP:填写你的VPS IP
  2. 服务器端口:填写刚刚的[Your Server Port]
  3. 密码:填写刚刚的[Your Password]
  4. 加密方式:选择刚刚的[Your Encryption Method]
  5. 代理端口:填写你想设置的端口号,待会儿使用

科学上网利器(1) - Shadowsocks vps设置方法4.3  右击通知栏中的 Shadowsocks ,点击 更新PAC,然后点击 启动系统代理,最后在代理模式中选择 PAC模式;这样可以在使用科学上网姿势的时候不影响国内网站的正常使用!科学上网利器(1) - Shadowsocks vps设置方法4.4  设置Internet选项,在 连接-局域网设置-代理服务器-填写 接下来请直接访问Shadowsocks本地设置教程。链接在这。 4.5  开始体验独享的科学上网服务吧!

后台管理UI的选择

最近要做一个企业的OA系统,以前一直使用EasyUI,一切都好,但感觉有点土了,想换成现在流行的Bootstrap为基础的后台UI风格,想满足的条件应该达到如下几个:

1、美观、大方、简洁

2、兼容IE8、不考虑兼容IE6/IE7,因为现在还有很多公司在使用Win7系统,系统内置了IE8

3、能通过选项卡打开多个页面,不想做单页,iframe也没关系

4、性能好,不要太笨重

5、最好以Bootstrap为基础

6、还希望在以后别的系统中能够复用。

一次次反复纠结的选择开始了,给大家介绍下我考虑过的UI,也给大家一个参考。

一、EasyUI

easyui是一种基于jQuery的用户界面插件集合。

easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能。

使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面。

easyui是个完美支持HTML5网页的完整框架。

easyui节省您网页开发的时间和规模。

easyui很简单但功能强大的。

优点:轻量、功能强大、免费、兼容性好、帮助详细、使用的人多生态好

缺点:非响应式布局、某些系统看起来有点土(客户与老板的感觉、确实与最新的那些UI有差距)

获得:上网搜索、网盘搜索大把被搭建好了基础功能的框架。下载

下载后大家可以替换成最新的1.5版的easyui

官网:http://www.jeasyui.com/,有免费版,有商业版,商业版收费,帮助非常详尽

资源:http://www.jeasyui.net/,easy是国外的产品,这个网站类似官网的中文版

二、DWZ JUI

特点:DWZ富客户端框架(jQuery RIA framework), 是中国人自己开发的基于jQuery实现的Ajax RIA开源框架. 设计目标是简单实用,快速开发,降低ajax开发成本。

官网:http://jui.org/

下载:https://github.com/dwzteam/

三、HUI

H-ui前端框架是在bootstrap的思想基础上基于 HTML、CSS、JAVASCRIPT开发的轻量级web前端框架,开源免费,简单灵活,兼容性好,满足大多数中国网站。分了前端UI与后端UI。

官网:http://www.h-ui.net/H-ui.admin.shtml 后台,http://www.h-ui.net/ 前台

下载:https://github.com/jackying/

缺点:感觉用的人少,名气小,资料不全,配套组件不多,但国人的产品符合国人的口味。

四、BUI

BUI她是基于jQuery,兼容KISSY的UI类库,专致于解决后台系统的框架方案,BUI提供了丰富的DPL含有强大的控件库对业务做了精细的分析。

官网:http://www.builive.com/

下载:https://github.com/dxq613/bui

感觉也比较冷、与HUI有点类似的优点整体框架符合我的要求,但风格有种说不出的感觉。

五、Ace Admin

响应式Bootstrap网站后台管理系统模板ace admin,非常不错的轻量级易用的admin后台管理系统,基于Bootstrap3,拥有强大的功能组件以及UI组件,基本能满足后台管理系统的需求,而且能根据不同设备适配显示,而且还有四个主题可以切换。以前收费,好像最新版不再收费了。

下载:https://github.com/bopoda/ace

官网:http://ace.jeka.by/

感觉比较全,功能强大,组件多,美观,只是用了很多不同的插件,兼容性不错。

兼容的浏览器:

  • Internet Explorer 10
  • Internet Explorer 11
  • Internet Explorer 8
  • Internet Explorer 9
  • Latest Chrome
  • Latest Firefox
  • Latest Opera
  • Latest Safari

使用的插件:

View Code

使用到的插件并没有分开存放,使用起来会麻烦一些。

另外该插件也被很多人简化、修改成选项卡+iframe风格了。

六、Metronic

Metronic 是一套精美的响应式后台管理模板,基于强大的 Twitter Bootstrap 框架实现。Metronic 拥有简洁优雅的 Metro UI 风格界面,6 种颜色可选,76 个模板页面,包括图表、表格、地图、消息中心、监控面板等后台管理项目所需的各种组件。

页面规范、精致、细腻、美观大方;功能强大、非常全;在所有我看到过的基于Bootstrap的网站模版中,Metronic是我认为最优秀的,其外观之友好、功能之全面让人惊叹。Metronic 是一个自适应的HTML模版,提供后台管理模版和前端内容网页模版两种风格。

优点:

支持HTML5 和 CSS3
自适应,基于响应式 Twitter Bootstrap框架,同时面向桌面电脑、平板、手机等终端。
整合AngularJS 框架。
可自定义管理面板,包括灵活的布局、主题、导航菜单、侧边栏等。
提供了部分电子商务模块:CMS, CRM, SAAS。
多风格,提供了3个前端风格,7个后端管理面板风格。
简洁扁平风格设计。
700多个网页模版,1500多个UI小组件,100多个表单,80多个jQuery插件。
提供说明文档。

缺点:

太大了,真的不知道从那里开始

对IE的兼容不好,虽然官方声称支持IE8,但我测试结果不支持

收费,今天的价格是$28

七、H+ UI

官网的介绍:H+是一个完全响应式,基于Bootstrap3.3.6最新版本开发的扁平化主题,她采用了主流的左右两栏式布局,使用了Html5+CSS3等现代技术,她提供了诸多的强大的可以重新组合的UI组件,并集成了最新的jQuery版本(v2.1.4),当然,也集成了很多功能强大,用途广泛的jQuery插件,她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA等等,当然,您也可以对她进行深度定制,以做出更强系统。

官网:http://www.zi-han.net/theme/hplus/

与Metronic非常像,插件非常多,收费998人民币。

八、Admin LTE

AdminLTE 是一个基于Bootstrap 3.x的免费主题,它是一个完全响应式管理模板。高度可定制的,易于使用。适合从小型移动设备到大的台式机很多的屏幕分辨率。

下载:https://github.com/almasaeed2010/AdminLTE (目前star 11652+)

预览: http://almsaeedstudio.com/preview/

官网:Free Bootstrap Admin Template

浏览器支持:
IE 9+
Firefox (latest)
Chrome (latest)
Safari (latest)
Opera (latest)

插件:

View Code

特点:

  • 响应式布局,支持多种设备
  • 打印增强
  • 丰富可排序的面板组件
  • 18个插件与3个自定义插件
  • 轻量、快速
  • 兼容主流浏览器,IE8不兼容
  • 支持Glyphicons, Fontawesome和Ion图标

整体感觉与Metronic类似、功能强大,UI精致,被许多公司使用。

评论中感谢网友(dotNetDR_醉丶千秋)推荐,确定是值得关注的一个UI。

九、其它UI

十、总结

没有形式就没有内容、UI重要,特别是当客户与老板不懂太多关于代码、功能、性能的时候。

上面的UI你也许可以通过各种途径获得,但商业应用请慎重。

想来想去还是拿不定主意,不过有点想法:

1、使用HUI和bootstrap

2、使用EasyUI的框架,内容页使用HUI+BootStrap,iframe选项卡

3、从各个功能强大的页面中拿一些插件过来

数据分析驱动用户增长

作者:邹昕
链接:https://zhuanlan.zhihu.com/p/21435486
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

非常荣幸知乎邀请我做了一次关于如何通过数据分析驱动用户增长的直播, 计划是先讲大概半个小时左右,然后有半个小时的时间大家自由提问。 后来实际情况是先花十几分钟时间回答了几个问题,然后讲了半个小时多点,再花了大概一个小时回答后续的问题。
由于是第一次做直播,对系统也不是很熟悉,有很多可以提高的地方。很多问题很有意思,所以花了点时间把内容整理成文字,希望对更多的人有帮助。
由于个人水平有限,同时需要兼具到不同的需求,这次直播的内容适合作为入门读物。
自我介绍先简单介绍一下我自己。我是清华生物系本科和硕士毕业,之后去北卡大学念药物药理学的博士,中间发现自己不适合走生物科研的路,所以在博士开始两年多的时候决定转硕士走人。很幸运的是当时的导师也很理解和支持我,拿到硕士之后我重新申请了北卡州立大学的数据分析的项目。毕业之后在 Discover 公司做信用卡风险模型和数据分析,大概工作了两年多。Discover 在国内有一个数据分析部门,发展得挺快的,现在应该是一两百人的样子,部门在上海,国内的翻译叫高沃,意思是高山沃土,有点奇怪的名字,听起来像是做农业啊化肥啊什么的。
最后在今年年初的时候跳槽到 Facebook 做数据科学家,我们组是做用户增长的,我负责的一块主要是跟用户好友关系、好友推荐系统相关的数据分析。今天的分享就是关于互联网公司是如何用数据分析来驱动用户增长的。
需要说明的一点,由于 Facebook 有严格的保密要求,所以这次直播内容肯定是不会透露属于内部消息的数据、产品或者策略之类的,我们公司对这个要求是非常的严格。所以直播里提到的例子如果涉及到 Facebook 的话,都会是已经公开的信息。

行业特点

说到互联网产品的用户增长,可能大家都有所耳闻。与传统行业相比,互联网相关的产品有几个不一样的特点。一是由于网络效应,由于互联网相关产品更容易扩展,更有可能出现爆炸性增长的局面。二是互联网行业更容易出现赢者通吃的局面,比如优酷和土豆的合并,携程和去哪的合并,立马形成行业垄断。三是在行业发展前期一旦有一个好的产品领先,后来者就很难翻盘了,所以互联网行业会出现前期大量烧钱抢占市场和用户的局面,比如 Uber 是一个特别典型的例子。
Retention / 用户留存

对用户增长来说,什么是最重要的呢?有人说是用户最重要,有人说是 Acquisition 也就是新用户获取最重要。在 Facebook 内部来说,以及很多热门 Startup 来说,最重要的是 retention,也就是用户留存。这也是为什么十几年前,Facebook 刚创立的时候,大家通常用的指标都是注册用户。Mark Zuckerberg 从一开始就很明确,注册用户并不是最重要的,最重要的应该是活跃用户。
用户留存曲线

好的产品和不好的产品用户留存是什么样子的呢?有这里就需要提到一个概念 J 曲线。如下图所示,横轴是从注册开始到现在的天数,纵轴是活跃用户的比例。这里用的例子是月活用户,也就是说如果过去一个月之内你用过这个产品,那么你就算是一个 active user。很显然,注册开始第一天,大家都是月活,第二天第三天直到30天都是如此,从第31天开始,有一部分人不是月活了,因为他们只在第一天用了,之后就再也没用过,以此类推第32天33天等等。一个好的产品,应该是像黑色曲线这样,随着时间的推移会有下降,但是到一定程度之后会趋于跟 x 轴平行。如果你看到一条红线这样的用户留存曲线,那就你就需要好好研究一下你的产品了,因为这意味着随着时间的推移,所有注册用户都会放弃你的产品。那么即使你把全世界的人都抓来注册了,终究月活用户数也会变成0。

用户留存 vs. 新产品

推出新产品的时候,用户留存曲线是非常重要的,以确保有一个足够好的产品,接下来才是把这个产品推向更多用户的时候。其它互联网公司比如 Airbnb 也有类似的策略。当然不同的产品,关注的指标很有可能是不一样的。比如说微信,假如你看月活的话,那可能意义就不是很大了。一个月用一次微信的用户,说有不了什么问题,更应该关注的可能是日活,或者发了多少条信息这种。那么对于 Airbnb 来说,月活则是一个比较适用的指标,其它比如每个月有多少房间预订之类,也是应该关注的指标。
神奇时刻 — magic moment / Ahhhaa moment

假设现在你有一个很好的产品,用户注册之后过一了段时间也还是有很多人留下来继续使用。那么接下来怎么做用户增长?
很多社交网络产品都提到一个概念叫 magic moment,直译过来的话就是神奇时刻。什么算 magic moment 呢?比如对于 Facebook 来说,你注册之后,在上面看到你现实生活中认识的好友,看到他们的照片,状态等等。这个时候对新用户来说,心里想的是啊!原来 Facebook 是干这个用的。比如对于知乎来说,可能是在答了一个题之后,看到小红点显示有人点赞,或者是感谢,或者是关注等等。同样,对于LinkedIn,Twitter,微信,微博也是类似,新用户或者是找到他们想要联系的好友,或者是找到他们想要粉的人,这一时刻让用户有继续使用下去的动力。

例子 — 用户留存率 vs. 好友数

对于很多社交网络产品 比如说 LinkedIn 来说,一个很简单便是很有效的分析方法,就是看用户留存率跟好友数的关系。当你的好友数低于某一个值的时候,用户留存率会非常的低。当好友数量达到一定数量的时候,再增加好友数对留存率的影响就很小了。那么确定下来这个值之后,工程师们要做的就是以这个为目标进行各种产品改进、优化、新产品开发等等。有人可能会问了,这里面有个很显然的问题,就是你只能说明这是相关性,而不是因果性。但是最终解决办法其实很简单,不管 Facebook 也好,微信也好,如果你没有好友的话,肯定是没有人会继续用的。所以这里面肯定有因果性在里面。同时肯定也有相关性,很大程度上二者肯定是相互影响的,通常来说好友越多,更有使用产品的动力。产品使用的更好,好友也更多。
A/B 测试

上面一段提到在设定某一个目标之后,工程师们接下来就要通过各种产品改进、优化、新产品开发等,互联网公司基本上都是通过 A/B 测试来确定是否发布产品,是公司产品开发非常重要的一环。在湾区这边有一个 meetup 小组就是专门讲 A/B 测试的,像 Uber, LinkedIn, Netflix 等等都在这个小组介绍过各个公司是怎么做 A/B 测试的。
接下来就以 Airbnb 为例子来说明 A/B 测试为什么重要,如何做 A/B 测试,以及中间可能遇到的问题。

例子来源:nerds.airbnb.com/experi

为什么要做实验

实验是最有效的证明因果关系而非相关性的工具。以 NBA 为例,数据显示,当科比出手10-19次时,湖人的胜率是71.5%;当科比出手20-29次时,湖人的胜率骤降到60.8%;而当科比出手30次或者更多时,湖人的胜率只有41.7%。
根据这组数据,为了赢球,科比应该少出手?并不一定如此。有可能科比出手少的时候是因为队友状态好,并不需要他出手太多。也有可能是因为球队早早领先,垃圾时间太多。而出手太多的比赛是因为比赛艰难或者队友状态不好,需要他挺身而出。当然,以上也只是可能之一,具体是什么情况光靠这组数据并不能得出任何结论。

A/B 测试的用处
对 Airbnb 来说,很多时候一个新产品的发布,是很难说明结果到底是新产品的呢,还是别的因素。如下图所示,红色部分是新产品发布和撤回的时间段,这期间的变化到底是因为产品呢,还是别的因素?有可能用户受到时间的影响,比如周中和周末的区别,是否假期,天气等等。对于 Airbnb 这种旅行相关的公司来说,这些外在影响尤其大。通过实验则可以把产品的影响跟别的外在因素的影响区分开,产品做一个小的改变,跟对照组进行对比,这就是 A/B 测试。

实验需要跑多久?

A/B 测试的老大难问题:实验跑多久最合适?结束太早可能产品的真正效果还没有足够时间体现出来,实验拖太长会影响产品迭代改进的效率,这对诸如 Airbnb 这样的初创公司还是 Facebook 这样讲究 move fast 的公司来说,都是很麻烦的事情。
例子 — 搜索价格范围

Airbnb 曾经测试过把价格选择范围从最高的$300改成$1000。一周之后,根据下图的红线显示,实验效果显著 (p<0.05),也就是说改成$1000之后预订会增加。但是事实上实验继续进行下去的话,你就发现这个改变其实是没有效果的,最终也没有统计显著 (p>0.05)。


不过虽然这个测试的结果是中性的,考虑到有一部分用户的确需有查找高端房源的需要,Airbnb 还是决定把最高搜索价格从$300改成了$1000。那么到底实验应该进行多久呢?通过各种复杂的统计分析,Airbnb 总结出了一套动态决定边界(Dynamic decision boundary),综合考虑p值和实验进行的天数。

全面理解实验结果

通常来说,选定一个或几个指标(metrics)来分析实验结果,以免主观挑选实验结果(cherry picking)。但是仅仅看一个指标也是不行的,很容易就错过全局,一叶瞕目。比如 Airbnb 做过一个非常大的改动,在用户搜索的结果显示里,更加强调房源的照片和在地图上显示的地点。项目非常大,大家都认为结果会很好,用户调研显示也是如此。
尽管如此,Airbnb 还是决定如常做一下 A/B 测试,然后发现了问题:结果基本是中性的。幸好 Airbnb 的数据科学家们并没有就此结束,相反,他们看了看不同的方面,包括在不同浏览器的效果,发现 IE 是最大问题所在。很快进一步发现,新产品在某些老版本的 IE 上会有 bug,以至于预订率了超过3%。修复了在 IE 上的 bug之后,立马预订率就变成提高超过2%,与其它浏览器上效果类似了。这是一个非常典型的例子。很多时候看到中性的实验效果,不妨根据不同的维度进行细分,比如浏览器、同家、用户类型等等。

问题: Twitter 2015 年用户增长为 11%,这是否存在增长的危机?为什么?

结果 too good to be true

不管是自己打造的 A/B 测试系统,还是使用第三方的系统,都是有可能出问题的。如果默认系统都是有效的话,有时候麻烦就来了。有时候可能是使用过程中出了问题,有时候可能是系统本身的问题。最简单的办法是跑个 A/A 测试,也就是实验组和对照组都是一样的产品,然后看系统结果怎么说。Airbnb 做过一系列 A/A 测试,发现在实验组和对照组的用户数量基本一致的时候,系统是正常工作的,显示中性的结果。但是当对照组的用户远超实验组(75% vs. 25%)的时候,结果显示高达-15%的偏差。最后发现原因在于对用户的追踪问题,很大一部分用户没有正常的记录到实验组里去。未必每一个公司都会碰到完全一样的问题,不过适当的进行 A/A 测试,确保系统正常工作是非常重要的。

据驱动用户增长的前提

首先需要有一个好的产品。其次在创业初期,所有人都需要有这个概念。最后需要要 infrastructure 的支持,诸如 logging,dashboard,A/B 测试系统等的建立。例如:Uber 的 A/B 测试系统

eng.uber.com/wp-content

彩蛋:知乎数据分析的机会

问答环节Q: 数据分析的用户量达到多少,分析结果才靠谱。A: 通常对大的互联网公司来说是百万级别,当然这对于多数公司是没法有这么大的用量的,所以通常情况下来说需要看产品本身用户量的大小,个人感觉一般一万以上是一个基准。当然除了用户量大小以外还需要看统计检验的显著性,以及实验的时间来综合考虑。
Q: 工作中主要使用的分析工具是什么?除了 Python, R, SQL,平时工作中是否还有更多或者更有针对性的工具使用要求?A: 工作中最主要使用的分析工具是 SQL, SQL 和 SQL。通常 ad-hoc 的一些分析基本都是 SQL 来做,如果数据量大了之后通常就是 Hive,但是 Hive 基本语法跟 SQL 的类似的。再就是用 Python 写 pipeline,这里面 python的作用是写一个自动跑 SQL 的脚本,所以其实还是写 SQL。除此之外数据可视化也是一个比较重要的方面,通常 Excel 和 Tableau 是很有效的两个工具。也有人会用来 R 或者 Python 来做数据可视化这一部分。总体来说最基本也最重要的工具就是 SQL。
Q: Facebook 如何通过旗下不同平台 (messenger, WhatsApp, Snapchat, Facebook Timeline) 收集、管理和使用同一用户的信息。A: 具体怎么收集和管理同一用户的信息不太清楚。如果用过 Facebook 和 Instagram 的话应该会发现如果在 Facebook 上加了一个好友,同时你们也上 Instagram 的话,那么会收到提醒说要不要 follow 他/她的 Instagram 之类。另外 Snapchat 不是 Facebook 旗下的 :)
Q: 一般如何选择 A/B testing 的 sample groupA: 涉及到以下几个方面,首先是需要考虑 sample size,可能一开始是 1%, 然后增加到更大比如 5%, 10%, 50% 之类。其次是需要考虑到产品会影响到哪一部分的用户,比如 iPhone 或者 Android 用户,或者是只影响到某一个国家等等。最后是需要考虑到 testing 的时间,根据不同产品不同测试的要求,可能是几天或者几周不等。
Q: Facebook 有什么著名的基于数据的 User Growth Campaign?A: 一个例子是用户好友推荐系统。解释一下这个功能就是根据用户的情况来推荐好友,可能很多人非常不喜欢这个功能,比如说会觉得推荐的人不是很相关啊或者推荐了现男友的前女友啊或者前男友的现女友啊之类。当然推荐系统有很多提高的地方,但总体来说这个功能是非常成功的。一方面在几年前的 F8 大会上公司介绍过对新用户来说,在初期达到某一数量的好友数是非常重要的,这其中好友推荐系统就是一个很重要的功能,给用户省了很多事。另一方面在 Facebook 推出这个功能之后,别的很多公司也有类似的功能,比如 LinkedIn 推荐 connection, Airbnb 推荐房间等等。
Q: 对于一个具体的目标(例如“好友推荐”, DAU,乃至“盈利”等),如何建立相关的数据模型、设立相关指标,如何完成数据的难与改进的流程。A: 首先需要考虑的产品组设立的具体目标跟公司的总体目标是不是相一致的,如果提高了这个产品的具体目标,但是对公司总体的目标却没有影响,甚至是反面的影响,那就需要考虑一下哪里出了问题了。其次是设定了一个具体目标之后,最好在一段时间内坚持这个目标,而不是经常做一些改动,否则的话会影响到数据分析的效率,比如说要构建新的 dashboard/report/pipeline 之类。最后每过一段时间需要再回过头看具体产品组的目标跟公司的长期发展目标是不是一致的,包括 back test 以及 long term holdout 等测试。
Q: 一个优秀的数据分析师应该具有哪些基本功和特质?优秀的数据分析者和平庸的数据分析者的差距在哪里?A: 一个优秀数据分析师具备的基本功首先是在技术上达到一定的要求,其次是对产品有一定的了解,包括产品开发从头到尾的整个流程,这是基本的要求。那么要成为一个优秀的数据分析者,我觉得最重要的一点是能够对身边的人产生影响。比如对工程师的影响,让他们也能通过数据分析来发现问题,因为他们是具体开发产品的,对产品的理解是非常深刻的(通常情况下对产品和细节的理解要比数据分析师深的多)。所以如果把自己的经验分享给工程师、产品经理等,让他们一起利用数据来分析问题解决问题,这样的话对开发、改进产品是非常有效的,会成为一个非常优秀的数据分析师(向这个目标努力)。
Q: 数据分析在产品改进、公司决策应当牌什么位置,当两者出现了矛盾的时候如何解决?A: 通常来说对于短期目标来说是由数据分析的结果来决定的,当然前提数据分析的结果是正确有效的,这种情况下一般来说是数据说话。那么对于长期的目标来说数据分析的作用会小一些,更多的是由公司的决策层来决定整个方向。比如说互联网产品从桌面端向移动端的变化,这个通过数据分析是很难体现出来的,因为现有的数据不一定能说明将来的发展,当初大部分人使用电脑,但是最几年用户更多转到手机等移动端,那么这种情况是很难通过数据来体现的,这个时候就需要看决策层的眼光了。比如说从腾讯的重心从 QQ 转到微信,Facebook 从桌面端转到移动端这种大的方向转变,个人感觉数据分析起的决定性作用都比较小。
Q: 当前硅谷来说,数据分析的主流运用场景在哪里?未来数据分析的趋势是怎样的。A: 主要几个场景:第一是各种 A/B testing,这是用得最多最广泛的场景,也就是产品改变好还是不好,都需要通过 A/B testing 来决定。另外一个就是通过数据分析来监控一些异常情况,通过过去的趋势来看是不是有异常情况,比如说过去一天或者一周用户突然增加了 10% 或者 减少了 10%,那么就需要通过数据分析来看这到底是正常的波动呢,还是某些方面出了问题。最后就是通过数据分析来寻找机会,比如产品哪些地方可以改进之类。未来数据分析的一个重要的趋势是如何从大量的数据里找出有用的信息,因为现在数据实在是太大太杂太乱太快了,如何从这些数据里挖掘出有价值的信息变得非常重要。另外一方面是如何根据产品的需求寻找新的数据来源,为改进产品服务。
Q: 数据分析项目(或产品)的研发过程中,分析师和业务人员有哪些合作?A: 如果这里面的业务人员指的是产品经理以及工程团队的话,合作是非常紧密的。一个典型的研发过程是通过数据分析发现产品某个方面或者流程有改进的机会,然后产品经理以及工程团队(程序员)沟通是否可行,其中可能还会涉及到设计人员对产品的改进,最后由程序员来实现需求。接下来再通过实验比如 A/B 测试看效果,有需要的话会有多次的迭代、改进。效果好的话那么就可以发布新产品,同时后续还会通过数据分析来追踪产品的表现 (performance),整个流程下来数据分析跟产品经理、设计、程序员都是紧密相关的。如果说业务人员指的是运营相关的话,那基本是没太有什么交集的。
Q: 对于小公司、小行业来说,最大的竞争对手网站每天的日活量也就 10 万上下,这样想做数据分析,分析的用户量应该确定到多少呢?A: 如果是做 A/B 测试的话,1 万以上的用户量差不多是下限了,再少如果几千的话,那需要测试的差异非常明显才能够比较明确的说这个差异是真的差异呢还是一些背景噪音。如果是做类似漏斗分析或者用户转化图这种的话,那么上千的用户量就可以开始有这个概念了。当然需要注意的是数据分析是有局限性在里面的,尤其对于产品、公司发展初期来说,不要把过多的精力放在数据分析上面去追求统计显著之类,而应该是更多的打磨好产品,找到产品合适的市场。
Q: 现在的工作都是 SQL 做 CRM 的 report,有 adhoc 有 regular,但觉得都没什么创造性,很机械没前途啊。。。该怎么往更偏 solution 方向的职位跳呢?A: 需要改进的方面最重要的一点是对产品的理解。因为数据分析的最终目的是改进产品本身,或者说让更多的人使用产品。不管做 report 也好 adhoc 也好,数据分析最重要的结果是这些对产品有什么意义,比如提供哪些可以改进的方面,哪个步骤是有问题的等等。为了做到这一点首先就需要对产品有一个很深刻的了解,而不仅仅是把目光集中在数据分析这一点上。另外还可以通过自己的特长和经验来影响合作的人,比如说产品经理、程序师等,让他们也能方便的使用数据来帮助产品开发。
Q: 在金融场景中,由于风险的滞后性,导致测试周期非常长,有什么方法能较好解决这类问题吗?A: 总来说这是由于行业特性决定的,基本上很难有什么好的解决办法。我之前在信用卡公司做风险控制,比如说看用户的坏帐率,基本上都是看长期的结果,比如说 6 个月,一年或者两年这种。再考虑到开始设置实验对照组,模型开发、数据分析的时间,还有之后看模型表现 (performance) 的时间,整个过程就更加的长了。假设是看 6 个月的风险,现在开始设置实验对照组,那么要能看到用户的表现的话至少需要等到 6 个月之后,再开始花几个月半年(这算比较快的)做模型和数据分析,之后再等 6 个月看结果,所以一个项目完整的流程下来都是至少一两年的。基本上是由行业特性决定的,不可能像互联网行业的一些项目周期这么快。
Q: 想问怎么看待 FB 用户增长降低,原生内容分享减缓,用户流向 Instagram 的情况呢?A: 首先根据每年的公开数据来看 FB 用户的增长并没有降低,当然这个增长速度是不可能一直持续增长十几年,因为世界上一共就那么多人。至于原生内容分享减缓,这个的确有一些这样的报道,个人感觉对于 Social network 来说基本都会有这样的趋势,比如说十几年前最开始大家用 Myspace,然后 Facebook 出来之后大家觉得这个比较酷就都使用 Facebook 了,随后有 Instagram, Snapchat 等的出现,用户又有一部分转到这些。国内的互联网市场基本也有这个一趋势,比如十几年前我上大学的时候校内网也就是后来的人人网非常的火爆,后来微信出来之后大家一窝蜂的涌到了微信。对于这种情况来说,就公司领导层的动作来看一个应对方法就是通过收购,比如 Instagram 和 Whatsapp 都被收购了,所以如果说有内容流向 Instagram 的话那是没什么太大的问题的。此外根据公开的报道,对收购 Snapchat 也是有过兴趣的,只是最后没有谈成。第二个应对就是公司自己需要持续开发新的产品。比如说微信是一个很好的例子,腾讯并没有因为有 QQ 的存在就一直把目光局限在这上面,而是从自己内部打破,开发出了微信这款神级产品。因为对互联网产品业说,如果停步不前不保持改变的话,那么终究是会被别人打破超过的。与其这样不如自己开发出新的产品来超过原来的产品。
Q: 2B 的业务有成熟的数据分析驱动客户的案例么?A: 一时想不起来有特别典型的案例,感觉比较接近一点是 Uber。虽然 Uber 的最终目的是给打车的人提供服务,但是他们很重要的一点策略是通过先打开大量的司机的市场。因为司机数量上来之后,首先是大家会发现打车的等待时间会变得非常短,另一方面是司机之间的竞争变得更强,更容易提供优质的服务,所以客户的体验会有一个大大的提高。另外一个例子大家可以关注一下国内的一个公司收 GrowingIO,是 LinkedIn 前 business analytics 老大回国创立的 startup,他们主要做的是给公司提供数据埋点、分析的服务,大家可以关注一下,我觉得他们长期来看是会有一个很好的发展的。
Q: 能分享一下在工作中各项任务的时间占比例吗?A: 这个根据不同的时间段会有不同。 如果是在定期做规划的时候,会有很多跟产品组其他人员的沟通,比如说产品经理、工程人员、设计等,大概 50% 的时间的样子。另外一半的时间就是把之前一段时间的分析整理总结一下,通过这些结果来找到下一个阶段的产品需要改进、集中资源的地方。这个时间段的话,那基本是大概 20% 的时间用来跟产品组其他人员沟通,剩下 80% 的时间做分析。做分析的时间里面大概一半是一些 adhoc analysis,20%-30% 做一些对长期来看有好处的工作,比如说 pipeline 的工作把一些过程自动化。还有一部分时间就是看已有的一些 report/dashboard,包括监测有没有异常啊,产品的 performance 是否符合预期等等。
Q: 请问国内哪些行业对数据分析师需求量特别大?游戏行业怎么样?A: 个人了解的比较多的是互联网和金融行业,当然这个是有 bias 的,因为我之前在金融行业,现在在互联网行业,那么自然认识的这两个行业的人也会比较多,国内联系我的猎头基本也是这两个方面的。比如说一些机会像阿里,支付宝,蚂蚁金服等,要么是跟互联网相关,要么是跟金融相关,要么就是互联网金融。至于游戏行业的话对于国内不太了解,美国这边也有一些相关的工作职位。不过个人感觉总体来说最大的还是互联网和金融这两个行业,此外还有管理咨询行业也增加了很多数据分析相关的职位。
Q: 一个优化目标对应的可验证的改进点有很多,比如一个简单的注册指标,需要考虑注册界面的各个因素,还有很多其他因素。请问怎么确定应该验证哪些点?以及如何确定验证的优先级?A: 首先需要考虑的是做一个整个流程的数据,比如以注册为例,有多少人到这个页面,多少人开始这个流程,每一步一直到最后有多少人确认了注册整个过程。之后看一下各个步骤的转化率,找到特别低的一个或者步骤。另外还可以跟类似的产品的对比,不同地区、不同用户的比较等等,看哪一个步骤的转化率相对来说特别低,那么这就需要优先考虑的地方。
Q: 数据分析能用在微信公众号或者视频内容吗?如果可以,能分别举个例子吗?A: 关于微信公众号或者视频内容我个人没有什么经验,公众号也是前段时间才刚开的。不过我感觉跟互联网产品是相通的,最重要的一点还是 retention retention retention。初期的时候需要保证有一个好产品,有好的内容,确保用户来了之后会留下来继续保持关注你的内容。如果没有做到这一点的话,那很有可能拉来很多新用户,但是一段时间之后他们发现内容没有什么特别的,那么接下来要么就取消关注,要么就不再打开内容了。所以最开始需要先把内容做好,在保证留存率的基础上再开始做推广。当然我对这方面的产品并不太熟悉,只是根据其它互联网产品的经验的一些想法。
Q: 机器学习中的算法在数据分析中的应用现状是怎样的,所占比重大吗?会与产品的设计挂钩吗?邹老师怎么看机器学习在数据分析中的前景A: 机器学习跟数据分析二者是相关,因为机器学习的算法做出来最终终要看的是对产品的影响。比如说一个排序系统,最终要看它是否增加了更多的用户,增加了用户的活跃度、增加了用户的粘性。机器学习对产品的影响我觉得是长期来看肯定是会非常大的,比如说 Facebook 的 Newsfeed,它不是按时间来排序的,因为最近发生的事情不一定是用户最关心的。这个产品不管对公司来说还是对用户来说都是有好处的。比如说公司可以有巨大的广告机会在里面。对用户来说可以优先看到机器学习排序出来的最重要、用户最感兴趣的那部分内容。当然这个机器学习的结果永远不会是完美的,需要不停的改进,也正因为这样个人以为它的发展前景是非常好的。跟产品设计是直接相关的,一般来说机器学习这一块是跟工程组在一起的,也就是程序员/码工们一起的,跟产品的联系非常紧密。(知乎也可以按机器学习的结果来排序 Newsfeed,不过不是强制的。个人猜测终有一天会是强制按机器学习的结果来排序)
Q: 硅谷现在有哪些专门做数据的公司?主要业务是什么呢?A: 最有名的应该是 Palantir Technologies 了,专门给政府、军队、国防部门提供数据服务的,创始人是 Paypal 黑帮那几个像 Peter Thiel 等等。非常有意思的一个独角兽。
Q: 工作中有遇到用户增长/产品数据分析的KPI和公司sales business KPI不同的情况。想问邹老师有没有遇到过类似的情况,有没有协调的方法?A: 这个在现在的公司没有遇到过,因为我们产品组这边跟 sales 基本是没什么交集的,所以也不存在 KPI 打架的情况。在之前公司有 risk 跟 marketinng 的 KPI 不同的情况。因为 risk 部门的一指标就是用户的风险高低,也就是最后看到坏帐率,而对于 marketing 来说最重要的是有多少新增用户,这两个很多时候是相爱相杀的。如果需要获取更多的新用户的话,那很有可能就要降低风控的标准,坏帐率就上去了。如果要控制坏帐率在一个较低的水准的话,那么获取新用户的难度就加大了,因为毕竟只有那么优质用户在外面,要么用高成本获取新的优质用户,比如说各种 promotion,要么就只能降低风控 (underwriting) 的标准了。碰到这种情况的话基本根数据分析关系就不是太大了,主要是老大们说了算。
Q: 请问数据分析师从长远来看会取代传统的user 和 user testing吗?A: 我觉得暂时来看是没法取代的,因为数据分析更侧重在产品这一块,而 user research 或者 user testing 更侧重在用户这一块。虽然对产品的分析可以了解到一些用户的想法,user research 还是更直接一点,比如说用户的想法这种是很难通过产品本身的分析来发现的。再者 user research 还有可能发现一些新的领域,也是对现有产品分析的一个补充。所以个人感觉几年之内是没法取代的。
Q: 请问有没有数据分析相关的专业书籍或者书籍推荐呢?A: 首先可以参考统计基本的东西,说实话我自己没有看过什么跟数据分析相关的专业书籍,只是学过一些统计的东西。至于数据分析相关的可以推荐的话首先可以参考一下管理咨询方面的案例,从这里面找找灵感,比如 Case in Point。其次除了书籍以外还可以参考一些网上的信息,比如知乎也好一些微信公众号也好,都可以找到一些很不错的资源,有时候知识系统更新会比看书更快一点。
Q: 请问知道一些在学术机构应用数据分析的案例吗?比如科学计量或者数据管理一类的.A: 对学术界不太了解具体的案例,不过就我所知现在很多商学院发 paper 什么的也是有数据支持的话会更容易发好杂志一些,别的像计量相关的学科也有很多都要用到数据分析,算是一个趋势。
Q: 能分享一下国内或者国外数据分析这个行业职业发展的情况吗,比如什么行业/公司会设置专职的数据分析职位,发展情况如何呢?A: 首先讲讲在美国这边的发展,基本上职位空缺是挺多的,主要是集中在互联网和金融行业,现在管理咨询行业相关的职位也越来越多,至少近期几年来看发展情况还是相当不错的(当然没法跟码工比了)。国内的话也是集中在互联网和金融行业,比如阿里、蚂蚁等等。
Q: 在用户推荐上,如何解决多个不同场景推荐问题,场景可能会非常多,几十个,几百个,上千数万。A: 对用户推荐系统的开发不熟,个人感觉是针对不同场景,可以把场景作为一个输入 (input),这样来达到每个场景有针对性的推荐。
Q: 数据分析跟产品经理的配合是怎样的?目前很多互联网公司都还没有数据分析师,在有数据分析师的公司,数据分析师和产品的合作方式也不是很清晰。A: 不同的产品或者不同的组会有区别,也要考虑到产品经理和做数据分析对产品以及数据的理解。通常来说二者是合作的关系,一个比较理想的合作流程是数据分析师基于对产品的理解,通过数据分析发现产品可以改进的地方,同时产品经理也懂数据,这样沟通起来更顺畅。当然具体到实际工作中会有区别,比如说如果产品经理比较资深的话可能更多的是产品经理提出需求,然后数据分析师来回答这些问题。反过来如果数据分析师比较资深的话,那么可能会更独立一点,不太理会产品经理的问题。总体来说比较理想的状况是二者互相合作,同时对对方的领域也有一定的理解,便于沟通。
Q: 如Facebook一开始没那么多的用户量,只有哈佛学生时数据分析还能用吗?数据分析是只能在用户量十万以上时才能发挥最大作用吗?A: 在产品用户量非常少的情况下,只需要做非常非常基本的数据分析,也就是用户来使用产品之后是否留下来。其它的比如 A/B test 也好,通过数据分析找机会也好都是不需要的,因为这些涉及到很多成本,尤其是时间上的成本对产品初期的快速迭代是有害的。只有在用户量达到一定阶段之后,才需要 A/B test 之类的介入,以达到数据分析的最大作用。
Q: 一家互联网公司的数据分析团队应占这家公司员工的比重是多大呢?对于小型初创公司,数据分析团队是必要的吗?A: 我觉得理想的比例是这样的,一个产品经理,一到两个数据分析,10-20 个工程师,以及一个设计方面的。对于小型初创公司来说,并不需要数据分析团队,而是团队里每一个人都应该懂一些最基本的数据分析(像上一条提到的,这时候的数据分析也不需要太复杂),然后通过这些基本的分析把握一个大的方向就可以了。像 A/B test 这种更多的是进行一些优化这种,对于小型初创公司来说是没有必要甚至有害的。如果产品的效果需要做 A/B test 才能看出差异的话,那么用户增长可能也是很缓慢,对于初创公司来说是很危险的。
Q: 做数据分析如果想进Facebook的话,您有什么建议吗?招聘时看重哪些标准呢?比如说发论文参加比赛之类的。录用国内的学生可能性大吗A: 如果指的是做数据分析也就是 analytics 方面的话,发论文参加比赛包括算法比赛,Kaggle 之类用处是不大的。最重要的几个方面,一是对产品的理解,比如说用什么指标来看产品的好坏,怎么设计实验,如何分析实验结果等等。二是技术方面的,这个最主要的就是写 SQL 了。另外还有就是一些基本的数学、概率、统计方面的知识,以确保做的分析是正确的。对于从国内直接过来的机会相对比较小,一是因为不同的工作环境、文化的差异,二是涉及到工作签证的问题。现在工作签证(H1B)都是需要抽签的,也给国内直接应聘美国这边的工作带来了很大的障碍,暂时还没有接触到做数据分析的这样的例子。
Q: 传统行业(零售)的区域销售经理,平时也会用Excel分析自己的销售数据,如何转行到互联网企业做数据分析呢?是不是去读一个专门的硕士比较好呢?刚才听您讲的内容,感觉很多方法都和传统行业是相通的。应用场景不一样。A: 首先最重要的一点是技术方面需要一个变化,最基本的 SQL 是需要会的,Excel 是肯定不够的,其次别的诸如会 Python 之类也是很有帮助的。如果有一些大数据方面的经验比如 Hive 之类也是很有帮助的。从传统行业到互联网行业做数据分析的思路应该是有很多相通的地方的,需要加强的更多的是对产品的理解,数据来源的理解。至于读一个专门的硕士的话我觉得是没有特别的必要,当然如果时间短见效快的话可以考虑,可以参考一下以前毕业生的去向,如果很大一部分都去了互联网行业的话那可以考虑,如果只有很少一部分甚至没有毕业生去这个行业,那就要谨慎考虑了。你可以用数据分析的思路研究一下相关项目。
Q: 除了职业发展相关,从你的经验看,数据分析(或者相关的工具方法)在生活中有没有应用的场景,帮助个人提高效率, 理财之类。A: 这个实在是没有想到什么好的例子。
Q: 请问如何培养自己数据分析的思维?感觉数据分析需要有很全面,逻辑的思维?A: 的确如此,数据分析需要很全面、逻辑的思维,这也是为什么这边数据分析招的很多人并不是从统计专业过来的,因为传统来说统计跟数据分析完全相关的,但其实不完全是这样,统计对数据分析来说更多是一个基础,还需要看分析的思路。很多以前一些理工科的比如说学物理啊之类的在做这一块。比如说以前读 PhD 的时候一些研究问题的思路是很有效的,虽然中途 quit 了,但是后来工作的时候发现这些提出问题解决问题的思路是很相通很有帮助的。至于如何培养自己数据分析的思维,我觉得最有效的办法是去念一个 PhD(开个玩笑,念 PhD 时间实在是太长了,五六年就过去了,还是不要念了)。我在之前的一篇文章里提到一个例子,也就是在使用 google map 的时候,到了目的地之后会显示目的地的街景,那么这个时候你就可以问自己很多问题,比如说为什么要显示街景,除了街景还可以显示什么?比如显示附近的停车场?那么什么时候应该显示目的地的街景,什么时候应该显示附近的停车场,如果来测试哪个效果好等等。就跟小孩子一样多问几个为什么,平时多做这种思维训练还是很有帮助的。

前段时间一位本科直系师弟不幸离世,虽然跟他没有什么直接接触,但是从同学中得知为人非常不错,然而却遭此厄运,小孩出生才几天。

本次直播 300 人,门票每人 17 元,共计 5100 元,多亏了知乎的平台和知友的抬爱,而不是我本人的能力。所以捐出了其中 5000 元给这位师弟的家人,祝他们安好。剩下 100 留着发红包了。

RIP

题图来源: haptik.co/blog/wp-conte

Windows批处理bat基础知识总结

编者按:这两天在写bat脚本,这是一个痛苦的周末,来个bat的基础知识,留着以后慢慢学。

转自:http://uule.iteye.com/blog/2076859

作者:uule

预定义的变量

下面是些已经被底层定义好可以直接使用的变量:不会出现在 SET 显示的变量列表中
%CD% – 扩展到当前目录字符串。
%DATE% – 用跟 DATE 命令同样的格式扩展到当前日期。
%TIME% – 用跟 TIME 命令同样的格式扩展到当前时间。
%RANDOM% – 扩展到 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% – 扩展到当前 ERRORLEVEL 数值。
%CMDEXTVERSION% – 扩展到当前命令处理器扩展名版本号。
%CMDCMDLINE% – 扩展到调用命令处理器的原始命令行。
%0 bat的完整路径名如”C:\Windows\system32\xxx.bat”
%1 bat参数1依次类推%2参数2…
%path% – 当前的环境变量。以分号隔开的路径列表,路径可包含空格,可以以’\’结尾, 可以以双引号包围之。

参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。

例:最简单的复制文件自身的方法

copy %0 d:\wind.bat

扩展变量

@ 与%i相关的变量(bat参数或者for循环的%i)
假设文件为C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%0        C:\Documents and Settings\jinsun\桌面\ParseSinglePkgs.bat
%~dp0  C:\Documents and Settings\jinsun\桌面\
%cd%   C:\Documents and Settings\jinsun\桌面
%~nx0   ParseSinglePkgs.bat
%~n0     ParseSinglePkgs
%~x0     .bat

@ 与%VAR%相关的变量
%VAR:str1=str2%   会将VAR中的str1替换为str2(str2如果为空则可以达到删除的效果,str1前可以加*,变量%ABC:*B=%是C)
%VAR:~0,-2%          会提取VAR 变量的所有字符,除了最后两个
%VAR:~2%              会提取VAR 变量的除前两个的所有字符
%VAR:~-2%             会提取VAR 变量的最后两个
%VAR:~2,5%           提取从第2个字符开始的5个字符

 

========================================================

在bat文件中,多个命令写在一行或括号内,如果使用行内或括号内定义或修改的变量,需要启用延迟变量扩充,用叹号引用变量

bat文件中用 setlocal enabledelayedexpansion 启用延迟变量扩充,命令提示符窗口启用延迟变量扩充,用 cmd /v:on

 

ren命令中的文件名最好加引号,防止文件名包含空格等特殊字符造成的错误。

cd /d %~dp0

批处理文件中的一条语句
意思是 更改当前目录为批处理本身的目录

比如你有个批处理a.bat在D:\qq文件夹下
a.bat内容为
cd /d %~dp0
在这里
cd /d 表示直接转换到后面的路径,否则如果切换盘符,就需要再输入盘符才能切换路径
cd /d %~dp0的意思就是cd /d d:\qq
%0代表批处理本身 d:\qq\a.bat
~dp是变量扩充
d既是扩充到分区号 d:
p就是扩充到路径 \qq
dp就是扩充到分区号路径 d:\qq

 

%0代指批处理文件自身
%~d0 是指批处理所在的盘符
%~dp0 是盘符加路径
cd %~dp0 就是进入批处理所在目录了

 

%cd%

%cd%代表当前执行批处理文件的路径(当前路径)

echo %cd%

 

%CD%  当前文件目录,不显示文件名,切通过其找到其他文件

%0    当前文件本身,包含完整路径名和文件名

 

如 “C:\Windows\system32\xxx.bat”,是一个路径字符串,有引号

 

*.*  代表所有文件

 

>和>>它们的作用都是改变各种提示信息的输出方向,把提示信息输出到指定的地方去——各种提示信息默认是输出到屏幕上去的。

单个的>表示以覆盖方式重定向提示信息,也就是说如果目的地原来有内容,将把原来的内容清除掉,用新内容填充;

>>表示以追加的方式重定向提示信息,也就是说,如果目的地原来有内容,原有的内容将保持不变,在原有内容之后追加新内容。

例如:假设d:\test.txt中的内容是:I Love batch。那么,在cmd窗口中,分别使用如下两条语句:echo me,too>d:\test.txt和echo me,too>>d:\test.txt,将会发现,使用第一条语句之后,test.txt中只有一行内容:me,too,而使用第二条语句之后,test.txt中将有两行内容,分别是I Love batch和me,too。

例如:tree /?>help.txt,这条命令语句就把 tree 命令的帮助信息重定向到了help.txt文件中,

 

help>nul 就把 help 命令的提示信息重定向到了空设备中去(nul表示空设备)。

 

|   命令管道符

格式:第一条命令 | 第二条命令 [| 第三条命令…]

将第一条命令的结果作为第二条命令的参数来使用,记得在unix中这种方式很常见。

例如:

dir c:\|find “txt”

以上命令是:查找C:\所有,并发现TXT字符串。

 

md

如果要创建的文件夹带有空格或&,需要用引号把文件夹名括起来,例如:md “test abc”、md “abc&xyz”。

 

如果不使用引号,又会带来什么后果呢?

 

1、如果文件夹名带空格,那么,md test abc 语句会在当前目录下创建test和abc这两个文件夹;利用这个特点,如果要创建abc def xyz这三个文件夹,直接使用 md abc def xyz 就行了,而无需连写三条md语句。

当然,md abc;def;xyz或者md abc,def,xyz 这样的写法也是可以的。

2、如果文件夹名中含有&,那么,md abc&xyz 会创建abc这个文件夹,并提示说:’xyz’不是内部或外部命令,也不是可运行的程序或批处理文件,这是因为,&是复合语句的连接符号,它把前后两部分视为两条子语句了。

 

忠告:如果文件夹名含有特殊符号,请不要忘记使用双引号!

 

md创建中级目录。也就是说,md a\b\c这样的命令,可以在当前目录下建立文件夹a,然后,在a下建立文件夹b,b之下再建立文件夹c

 

echo on/off

on 和 off 都是echo 的关键字,所谓关键字就是系统规定、有特殊用途的字符。

echo on 是打开回显,echo off 是关闭回显。

系统默认是echo on,所以每次为了关闭回显,都会在代码的行首加上echo off,加以关闭。

不关闭回显,连执行的命令符都会显示出来,所以一般会关闭。

 

前面加上@又是为什么?

echo off只能关闭 echo off后面的代码的回显,但不能关闭自身的回显。所以需要加上@关闭自身。

echo.

echo 后加一点表示换行,真奇葩的设计。

 

findstr默认是区分大小写的(跟find命令一样)

findstr /vm “^teststring” *.txt

findstr /v /m “teststring” *.txt

/i        不区分大小写 (/ignore)

/V       只打印不包含匹配的行。

/M       如果文件含有匹配项,只打印其文件名。

 

启动一个程序 

call与start区别

start upload.bat

不会等upload.bat执行完再执行下一条, 如此可实现同时执行多条命令.

 

call upload.bat

call 命令 是要等调用的程序结束以后才运行下面的命令.

 

特殊符号

&:第一条命令 & 第二条命令 [& 第三条命令…]

用这种方法可以同时执行多条命令,而不管命令是否执行成功。

 

&&:第一条命令 && 第二条命令 [&& 第三条命令…]

当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令。

 

||:第一条命令 || 第二条命令 [|| 第三条命令…]

当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;

 

========================================================

 

Sql代码  

  1. @echo off
  2. for /? > for.txt
  3. set /? > set.txt
  4. shift /? >shift.txt
  5. exit

 

执行后在当前路径下就生成for.txt、set.txt和shift.txt三个文件,里面分别记录了for命令、set命令和shift命令的帮助信息

 

 

1.Echo 命令
打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo 命令将显示当前回显设置。

语法
echo [{on|off}] [message]
Sample:
@echo off / echo hello world
在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。

2.@ 命令
表示不显示@后面的命令
在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite…
@format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。)

3.Goto 命令
指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
Sample:

Ruby代码  

  1. if {%1}=={} goto noparms
  2. if {%2}=={} goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。)
  3. @Rem check parameters if null show usage
  4. :noparms
  5. echo Usage: monitor.bat ServerIP PortNumber
  6. goto end

 

标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。

4.Rem 命令
注释命令,在C语言中相当与/*——–*/,它并不会被执行,只是起一个注释的作用,便于别人阅读和你自己日后修改。
Rem Message
Sample:
@Rem Here is the description.

注释可以使用Rem,也可以使用双冒号即::

5.Pause 命令
运行 Pause 命令时,将显示下面的消息:
Press any key to continue . . .

Ruby代码  

  1. @echo off
  2. :begin
  3. copy a:*.* d:\back
  4. echo Please put a new disk into driver A
  5. pause
  6. goto begin

在这个例子中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理。

6.Call 命令

call命令用来从一个批处理脚本中调用另一个批处理脚本

如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。

语法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
参数
[Drive:}[Path] FileName
指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。

Ruby代码  

  1. call mvn clean

7.start 命令
调用外部程序,所有的DOS命令和命令行程序都可以由start命令来调用。

入侵常用参数:
MIN 开始时窗口最小化
SEPARATE 在分开的空间内开始 16 位 Windows 程序
HIGH 在 HIGH 优先级类别开始应用程序
REALTIME 在 REALTIME 优先级类别开始应用程序
WAIT 启动应用程序并等候它结束
parameters 这些为传送到命令/程序的参数
执行的应用程序是 32-位 GUI 应用程序时,CMD.EXE 不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。

8.choice 命令
choice 此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……

如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?

Ruby代码  

  1. @echo off
  2. choice /c:dme defrag,mem,end
  3. if errorlevel 3 goto defrag (应先判断数值最高的错误码)
  4. if errorlevel 2 goto mem
  5. if errotlevel 1 goto end
  6.  
  7. :defrag
  8. c:\dos\defrag
  9. goto end
  10. :mem
  11. mem
  12. goto end
  13. :end
  14. echo good bye

此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。

9.If 命令
if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:
1、if “参数” == “字符串”  待执行的命令

检测字符串

(注意,用if检测字符串是否相等的时候,后面用的不是“=”,而是“==”)
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)
如if “%1″==”a” format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms

 

检测数值:(注意,批处理中大于符号不能用:“>”,而用”gtr”,其它的也类似)

比较运算符一览:

EQU – 等于

NEQ – 不等于

LSS – 小于

LEQ – 小于或等于

GTR – 大于

GEQ – 大于或等于

Sql代码  

  1. @echo off
  2. set /a num1=20
  3. set /a num2=15
  4. if %num1% gtr %num2% echo %num1%大于%num2%
  5. if %num1% EQU %num2% echo %num1%等于%num2%
  6. if %num1% LSS %num2% echo %num1%小于%num2%
  7. pause>nul

 
2、if exist 文件名  待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。
如if exist config.sys edit config.sys

3、if errorlevel / if not errorlevel 数字  待执行的命令
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。

说明:环境变量errorlevel的初始值为0,当一些命令执行不成功,就会返回一个数值,如:1 ,2 等
如if errorlevel 2 goto x2
DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码,常见的返回码为0、1。

常用命令的返回值及其代表的意义

 

IF [NOT]  ERRORLEVEL number   do command

IF [NOT]  string1==string2   do command

IF [NOT]  EXIST filename   do command

 

10.for 命令
for 命令是一个比较复杂的命令,主要用于参数在指定的范围内循环执行命令。
在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable

 

在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I

for /f %%i in (a.txt) do echo %%i

//这个会显示a.txt里面的内容,因为/f的作用,会读出a.txt中的内容。

for %%i in (a.txt) do echo %%i

//而这个只会显示a.txt这个名字,并不会读取其中的内容。

 

for %%a in (c:\*.*) do echo %%a

::显示C盘根目录下所有非隐藏、非系统属性文件

::只显示文件,不显示文件夹

 

一、/d

(只搜索目录,不搜索文件)

格式:FOR /D %variable IN (set) DO command [command-parameters]

 

for /d %%i in (c:/*) do echo %%i  –显示c盘根目录下的所有目录

for /d %%i in (???) do echo %%i   –显示当前目录下名字只有1-3个字母的目录(注意是目录)

 

二、/R

(只搜索文件,不搜索目录)

(搜索指定路径及所有子目录中与set相符合的所有文件)

格式:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

 

for /r c:/ %%i in (boot.ini) do echo %%i

–枚举了c盘所有目录,找到含有boot.ini的路径并显示

for /r d:/backup %%i in (1) do echo %%i

–枚举d/backup目录,现在当前路径和当前路径下所有文件夹,不过后面带了个1

d:\backup\1

for /r c:/ %%i in (boot.ini) do if exist %%i echo %%i

–很好的搜索命令,列举boot.ini存在的目录

 

三、/L 

(以增量形式从开始到结束的一个数字序列。可以使用负的 Step)

格式:FOR /L %variable IN (start,step,end) DO command [command-parameters]

该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step

 

示例:

for /l %%i in (1,1,5) do @echo %%i  –输出1 2 3 4 5

for /l %%i in (1,2,10) do @echo %%i  –输出1,3,5,7,9

for /l %%i in (100,-20,1) do @echo %%i  –输出100,80,60,40,20

for /l %%i in (1,1,5) do start cmd  –打开5个CMD窗口

for /l %%i in (1,1,5) do md %%i  –建立从1~5共5个文件夹

for /l %%i in (1,1,5) do rd /q %%i  –删除从1~5共5个文件夹

 

========================================================

setlocal 与 变量延迟

例1:

@echo off

set a=4

set a=5 & echo %a%

pause

结果:4

解说:为什么是4而不是5呢?在echo之前明明已经把变量a的值改成5了?

 

(set a=5

echo %a%

::这种情况a直接是5

)

 

让我们先了解一下批处理运行命令的机制:

批处理读取命令时是按行读取的(另外例如for命令等,其后用一对圆括号闭合的所有语句也当作一行),在处理之前要完成必要的预处理工作,这其中就包括对该行命令中的变量赋值。我们现在分析一下例1,批处理

在运行到这句“set a=5 & echo %a%”之前,先把这一句整句读取并做了预处理——对变量a赋了值,那么%a%当然就是4了!(没有为什么,批处理就是这样做的。)

而为了能够感知环境变量的动态变化,批处理设计了变量延迟。简单来说,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。

 

那么如何开启变量延迟呢?变量延迟又需要注意什么呢?举个例子说明一下:

例2:

@echo off

setlocal enabledelayedexpansion

set a=4

set a=5 & echo !a!

pause

结果:5

解说:启动了变量延迟,得到了正确答案。变量延迟的启动语句是“setlocal enabledelayedexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。

 

分析一下例2,首先“setlocal enabledelayedexpansion”开启变量延迟,然后“set a=4”先给变量a赋值为4,“set a=5 & echo !a!”这句是给变量a赋值为5并输出(由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了)。

再举一个例子巩固一下。

例3:

@echo off

setlocal enabledelayedexpansion

for /l %%i in (1,1,5) do (

set a=%%i

echo !a!

)

pause

结果:

1

2

3

4

5

 

(若不加延迟变量,则会输出几个!a!字符)

解说:本例开启了变量延迟并用“!!”将变量扩起来,因此得到我们预期的结果。如果不用变量延迟会出现什

么结果呢?结果是这样的:

ECHO 处于关闭状态。

ECHO 处于关闭状态。

ECHO 处于关闭状态。

ECHO 处于关闭状态。

ECHO 处于关闭状态。

即没有感知到for语句中的动态变化。

========================================================

【续】[一日一教学]批处理系列帖子索引 http://www.bathome.net/thread-13798-1-1.html
 

序号 标    题 首发日期 更新日期
1 目录跳转:cd 20081112
2 以树形格式罗列文件:tree 20081112
3 内容重定向:>和>> 20081113
4 条件判断:if  20081114
5 流程跳转:goto 20081117
6 复制文件:copy 20081221
7 删除文件:del 20090101
8 重命名文件(夹):ren 20090212 20090226
9 创建文件夹:md 20090213
10 删除文件夹:rd 20090214
11 移动文件(夹):move 20090606 20080611
12 字符串查找:find 20090607 20090608
13 字符串查找增强:findstr
14 文件替换:replace
15 设置文件属性:attrib
16 显示磁盘卷标和序列号:vol
17 编辑磁盘卷标:label
18 转换磁盘系统格式:convert
19 格式化磁盘:format
20 创建虚拟盘符:subst
21 给磁盘做个体检:chkdsk
22 清理CMD屏幕上的信息:cls
23 更换CMD窗口的颜色:color
24 给CMD窗口换个标题:title
25 获取系统日期:date
26 获取系统时间:time
27 退出CMD窗口:exit
28 查看系统版本:ver
29 返回到上次路径:pushd/popd
30 操控注册表:reg
31 注册dll文件:regsver32
32 打开文件、运行程序:start
33 关闭或重启计算机:shutdown
34 显示进程清单:tasklist
35 关闭指定进程:taskkill
36 查看IP配置信息:ipconfig
37 测试IP连接:ping
38 解析地址:arp
39 配置计算机网络信息:netsh
40 传输文件:ftp
41 调用子过程或外部程序:call
42 显示提示信息:echo
43 暂停执行:pause
44 设置变量:set
45 注释语句:rem和::
46 更改参数的位置:shift
47 一次只显示单屏内容:more
48 字符串排序:sort
49 复合语句连接符:&、&&和||
50 管道符号:|

 

阿里云组建医疗大数据:未来数据化一个人是否有可能?

9 月 18 日报道  (文/吴艳梅)

埃里克托普在《颠覆医疗》一书中有过数字化人类的描述:

通过将肉体置于我们外延的神经系统中,通过电子媒体的方式,我们建立起一个动态系统,将快速成熟的数字化、非医学领域的移动设备、云计算和社交网络与蓬勃发展的基因组学、生物传感器和先进成像技术的数字化医学领域合为一体,将这些工具和能力加以综合,我们就能为每一个人获取关于 ta 的解剖学、生理和生物数据。

但这些数据如何在一个更长的时间维度上,对人体进行更全面的数据采集和汇总,如糖尿病、高血压、心脏病、体检、运动、睡眠数据等多个场景,并让医疗健康生态链上的各个角色都能够使用上这份完整的数据,是否能造福每一个生命?

9 月 17 日,阿里云同深圳中瑞奇、杭州金卫健康宣布,三方将合作组建“云上安心”联盟。通过联合社区医院、三级综合医院、医疗硬件厂商、医疗健康 APP、健康体检中心、医疗健康分析模型提供商,在患者知情并授权下,将散落各处的健康医疗数据进行汇聚打通,以期实现基于数据的精准医疗。

阿里云

以心脏病治疗为例,通过将“云上安心”联盟中的心电设备产品“好朋友”接入人体,并连接“好朋友心电图”APP 后,用户便可查看自身心电数据。同时,数据同医院同步,如出现异常,医生或急救中心可提前介入。中瑞奇创始人汪远思表示,“该产品直接面向个人用户开发,并提供专业医护服务。” 也就是说,每一个用户都相当于拥有了一位私人医生。

在今年 7 月初的试点中,阿里云和中瑞奇向杭州米市巷社区 2 万老人中的心脑血管疾病患者发放了相关设备,金卫健康提供面向居民、社区医院的心电数据采集及心脏健康管理服务,帮助社区居民能够及早发现心脏方面潜在风险,将高危人群纳入监护体系。

“云上安心”联盟的生态参与方所有数据都将存放于阿里云上,借助阿里云强大的计算能力和开放的心电算法,实现对亿万级数据的并行处理。诸如心电图的记录过程、心电噪音的过滤,特征值抓取(如p波,r波,st 段)等。通过阿里云大数据处理平台 ODPS、分析型数据库 ADS 还可以进行离线数据和实时数据处理,快速接入更多标准的应用及第三方医疗数据。

阿里云高级产品专家武凯表示,联盟将以心电数据为中心,打通医院生化指标、诊断数据和医院外心电、血糖数据,以及其它体征、运动等各种碎片数据,以期更加全面立体的描述一个患者的健康情况,从而达到精准医疗的目的。

据介绍,心电数据收集类似声音数据采集,对传感器数据的采集频率高,且心电数据量非常大,一个人 24 小时的心电数据大概在 150M 左右,一个人一生心脏跳动 25-30 亿次,会产生人均 4394G 心电数据量。在当前的医疗工程界,无论是院内的静态心电数据,还是动态心电数据,用于疾病检测完之后,都会因数据量巨大而被闲置或清除。

武凯表示,这些数据如果被利用起来,将对中国整个心脏疾病的检测产生不可估量的价值。“挑战在于,海量的心电数据不仅需要无限扩容的储存空间,更需要强大的数据处理分析能力,这两者都是阿里云的优势。”

据悉,心电数据库在美国和欧洲已经成为普遍的医学指标,但在中国,目前并无完整心电数据库。且心电算法处理模式还仅仅是基于小样本特征识别的心电信号分类。“希望在未来建立基于大数据能力的统计分析心电信号的分类方法,以及面对医疗行业的大数据样本,逐步实现人体数据化。”武凯表示。