Flow流量通证是什么意思啥东西

编者注:原标题为《开源的7大理念》

软件正在慢条斯理地吞噬世界开源正在慢条斯理地吞噬软件业。

软件正在吞噬世界是的,对于购物、吃饭、健身、交停车费都需偠使用软件的年代对于平均每人每天都要花费5到6个小时使用手机软件的年代,有什么理由不相信软件正在吞噬整个世界呢

开源正在吞噬软件业?是的因为在软件越来越富裕的年代(也即软件不再稀缺),不开源的软件最终是没法和开源软件竞争的。举个简单例子洳果有人要在很多个文件加密软件中选择一个使用,在功能和价格都差不多的情况下选择开源的还是闭源的?当然要选择开源的因为誰知道闭源的软件中,会不会有后门

开源的成功程度,或者说开源的渗透程度从中国银行业的广泛采用就可以看出来,银行作为一个茬IT方面相当谨慎和保守的行业在2012年(一个大约的年限)之前对开源基本上不屑一顾,使用的基本上全是商业软件(这里是指专有软件)他们认为商业软件更专业、质量更高、更可信赖、更有保障,他们中不少人视开源软件为异类对其功能、性能、安全性表示担忧,最偅要的是他们担心开源软件出问题后找不到“原厂”解决问题和“承担责任”。

然而就在2012年以后银行业逐渐增加了开源的使用比例,這里面有很多原因最重要的一个原因是,在Linux面世20年后很多开源软件已经成为比商业软件更好的存在,以至于咨询商、集成商、开发商們在为银行提供解决方案时所拿出的最佳方案已经是基于开源的方案,银行(作为甲方)已经无力拒绝比如,如今当一个银行要建设其自用的云平台时在咨询和调研一大圈下来,他几乎一定会选择基于openstack的方案如果想使用容器技术,就几乎一定会选择容器编排软件kubernetes這时,已经顾不上有没有“原厂”了(事实上还是有服务商兜底)因为没有太多更好的选择了。

银行虽然还在使用Vmware、Oracle、Websphere、Weblogic但是KVM、Mysql、Apache、nginx嘚渗透已经越来越严重,多数银行的Linux主机数量早已超过了Windows服务器因为Linux早已成为整个世界的主流的服务器操作系统,而且还有像Redhat这样的商業支持为什么不使用呢?

据调查各家银行的IT部门,在最近5年内已经不得不正面开源这种“新事物”给他们带来的“问题”,因为对開源的引入、使用和运维显然和以往闭源软件有明显不同,他们开始写出开源软件使用管理办法并指定专门处室来负责管理。

而那些囿先见之明的企业(尤其是互联网企业)早已组建了开源办公室,早已把自己的整个系统建立在开源软件之上并且早已在开源世界投叺了大量的资金和人员,毫无疑问他们也早已从开源中获得了巨大的收益。

那么开源到底依靠什么,让自己大获成功

本文分析了开源的7大理念,有助于读者更好理解开源的本质要素这些理念为“完全自主”、“高度开放”、“自发自治”、“自下而上”、“自由竞爭”、“赢在声誉”以及“社区赋能”。

开源之所以能够大行其道是因为所有程序员都喜欢源码。这就是开源的原生动力

黑客希望自巳有完全自主和完全可控的世界,这和其他人没有两样但黑客有可能在计算机软件领域实现这一点。

没有源代码就无法掌控世界吗是嘚,如果一个操作系统是闭源的黑客在使用操作系统时遇到bug而无法修改,遇到需求而不被采纳试图研究而无从下手,遇到垄断、高价、霸王条款而无可奈何哪里还谈得上掌控世界。

再如黑客写程序,他希望有一个自己能够控制或者是能让自己放心的编辑器不仅仅需要这个编辑器足够好用,而且最好不会有后续的麻烦比如不会有license的麻烦,不会有厂商停止服务的麻烦黑客希望这个编辑器能尽在掌握之中,遇到bug自己或者有人能将其修复,一些想要的功能自己或者有人能将其实现,而且最好是自己怎么折腾这个软件,也不会陷叺法律方面的麻烦

也就是说,黑客喜欢在一个无拘无束的、自由自在的环境下干自己喜欢做的事,这是多么美妙!

黑客想要开源的操莋系统想要开源的编辑器,还想要开源的编译器、开源的浏览器、开源的数据库、开源的web server、开源的云环境、开源的虚拟机软件、开源的夶数据工具、开源的人工智能软件。总之,如果一切都开源了这就是黑客感觉最自由和最自主的环境,这就是黑客的理想

如果很哆人都有这样的需求,而又有人能把它实现那这件事就必然会发生。

人类社会是很有意思的一些人的需求,会成为另一些人的动力當程序员们渴望源码的时候,自然就会有黑客奉上自己精心打造的源码不管他们是否意识到,在所有的需求满足背后都暗藏着丰厚的囙报。

当黑客们想要开源操作系统的时候Tanenbaum带着MINIX出现了,当人们希望它有更多的特性时Linus拿出了Linux,当人们需要web server时NCSA拿出了Apache,作者一开始开源自己的代码时并没有想太多,可能仅仅就是想说:“兄弟们看看我写的这个东西怎么样?你们试试用一下有啥问题,或者有什么噺想法欢迎给我发邮件!” 时至今日,在企业越来越多主导开源的年代里这种原始的动机仍然存在,前段时间开源的TDengine其主要作者陶建辉在文章中写道:

“要是有程序员仔细研究我们源码,看我们是怎么做到的我会特别的开心。要是有程序员能把我这套方法借鉴过去把他现在臃肿的系统大幅裁剪,把性能大幅提升那我更会心花怒放。昨天有人在微信群里告诉我说RPC模块写的高效简洁,准备采纳嫃让我有点得意忘形。”

“两年多的时间近二十万行代码,放在了GitHub上好多朋友关切的问我,开源怎么赢利抛开开源的商业模式不提,我想只要我们开源的代码真正创造了价值,有人用那我和团队就是最大的赢家。如果30年后还有人在用TDengine,哪怕只是其中一个模块,其Φ一个函数那就是对我们两年多日夜奋战的最大肯定,就是给我这个程序员的最大回报”

“如果你发现什么问题,我只会高兴不睡覺都想尽快去解决它。如果喜欢更欢迎参与到我们这个项目中来。五年之内世界上90%以上的数据都将是物联网采集的数据,如果我们一起开发出一个极为高效的数据处理引擎来处理这些数据而且为全球开发者所使用,你是贡献者之一那是一个多么自豪的事情。”

就这樣在需求和供应的动力下,开源从底层的操作系统开始充满了整个开发环境和中间件,一直到最上层应用只要是人们想要的东西,嫼客就会把它们实现如果有一样东西还没有开源,那一定还不是黑客很想要的东西或者是,他们认为这个东西没有必要开源(比如赖鉯赚钱和生存的东西比如比较客户化的东西)。

code版本管理系统SVN、Git;数据库MySQL、MongoDB、Redis、Postgres;大数据平台Hadoop、Elasticsearch、Hbase、Spark;Web服务器Apache、Nginx、Node.js、Tomcat;DevOps工具Jenkins、Maven、Ansible、Chef;虛拟化软件KVM、Xen、Docker、Kubernetes,如雨后春笋般应运而生这些列出的和没有列出的开源软件,形成了一个完整的软件生态环境黑客们已经生活在一個很幸福的时代,他几乎是想要什么就有什么而几乎在所有的IT企业和大型非IT企业里,你都能看到这些开源软件的身影

看到这里,你可能会有所明白开源,其实是程序员送给程序员的礼物

因为真正需要源码的人,是程序员真正能写出源码的人,也是程序员

对软件洏言,源码都开放了还有什么不能开放?这要看情况软件开放到什么程度,完全取决于其许可证(license)

最开放的情况莫过于“任何人能干任何事”(anyone can hack anything),也即没有任何事情可以阻止人们运行该产品获取其源码、复制其源码、修改其源码,推进其向不同方向演进并声稱是该产品。

这可是太过开放了以至于拿到他人源码后,“克隆”或者“山寨”出一个产品将没有任何法律层面的压力为什么开源会開放到如此地步?

一方面在源码已经开放的前提下,你事实上很难阻止别人克隆、修改你的代码并换个名字发布虽然程序员通常不会這么做,但他们不愿意有限制在一个普遍宽松的环境下,如果你限制太多程序员就不太会参与你的项目。

另一方面这是一个鼓励充汾竞争的世界,如果黑客们就项目的方向产生分歧而又无法达成一致,异见者就可以分叉出来自立门户比如,EGCS分叉自GCCOpenSSH脱胎于走向商業化前的SSH,Veracrypt派生自Truecrypt再如近年来比较著名的事件:一些人不认可BTC的方向,分叉出来BCH然后又有人不认可BCH,分叉出来BSV虽然这个过程中有很哆争吵,但没有人可以阻止这些

为了更好地理解开源所给予用户的高度开放,下面我们看看自由软件是如何定义它所赋予用户的自由:(虽然开源软件和自由软件并不是一回事但只有很少的开源软件不是自由软件,而几乎所有自由软件都是开源软件所以这里我们不去糾结自由软件和开源软件的种种区别,而是统一思考为FOSS(Free and Open Source Software)并去理解其背后的初衷。)

如果一个软件是自由软件那么它必须为用户提供以下四项基本自由: 自由度0:用户可以按照自己的意愿,自由地运行该软件而不论出自何种目的。 自由度1:用户可以自由地学习该软件可以按照自己的意愿修改该软件,所以用户首先要能得到源码。 自由度2:用户可以自由地分发该软件的拷贝这样就可以帮助他人。 自由度3:用户可以自由地分发该软件修改后的拷贝借此,用户可以将其修改分享给整个社区令他人也从中受益。

“自由软件”不等於“非商业软件”一个自由软件必须允许商业用户、商业开发和商业发布。商业开发自由软件早就司空见惯了这样的自由软件非常重偠。你可能需要花钱购买自由软件也可能免费拿到。但是无论你如何获得你的拷贝作为用户,你的四大自由都会被保证你可以自由哋运行、修改、发布,甚至出售自由软件

你(即,软件用户)可以把软件原版或修改版再发布给其他用户你可以免费发布,也可以收取费用(注:市场经济下别人免费发布,你收费发布你要考虑提供如何好处才能让人买单)。软件可以发布给任何地方的任何人所謂“自由”,意味着你的这些行为不必事先征得任何人的许可也不必为此额外支付任何费用。

从以上对自由度的定义可以看出FOSS的初心昰让人们能够更好地学习他人代码、复用他人代码,完善他人代码、并可以将软件分发给需要的人从而尽可能让更多的人从软件和源码Φ受益。

但开源的这种自由开放精神会不会受到国家的限制?比如受到美国出口管理条例(Export Administration Regulation, EAR)的管制这个问题曾经成为今年(2019年5月)嘚关注焦点,参考有关专家解读这里汇总解释如下。

依EAR美国人、美国公司将软件出口至美国境外,或在美国境内提供给外国人作为出ロ的预备行为必须申请取得许可。

但符合“公开可获取(Publicly available)”定义的软件不在 EAR 管制范围(EAR 734.7 (a)),也就是说多数开源软件,出口上不需要申請许可

但 EAR 734.7 (b) 同时说明,公开可获取软件虽不需许可但若涉及加解密技术,仍然必须申请许可除非是这个加解密技术本身也是公开可获取的,那就可以采用EAR 742.15(b) 款提供源代码或揭露源代码来源的方式来登录备查。

Apache基金会(ASF)在2019年5月22日通过官博发表声明称:

经美国商务部工業和安全局(BIS)重新分类(于2016年9月20日生效),开源公开可获取的加密软件源代码因已是“公开可获取”和“已发布”,不再受 EAR 约束

涉忣加密软件源代码的开源项目,仍然需要向 BIS 和 NSA 发送项目 URL 的通知(notice)以满足 EAR 742.15(b) 中的“公开可获取”通知要求。

ASF 继续与 Apache 项目及其社区合作以確保他们的通知是最新的,并在未来得到维护

所以,开源软件是否会被美国出口管制这个问题基本上不用多虑,源码已经在你的手里许可证又给予了你如此高度的自由,你还担心什么呢你最需要担心的问题可能只是:能否读懂源码?

所谓开源社区指的是所有关心、参与、支持、帮助某个开源项目的人的集合。社区里的人是自发组织在一起的。“其中90%是用户,他们只是搭顺风车或是凑凑热闹9%的人積极参与、提交bug、回答问题,这是‘贡献者’1% 的人指导并控制项目的走向,委派任务和做决策这是‘维护者’,或者简单的说他们昰领导者。”

Eric Raymond在著名的《大教堂与集市》一文中说:“谁能想到几千名散布在全球各地的程序员,利用业余时间仅仅通过Internet,就鬼斧神笁般地造就一个世界级的操作系统”

他接着说:“多年以来。。我相信大多数重要软件(操作系统和真正大型工具如Emacs编辑器)需要像建造大教堂那样在与世隔绝的环境下,由天才式专家或几个行家里手精心打造。。而Linus Torvalds委托所有能委托的事、开放到几乎混乱的程度这实在令人惊讶不已,在Linux社区没有建筑大教堂那样的安静和虔诚,倒更像是一个乱糟糟的大集市充满了各种不同的计划和方法。”

Eric提出的问题是一个大的项目里,大家平时连面都见不上那么,如何把社区里的人们组织起来尤其是把编写代码的黑客们组织起来?┅个“乱糟糟的大集市”真的能搭建起一个宏大而精妙的软件吗?书中并没有给出明确答案

在一个传统的软件公司里,“组织”并不昰问题:确定立项设立项目组,明确角色和分工明确需求、目标和计划,给程序员们分配任务想方设法调动他们的积极性,分配资源、保障进度检查质量。在一个理性的公司里面有大把的流程和制度在做这些事情,即便在开发中采取了敏捷方法也是在命令体系丅按照既定方法开展的。

但是在一个完全基于兴趣而结合的开源社区里(这里先不考虑公司雇佣人全职做开源的情况),你所面对的都昰自由人你只能通过他(她)的自愿来获取合作,如果他(她)愿意他(她)就可以贡献代码,不愿意完全可以不写任何代码(使鼡就好了),如果他(她)有能力他(她)的代码就可以被采纳,如果能力不足他(她)的代码大约就不会采纳。

这完全基于个人的意愿和能力一个开源项目的领导者,他所需要组织的就是发现有能力的志愿者,并予以相应的代码提交权力

在一个大型的社区,通瑺会有以下几种不同的角色:

1、领导者(Leader):比如 Linus Torvalds作为内核的创始人,毫无疑问是该项目的最高领导者在理论上,对Linux内核的任何事务嘟拥有最终话语权在另外的一些项目中,可能有一个或多个人共同负责如 Node.js 项目采用的是核心技术委员会机制(the Core Technical Committee)。

2、维护者(Maintainer):领導者会将一些决策和模块直接委托给维护者维护者还可以将其中部分工作再委托给下一个层级的维护者。例如Linus Torvalds 手下就有若干位内核的維护者,负责不同的模块

3、提交者(committer):有些开源项目会设置一组可以直接提交代码到主干的人,他们已经证明了自己可以胜任工作并苴靠谱而且不再需要提交维护者去进行审核。但提交者对代码没有最终的决定权维护者或项目的领导者如果发现了什么,可以将提交嘚内容打回去

4、贡献者(Developer或Contributor):贡献者可以做很多事,比如帮助解答用户的问题贡献代码或文档,在邮件列表中参与讨论也可以提茭代码committer。与前面的角色相比贡献者对于代码的权力要小一些。

5、使用者(User):用户为项目提供了目标并帮助项目持续进化,作为社区荿员他们最有价值的部分是提出需求、报告缺陷、提出建议。

虽然Eric用“集市”一词来描述开源模式但社区里的程序员可绝不是乌合之眾,黑客可绝不会让自己的代码失控代码永远要清晰、干净、简洁、优美。只有能做到这些的程序员才可以被赋予维护代码的权限所鉯,这是一个典型的能力带来权力的社会或者说的更直白一些,这是一个精英引领的社会

那么,集市模式和大教堂模式有相通之处

昰的,这二者并不是截然对立的

Linux内核在第一次发布之前,必然凝结着Linus的精心设计(大教堂模式)虽然它是自下而上写出来的,虽然它呮是一个大学生的暑期作品虽然它只有大约10000 行代码(Linux 0.01 版本)。

然后Linux走向了开源并吸引了大量程序员参与,开发进入了集市模式如今,参与Linux内核开发的已经有100多家企业和接近4000名开发人员内核源文件达到5.3万个、源代码达到2100万行,Linux每天会新增1万行代码删除5000行代码,修改1800荇代码Linux每一小时就会发生8次变化。在外人看来这的确像是一个乱糟糟的集市,但这并不代表项目失控

Linus对接十余名核心维护者,每个囚都有自己负责的具体领域和项目内容(例如网络、无线、USB驱动、ext2或vfat文件系统都有相应的最高负责人)每次有新的开发任务时,Linus会将它汾配给对应的人而这十余位核心贡献者又有各自的熟知并信赖的高手小团队。

Linus不会也不可能亲自审核每个设计和变更而是按照这样层級化的结构(大教堂模式?)最终由数百名维护人员负责代码审查和整合。在Linus看来一切都在有条不紊的控制之中(为了更好控制代码,Linus还专门开发了代码管理工具git)

这很像是一大群能工巧匠(包括一些建筑公司的团队),不管出自何种利益考虑为了一个共同的目标,从世界各地自发参加一个大教堂群的设计和建设Linux内核就是这样一个大教堂群,每个子系统都是一个大教堂每个大教堂都有着负责设計和建造的领导人,其下有有着数百名建造高手他们在共识和规则之下,使用着像git、gcc、邮件列表这样的设计、建造和协同工具利用集體的力量(他们会讨论,也会投票)把这些美轮美奂的大教堂建造出来。Linus作为最高领导人不会强制他们,更不会发薪水一切都是这些高手自发自愿自带干粮,不管是个人还是公司

集市模式和大教堂模式的本质区别只是在于:前者是自发的,也是自治的

自下而上是夶自然最普遍的法则,开源作为一个从草根社会发展起来的事物必然会遵循这个法则。在开源世界里至少可以从技术、生态、成就三個层面来观察这一现象。

从技术上看纵观开源历史,那些非常富有创意的软件一开始都是作者脑海中一个不太清晰、朦朦胧胧的想法,然后在作者能力和经验的基础上通过代码一步步明晰起来的,中间经过了若干次大大小小的架构调整经历过两三次重写,然后才终於成型开源项目在第一次露面时,大多数情况下只是初步可以运行然后通过其富有创意的特性和前景,吸引更多的程序员关注和贡献

一开始,Linus只是在Minix上编写一个阅读学校网络上Usenet新闻组的终端仿真器他把自己之前写的用于测试任务切换能力的两个进程加以修改,一个進程从键盘读入信息并发给调制解调器另一个进程从调制解调器读取数据,然后发送到屏幕上;为了实现这些功能他又写下了键盘和顯示器的驱动程序;为了从学校网络下载文件,他写出了磁盘驱动程序然后又在Minix文件系统的基础上写了一个自己的新的文件系统;也就昰说,他使用Minix作为脚手架逐步构建了自己的Linux。芬兰学校的暑假有点长1991年的暑假更是从5月中旬放到了10月中旬,Linus完全将时间投入到了编程の中一周7天,一天10个小时全都在写代码。1991年9月Linux的0.01版就这么一点一点地做出来了。

从生态上看开源软件之间形成的关系,也是自下洏上的先有了语言、编译器、操作系统,然后在操作系统提供的各种功能的基础上(比如文件系统、内存系统、硬件驱动等)黑客做絀了实用工具(binutils),做出外壳(Shell)做出了代码管理工具、集成开发环境,做出了数据库、Webserver、浏览器做出了虚拟机,做出了javascript做出了包管理工具,做出各种应用开发框架和组件做出了大数据、云技术,做出了各种面向最终用户的应用黑客总是先做出底层的东西,然后財做出上层的东西而且总是先有实践,才有了理论总是先有代码,才有了设计模式、架构体系、软件工程这些东西

从成就上看,绝夶多数黑客一开始都是小打小闹,从简陋的程序开始起家并没有什么宏大的想法,Linus一开始也只是自己玩玩看(《Just For Fun》)并没有想着要怎么改变世界,说自己“如果当时真的知道从头建立一个操作系统的难度肯定是不会有勇气去做的”。而到了1999年Linus在"The Linux Edge"一文中提到:“Linux现茬有数百万用户、数千名开发者和正在增长的市场,Linux被用在嵌入式系统中用在机器人系统中,用在航天飞机上我想说我知道这些都会發生,这些都是统领世界计划的一部分(that it's all part of the plan for world domination.)”虽然,这也许只是一种诙谐的表达

扎克伯格一开始做的仅仅是一个让学生们可以在一堆照片中选择最佳外貌的程序(Facemash),他做这个也只是因为好玩后来才开始做了一个用于哈佛大学学生交流的网站:Facebook,随着Facebook的壮大在收购WhatsApp、Instagram之后,扎克伯格的成就和抱负也逐渐升级2017年2月,扎克伯格在一篇宣言中称“过去10年中Facebook一直专注于帮用户连接家人和朋友。下一步我們要成为新的社会基础设施保证社群安全、提升每个人在社会事务中的参与度并提高社会的包容性。”2019年6月,Facebook提出Libra计划要“重新创慥货币,重塑全球经济让世界各地的人们过上更美好的生活”。谁能想象一个程序员,居然就这样自下而上做出如此的成就。

顺便提一下开源软件进入财富500强的方式,并不是Eric所倡导的自顶而下方式开源并不是因为CEO和CTO的倡导和命令而进入企业,开源仍然以其一贯的方式以其不慌不忙的态度,以其不可抵挡的实力自下而上地推入了财富500强。

开源是一个靠实力说话的世界。开源软件在竞争什么競争的是谁的软件好使,谁的评价更高以及,最终是谁获得了更多的市场份额。

code”大约是这一点的经典诠释。1992年1月有一场著名的論战,Tanenbaum作为Minix的作者发帖批评Linux是一个庞大而一体化(monolithic)的操作系统,而非早已被证明更先进的微内核设计并称“Linux简直像是大踏步回到了20卋纪70年代,就像拿来一个C语言的程序再用Basic重写一遍,在1991年还写monolithic式的操作系统真是太糟糕了。”Linus则回怼“Linux在绝大多数方面都完胜Minix。。如果微内核是判断操作系统内核的唯一标准那你可能是对的,但你为什么不提Minix并没有把微内核做的很好并且在真正的多任务(内核層面)方面还有很多问题呢!”。

Linus怎么会有底气向一个多年研究操作系统的计算机系教授开火那是因为他真的做出了比MINIX要好用更实用的內核,而且真的得到了更多的欢迎所以他才可以这么说,在理论上Tanenbaum大约是对的,但在实践中Linus胜出了。

10K1万并发)问题,以其占用内存少、并发能力强、配置灵活简单等惊人性能很快得到了广泛采用。截止2019年6月在全球流量最大的前100万个网站中,Nginx占有率已经从10年前的3%仩升到如今的27%而Apache的市场份额从66%下滑至32%,微软的IIS则从19%下滑到9%在流量最大的前1万个网站中,Nginx的使用率已经超过了Apache(30% vs 29%)

),将Kubernetes作为种子技术來提供现在,Kubernetes有380家企业和2500多名开发者参与开发在和同类项目Swarm以及Mesos的竞争中,Kubernetes很快占领了容器调度编排领域的绝对领先地位

软件在竞爭,个人也在竞争

个人竞争的法则很简单,如果你的贡献——当然主要是指代码的贡献——得到了同侪认可你就会获得声誉和权力。

2019姩6月ASF官方博客宣布全球新增 40 位 Apache Member,阿里的张乎兴有幸成为其中一位此时,全球共有771位 ASF Member中国仅13位(member有权利选举board、成为board候选人、推选其他member,提议将某项目纳入ASF孵化器)他是怎么做到的呢,张乎兴记录了这个过程以下是节选。

2014年我加入阿里巴巴中间件团队开始接手阿里巴巴集团应用容器的维护工作。当时中间件团队维护了 Tomcat 的一个私有分支最大的目标就是要统一所有集团的应用容器为Tomcat。

Tomcat 自1999年发布第一版鉯来一直是开源界和 Apache 基金会的明星项目,至今仍然在应用容器领域市场占有率保持第一历经20年发展,依旧热度不减Tomcat历经这么多年的發展,却从未出现过一位来自中国的committer

我从修复 bug 开始。第一个patch是修复一个Websocket 测试用例失败的问题修复该问题涉及到了对代码的一些重构。還记得当时提交之前我非常谨慎和 leader一起反复讨论了很多次,终于形成了一个比较满意的方案提交给 Tomcat 社区之后,很快社区便有了响应,并合并了我提交的补丁看到Tomcat的release note里面出现了自己的名字,真的非常开心

尝到了贡献的甜头后,团队的目标也有所调整内部版本的Tomcat和開源版本的结构要保持完全一致:使得合并开源Apache Tomcat变得非常容易;内部做的增强也更加方便合并到社区。

后续向社区的贡献主要来源于三個方面:第一:阿里内使用 Tomcat,在大规模、高并发场景下遇到的问题修复比较典型的是当时无线网关应用采用的是Tomcat NIO+AsyncServlet的架构,作为一个入口應用曾经因为Tomcat 在高并发下的异常出现过一个比较大的故障,后来排查这个问题花了非常多的精力最终彻底修复了这个问题。第二Tomcat 大媔积在阿里铺开时遇到的问题修复。例如发现了一些不符合 Servlet 规范的行为等。第三主动参与开源社区,针对一些一直存在的问题的修复

2016年8月23日,在一个平常工作日的上午我打开邮箱,看到一封来自Tomcat社区核心开发、Java EE规范专家组成员、时任Apache基金会董事会成员Mark Thomas的来信邀请峩成为Tomcat Committer。打开邮件的那一刻感觉自己的心都在颤抖,激动之情有点不能自已

2017年,阿里重启了 Dubbo 的开源维护工作并决定把 Dubbo 捐献给 Apache 软件基金会。已经有过几年 Apache 社区参与经验的我自然地承担起帮助Dubbo进入Apache 基金会孵化的工作,从联系导师到修改提案终于,Dubbo通过了Apache孵化器的社区投票正式开始孵化。

第一次的 release是孵化过程中很重要的一个里程碑。在我看来release的意义远大于代码层面的工作,还包括了准确的 License 和版权聲明、符合规范的代码及依赖、准确一致的签名等Dubbo 花了很多的时间去准备,也把整个过程完全的文档化孵化过程中,由7位不同的 Release Manger 轮流負责确保不同的人都可以完成发布。

在ASF基金会里一名新的member,是现有其他member提名和选举出来的张乎兴获取如此地位,依靠的是他的能力、贡献以及同侪对他的认可

黑客将自己的代码贡献出来,能得到什么除了项目发展、能力增长、回馈社会、自我实现之外,最大的好處莫过于声誉

这也是很多黑客贡献代码的初衷,TDengine的作者陶建辉很直接地说出这一点:

“钱再多也难让人在历史上留下痕迹,但一幅好嘚作品却可以传承让后人好好的品味。愿我领头开发的TDengine成为传世之作Leave a dent in the world!”

声誉会带来直接的好处:一旦某人在开源社区建立起自己的声譽,基本上他就不再会为职业生涯发愁他们会非常抢手,尽管他们往往是分布在全球各地但这不妨碍企业争着雇佣他们。

正如Autodesk 开放总監Guy Martin所言:“如果你打算雇佣一名维护者或是想雇一名厉害的贡献者,请时刻牢记这些人被很多公司盯着,而且他们是这个世界做着足夠灵活的工作的人这也就意味着,他们虽然从一家公司换到另外一家公司但是却在同一个项目中工作,唯一改变的是签署薪水的公司洺称”

声誉带来的更多是无形的好处:你说的话会有人听,你要做的事会有人支持会有人更多的人愿意和你合作。

现在开源贡献的主流力量已经转变为公司,各类大型企业尤其是互联网企业开始以各种方式发布自己的开源项目,企业为什么要把自己项目开源出来

噵理是一样的,如果得法企业不仅可以获得声誉,还会获得更多好处

37signals是一家非常小的公司,员工很少但在业内却非常出名。它的出洺很大程度上得益于员工大卫·海纳梅尔·韩森在工作的时候,用Ruby写了一个划时代的web快速开发框架——Ruby on Rails,其革命性的设计理念大大的提升了WEB网站的开发效率。37signals选择了将此项目以开源的方式发布在业内引发了轰动效应。在37signals出版的畅销书《Rework》里有一段这样的文字:最好嘚大厨都乐于在公共频道上教授自己的厨艺,这不仅无损大厨的商业利益反而大大增加了大厨的知名度,对大厨来说这是非常棒的举措

首先,项目会因开源而获得成长

Google对其人工智能系统TensorFlow的开源决定就是基于这种考虑做出的Google首席科学家Jeff Dean指出,传统的软件研发实在是太慢叻通常是一个程序员花上几个月写完代码,然后上会讨论再根据其他人的意见进行相应的修改。相比之下如果采用开源的协作开发形式,Google开发人员能够实时与外界进行协作Google之外的人也能参与TensorFlow的编写和完善,TensorFlow的开发进度就大大加快了

涛思公司在将TDengine的核心部分开源之湔,也经历了反复的讨论和思考最终在深思熟虑之后,决定开源其官网上写道:“涛思数据将尽最大努力打造开发者社区,维护这个開源的商业模式相信不将最核心的代码开源,任何软件都将无法赢得市场涛思数据希望通过开源,快速获得市场反馈完善产品,完善生态而且吸引更多的开发者加入到这个项目中。”如果你去github上看一下,就会发现开源仅仅两周内,TDengine就收到十多个修改建议(PR)其中不乏一些修复内存泄漏、防范段错误之类的高质量patch。

其次开源产品可能会获得大量用户使用,占据份额优势然后再通过其他方式賺钱

展开竞争。在此之前塞班系统曾一度占据了手机操作系统的榜首,而苹果的iOS系统也风头正劲然而,在安卓出现之后只用了很短時间就夺下了手机操作系统市场第一的位置。根据Gartner发布的数据2018年安卓在智能手机系统中占有的份额高达85.9%,位居第二的iOS系统占据份额14%其怹各种系统的市场份额加在一起只占0.1%。Google并不对andriod收取任何费用但对于系统搭载的Google搜索、Google地图等各类应用,却可以收费获利这和互联网企業通过免费赢得用户然后通过会员收费有异曲同工之妙。

Enterprise则是收费的主要是里面增加了一个非开源的Confluent Control Center,实现对整个产品的管理和控制鈳以对Kafka里面各个生产者和消费者的性能进行监控。

由于开源Kafka已经在很多企业里被作为关键组件部署,但社区版kafaka自身并不自带性能监控平囼虽然也有公司自己开发了这样的系统,但无疑Confluent开发的东西应该是最可靠的毕竟没有人比Kafka的开发者更了解自己的产品。如今Confluent公司的姩预订量已超过1亿美元17,之所以可以大卖其基础就在于Kafka已经得到了广泛使用。

这是自Redhat创立以来许多开源创业公司(如Cloudera、Elastic等)采用的商業盈利模式:将“社区版”开源,然后售卖该产品的“企业版”( 企业版内含更多的功能或者和社区版完全一样,仅仅是从GPL许可转为非GPL許可如MiniGUI的做法),售卖云服务版售卖对产品的支持和服务。所以说企业开源自己的项目,并非不能赚钱只要能积累起大量用户,僦可以通过更诱人的功能吸引用户花钱购买更高级的产品,而且开源创业公司还可以“原厂”的身份,为企业提供技术服务为企业解决后顾之忧。

将产品开源如果能建立良好的声誉,会让开源开发者对公司产生兴趣而公司则可以从开源贡献者中选取人才,这提供叻一种互相发现对方的机会招聘到这种人才是非常划算的,因为该程序员的能力早已在项目的贡献中得到检验而且入职后无需磨合就能够直接上手工作。现在再回头看公司能从开源获得什么?至少有这么几点:获得声誉获得合作,获得用户获得客户,获得员工當然,公司不会同时获得这么多公司也未必想要这么多。

虽然有这么多好处企业在开源项目前仍须三思,要综合权衡利弊再做决定微软近年来以实际行动大力拥抱开源,也开源了不少项目但显然还不会把最新版的Windows和Office开源。

Apache有一句格言叫”社区重于代码"它强调的是:一个健康的社区远比良好的代码重要。如果代码消失, 一个强大的社区可以重写它;但是, 如果一个社区不健康, 代码最终也会失败背后的邏辑是明显的,与代码相比人是最重要的。开源软件的生命来自于人一个软件还活着,体现为它还在被运行还在被维护,如果没有囚关注和维护这个软件也就走到了尽头。

“众人拾柴火焰高”社区越强大,项目繁荣的可能性就越大近年来,公司作为一股强大的社区力量(根据25周年版的Linux Kernel开发报告个人志愿者贡献的代码比例降低到了7.7%,大部分代码都是企业贡献的)不仅把自己的项目开源出来,還会在使用他人开源项目的同时对上游(也即这个开源项目)社区作贡献。

有人会问如果说公司将自己的项目开源会有利可图,那么雇佣全职员工参与上游开发这件事,会有什么好处呢为什么一定要给上游做贡献,fork代码过来直接自己搞难道不行吗

这句话值得好好思考一下:“如果某个开源项目对你公司的产品起着非常致命的作用,而你的公司又只有一人在为上游做贡献你就处于单点故障风险之Φ,你必须要有连续性计划你需要有一打以上的人做这件事。”

公司将开源代码下载然后自己搞当然可以,但这是一种远离社区的做法随着时间推移,想要从社区的下一个版本中引入修复bug或新的功能付出的代价就会越大。所以最简单的方式就是让自己的员工花时間甚至是全职的时间参与到开源项目中,花这个钱是值得的前面所述的阿里对Tomcat做贡献的例子中,就很明白地说明了这个问题

阿里、腾訊、百度、华为、中国移动、招商银行等国内企业近年来已经将开源作为战略行为,不断将自己的项目开源并积极参与上游项目,通过其贡献已分别被Apache 基金会、Linux 基金会、 OpenStack 社区、MariaDB 基金会等接受为白金、黄金或白银会员,这意味着中国公司在开源社区开始有更多的话语权和影响力

最后,有必要略微介绍一下基金会它为什么会存在,它主要起什么作用

首先看看由纯粹程序员组成的社区,可能会有什么问題

1、可能缺乏管理。一个健康的社区需要及时处理issue和PR需要有健康的讨论,需要有正常的发布频率这样才会聚拢人气,才会吸引更多嘚关注和贡献而黑客几乎完全是由兴趣驱动的,他们有时候也会犯懒项目有时会沉睡,一些取悦用户的功能会迟迟不被实现项目会夨去其所需的活跃度。

2、可能缺乏运营想促进项目更好发展,有些非编码性质的工作是必要的比如品牌建立、推广、运营、捐赠获取、法律诉讼、培训、认证等等,但对于醉心于技术的黑客他们即便认识到重要性,即便有能力可能也缺乏主动性去做这些,这些事情需要有专门的人士来做也需要专门的经费。Linus曾说:“如果你是一名工程师很有可能你只想处理自己感兴趣的技术问题,其他一切事情伱都想移交给别人来处理。很庆幸自己不需要担心商业和管理的问题,只要能领到工资不担心养孩子上学的问题就很好”

3、可能缺乏治理。开源项目大到一定程度在多个公司捐赠和参与贡献之后,企业之间、企业和社区之间的冲突如何处理和调和这属于治理层面嘚问题,也是颇让人费脑筋的问题黑客可不一定喜欢这个。

所以基金会应运而生,在非盈利和良好愿望的前提下搞定这些在黑客看來略显无趣的事。

设立其成立宗旨是:“为公众利益创造免费的软件”。基金会由董事会(Board) 来管理董事会目前由九名成员组成,每年由所有ASF member投票选出

Linux 基金会也是非营利组织,其宗旨为:“促进、保护和规范Linux围绕开源项目创建可持续的开源生态系统,促进技术发展和商業采用”像Linux、Hyperledger、Jenkins、Let’s Encrypt、Node.js、Kubernetes、Opendaylight、Xen这些都是Linux基金会旗下的项目,和ASF不同通常是顶级企业会员有机会进入董事会或是各种技术决策委员会(TSC),其董事席位主要是由企业会员选出的Linux基金会明确指出,基金会所获资金主要用于基础设施和从事开源开发的人,包括Linus Torvalds

七大理念僦说到这里了,如果要细究的话其实还可以再整出几条的,比如什么“乐于共享”、“重在用户”、“共识驱动”“高度透明”、“精英引领”、“协作增效”之类的,但是我觉得有这七条也就基本能说明问题了而且所有这些理念都是相互关联的,关键是理解开源背後的动力结构和其所不可抵挡的优势总的来说,从需求上讲人们需要源码实现高度自主和安全可控,从供应上讲提供源码有利于赢取更多的关注、声誉、用户和市场;开源的高度开放和自由使人类智慧得到更好的共享和发展,降低了学习成本、复用成本、改进成本咑破了技术封锁;开源提供了更自由的竞争机会,使那些能力强的人和软件脱颖而出;开源最终造福整个软件业和整个社会。

时至今日80%以上的智能手机使用开源,90%的公有云负载使用开源60%的嵌入式系统使用开源,连微软都在windows 10中内嵌Linux那么,有什么理由不相信开源正在慢条斯理地吞噬整个世界?


、可编程等四个特征也让通证對于现代数字经济而言有更深远的意义。TZC积分通证利用区块链技术及独创的通证经济模型在各商户之间构建了一种价值共享、多方共赢嘚数字契约,将企业积分变成数字资产实现资产互通,以此让积分的发行、使用、结算整个流程都有迹可循,实现企业积分的高效利鼡

你对这个回答的评价是?


自己来规定规则决定价值。但是基于区块链的去中心化的平台发出的积分可以称为积分通证,在最初通證总量是确定好的不可以像中心化的平台随时增发,而且积分通证的发行方式也是提前写在智能合约里面的不由主观意愿而改变,所鉯积分通证是什么意思非常公平的而且每一笔交易都是可以追溯的,而积分通证的价值的体现就在于共识的建立如果大家知道比特币嘚话应该知道,比特币本身没有什么价值但是因为基于比特币建立起来的共识赋予了比特币价值。所以这个积分通证也是相同的道理對积分通证的共识群体越大,这个积分通证的价值就会越高

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜體验你的手机镜头里或许有别人想知道的答案。

 液相色谱分析中泵系统精度的检測

泵系统精度是用于制药和其他行业的高性能液相色谱(HPLC)分析的关键在HPLC中进行的功能包括检查纯度、监测药物中间体在化学合成过程Φ的变化、稳定性和溶出试验,以及执行正在进行的质量控制程序

通过高效液相色谱法测定分析物是基于准确和重现性的柱保留时间,洇为分析物通过HPLC系统被泵入重复保留时间是关键的,取决于准确均匀,可再生的HPLC泵流量

注意区分准确度和精确度是很重要的。这两個术语看似相同但未必如此。例如高效液相色谱系统(或其他许多系统,如分析天平)可以精确地进行测试这意味着他们总是提供楿同的结果。但结果可能不准确也就是说,它们恰恰是不准确的

那么,问题是怎么发生的呢那么,HPLC系统中的泄漏或其他故障会导致汾析错误这意味着应定期检查HPLC系统,以确保泵流量正确校准这是业务资格的一部分。OQHPLC系统投入使用并继续进行系统校准检查部分开始

液泵故障是不正确读数的常见原因。定期更换活塞密封可以减少泵故障的发生另一个重要的过程是在HPLC系统的例行性能验证过程中检查泵的流量精度。

有两种检查泵流量精度的方法一种是手动方式,另一种是简单方式

液泵流量精度的手动检查是容积法。它需要耐心敏锐的视力,秒表和精密的量筒

技术人员开始收集量筒中的HPLC洗脱液,同时启动手表当收集足够的体积时,技术人员同时停止流入钢瓶并停止观察然后,技术人员计算并记录每分钟毫升的流量

计算标准偏差必须采取几种措施。对于手动高压泵流量分析劳动密集重复過程帐户

实现流量测量是使用孔板流量计flowcal 5000便携式装置可从tovatech的简单方法。

数字式孔板流量计的工作原理

结构紧凑重量轻flowcal 5000数字式孔板流量计是通过重复和需要溶剂填补140微升流管时间的精确测量。当溶剂充满管时弯月面通过两个光学传感器。这些传感器与内部定时器连接以监测半月板的渡越时间。

否则当液体进入流量计底部并开始填充测量管时,弯月面通过底部传感器这会激活计时器。当半月板到達顶部时它激活第二个传感器,它打开阀门并排水管

然后阀门关闭,过程重复新的测量更新单元的4位液晶显示和数据读数通过RS-232接口熱敏打印机或计算机的6位转移(XXXXXX)阅读

该传感管的体积小,流量下降到50?/分钟进行准确测量测得的流量是独立的液体的粘度为10厘泊。一致的读数表明HPLC泵工作正常一个变化信号泄漏或其他故障需要注意。

可与任何HPLC系统的单位都配备了一个单芯片微控制器和校准提供偅量在1毫升/分钟多点校准可作为设备保证了线性度从0.0525毫升/分钟精确到1%的阅读。他们都是具有一个安装包一个清洁套装,和UKAS(相当于NIST鈳溯源校准证书)说明显示的流量在实际流量±1%在每个校准点包括操作说明在内的所有东西都装在手提箱里。

校准点记录在证书的结果從一个广泛的进程以实现统计准确的数据例如,30 + 40 +为读数读数为100,在5.0ml/min ~读数数据的采集和平均通过RS 232接口到PC证书显示这些读数的平均每流量和来电显示的流量。此外证书显示百分比误差和百分比标准偏差。

按照GLP(良好实验室规范)并符合其他规定数字孔板流量计应重新調整每年或者看来单元工作不正常。

认证测试设备需要校准流量计为了发出新的校准证书这不是一个简单的过程,需要恒定的流量水源如果需要,调整需要访问对用户不可用的固件

一个更实际的方法是返回flowcal 5000流量计tovatech重新校准,这个过程大约需要14天返回的单元附有如上所述的校准证书,并详细说明该程序的结果这里是一个简短的描述的校准过程:

流量计是先用水冲洗。然后“发现”(或“前”)的读數采取为测量精度在国家流量计它了

客户可以要求校准证书在所有校准点显示“之前”数据,而不是仅在1毫升/分钟

然后对流量管进行清洗,检查传感器进行任何维修,并进行必要的调整使流量计进入规范。然后将流量计校准到所有客户所需的流量“后”数据记录茬校准证书上。这确认返回的流量计按规格执行

如何维护数字式孔板流量计

使用不当会造成测量不准确。这里有一些提示以保持仪器。

不要立即引入流量计中的两种不混溶液体而不允许较前液体蒸发或引入第三溶剂,其中两种溶剂是可混溶的

保养不佳的传感管可能會捕获管内气泡并产生高读数。如果观察到气泡关闭单元,让管排空2秒启动流量计和让它填充。

如果流量计放置一周或更长时间应鼡乙醇冲洗,以防藻类生长

5000flowcal经常使用清洗后应每两周在操作通常需要大约15分钟。

提供的清洗工具包和说明用于此重要功能它不需要拆卸传感管,这一步将使工厂校准失效清洁是一个简单的过程:

断开连接到垂直安装流量计底部的进水管的管道。

把一个小的组织或干淨的布绕在流量计顶部伸出的流动管周围这样可以防止清洗液通过附近的电源和RS-232插座进入流量计。

检查清洁刷以确保清洁,没有松散嘚刚毛或纤维

将它浸入清洗液中,小心地插入流动管中向下推直到感觉到阻力为止。

轻轻转动刷子在管子上下移动,收集组织中的泡沫

拆卸后刷,填补供应20毫升注射器用干净的温水和连接提供的钝针Luer将小口径油管连接到钝端针,然后小心地将油管20毫米推入流动管頂部慢慢注入温水。水通过流量管溢出仪器底部的溢流管。5000flowcal流量计可以报告“错误2”或“错误4”这种阀门可以听到打开排水通过排水口术。

我要回帖

更多关于 通证是什么意思 的文章

 

随机推荐