报这个错,中毒的可能性比较大,查查病毒吧
博客
-
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) -整理-转
http://www.awflasher.com/blog/archives/939
当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!
最初来自:sinoprise.com/read.php?tid-662-page-e-fpage-1.html(遗憾的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。
参考文献:http://www.fsf.org/licensing/licenses/现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种(http://www.opensource.org/licenses/alphabetical)。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。
这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。
BSD开源协议(original BSD license、FreeBSD license、Original BSD license)
BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
Apache Licence 2.0(Apache License, Version 2.0、Apache License, Version 1.1、Apache License, Version 1.0)
Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许代码修改,再发布(作为开源或商业软件)。需要满足的条件也和BSD类似:
1. 需要给代码的用户一份Apache Licence
2. 如果你修改了代码,需要再被修改的文件中说明。
3. 在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
4. 如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。
Apache Licence也是对商业应用友好的许可。使用者也可以在需要的时候修改代码来满足需要并作为开源或商业产品发布/销售。
GPL(GNU General Public License)
我们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。
GPL协议的主要内容是只要在一个软件中使用(“使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题,还可以享受免费的优势。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。
LGPL(GNU Lesser General Public License)
LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品
MIT(MIT)
MIT是和BSD一样宽范的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论你是以二进制发布的还是以源代码发布的.
-
如何选择开源许可证?(转)
如何选择开源许可证?
http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
如何为代码选择开源许可证,这是一个问题。
世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种—-GPL、BSD、MIT、Mozilla、Apache和LGPL—-之中做选择,也很复杂。
乌克兰程序员Paul Bagwell,画了一张分析图,说明应该怎么选择。这是我见过的最简单的讲解,只用两分钟,你就能搞清楚这六种许可证之间的最大区别。
下面是我制作的中文版,请点击看大图。
(完)
为什么GPL是更好的开源许可证?
1.
让我从一件新闻讲起。
2009年,计算机业界发生了一件大事:甲骨文公司以74亿美元收购SUN公司。
消息宣布后,有一个人坚决反对这笔交易。他叫Michael Widenius,是数据库软件MySQL的主要创始人。
他为什么要反对呢?因为MySQL现在归SUN公司所有,一旦收购成功,就将属于甲骨文公司所有。但是,后者的主要产品是Oracle数据库,与MySQL是竞争关系。所以,甲骨文公司不可能扶持MySQL的后继开发,甚至有可能杀死MySQL。
Michael Widenius不能接受这个事实,他发起万人签名,提交请愿书,要求欧盟委员会否决这项交易。具体情况可以参见HelpMysql.org。
2.
去年12月28日,他写了一篇很长的文章“Help keep the internet free”,解释为什么反对这项交易。他是这样写的:
“If Oracle were allowed to acquire MySQL, we would be looking at less competition among databases, which will mean higher license and support prices.”
“如果甲骨文得到了MySQL,数据库市场的竞争将会减少,最终导致更高的价格和收费。”
你觉得这句话对不对?
我觉得不对。我认为,甲骨文公司杀不死MySQL,数据库市场的竞争不可能减少。这并非由于甲骨文公司不想这样做,而是因为MySQL是无论如何都不可能被杀死的(假定始终存在市场需求的话)。
3.
为什么MySQL是杀不死的?
答案非常简单。因为它的许可证是GPL。
GPL明确规定,任何源码的衍生产品,如果对外发布,都必须保持同样的许可证。这就是说,任何人只要发布MySQL的修改版本,他就必须公开源码,并且同意他人可以自由地复制和分发。
现在让我们假想一下:
第一种情况:甲骨文公司决定中止MySQL的开发,会怎么样?
一定会有其他人接手,继续推出MySQL的后续版本,这是GPL许可证允许的,完全合法。虽然不能再叫MySQL这个名字,但是只要代码完全兼容,名字又有什么关系呢。事实上,Michael Widenius自己的公司,现在的产品MariaDB就是基于MySQL的。
第二种情况:甲骨文公司决定,MySQL的后续版本不再开源,或者整体并入Oracle数据库,会怎么样?
答案更简单,不可能发生这种情况。因为根据GPL许可证,只要发布基于原代码的新产品,就一定必须开源。
4.
所以,我实际上觉得,Michael Widenius没有竭力反对的必要。不管甲骨文干什么,MySQL都不可能灭绝。
相反的,真正感到倒霉的人,应该是甲骨文公司才对,因为它花钱买来自己无法控制的财产。任何的代码,只要置于GPL之下,就不再受作者或所有者控制了,想杀也杀不死了。
5.
如果一个程序员想将自己的代码开源,他有许多种选择,大致可以分成三类:
1. 选择GPL许可证,要求衍生代码必须开源。
2. 将代码放入“公共领域”(public domain),彻底放弃版权。
3. 选择更宽松的许可证,比如BSD和Apache许可证,不要求衍生代码开源。
许多人认为,选择后两种做法比选择GPL更值得赞扬,因为更加大公无私。但是,这样的看法是错误的,实际上GPL要好于后两种选择。
让我们再来假想一下,如果MySQL的源码处于公共领域,或者BSD许可证之下,那会怎样?
那样的话,许多站长恐怕都会感到大难临头了。他们不得不做出选择,将来到底是升级到第三方小公司推出的、质量没有保证、支持力量薄弱、互相不兼容的基于MySQL 5.x版本的各种衍生数据库,还是升级到甲骨文公司推出的、与Oracle兼容的、号称具备各种新功能和最佳性能、并且广告满天飞的MySQL 6.0版本。
在BSD许可证或者公共领域代码的情况下,甲骨文公司可以从容地将MySQL 6.0变为闭源产品,推出你只有花钱才能买到的新特性和后继版本,并且只要你复制给他人使用,就要起诉你。使用开源软件的用户,将因此变为依赖甲骨文公司的用户。只有这种情况发生,才真正有必要,竭力反对甲骨文收购SUN公司。
当程序员放弃代码的版权,或者选择BSD许可证,他可能认为自己做出了世界上最无私的行为。很大程度上,事实确实如此。但是,我们要知道,这个世界是一个商业利益占主导的世界。一旦发生像甲骨文拥有MySQL这一类的事情,你的代码的价值将大大削弱,大公司先是免费利用它们,然后再设法推出取代它们的私有产品。你以为自己奉献了爱心,但是实质上变成了为大公司无偿打工。
从这个角度看,GPL是更好的开源许可证。它保证了自由始终是自由,既无法被剥夺,也不是一种圈套或陷阱。
6.
有的朋友读到这里,可能会提出疑问。如果GPL许可证真的这么好,那么为什么GNU基金会还推出了LGPL许可证?
所谓LGPL许可证,全称是Lesser General Public License,直译就是“限制更少的GPL许可证”,1991年时与GPL(第二版)同时发布。它近似于BSD许可证,允许将代码用于闭源产品。
这就产生了一个很有趣的问题。为什么像Richard Stallman这种坚持自由丝毫不可侵犯的人,会同意将自己的代码用于闭源产品?
说起来,这其实是他的策略,主要与GNU C library有关。1991年的时候,市场上有很多C语言库可以选择。如果GNU的C库是GPL许可证,那么很多私有软件不会选择它,因为一旦选择了它,就意味产品本身一定要开源。所以为了保证开源软件得到使用和推广,并且闭源软件中有开源的成分,总比一点没有好,所以才诞生了LGPL许可证。
Richard Stallman说得很清楚:
“After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another—no problem for them, only for us.”
“毕竟,市场上的C库有的是。GPL许可证将迫使私有软件去使用他人的库,这不会给他们带来困扰,只会给我们带来困扰。”
所以,策略是这样的:整体软件,或者没有替代品的代码库,一定要使用GPL许可证;有替代品的代码库,可以使用限制较少的开源许可证,但是在取到足够市场份额之后,也应该转为GPL许可证。这就是为什么javascript的代码库,大多数都是类似BSD的许可证,而不是GPL许可证的原因,因为可替代自己的竞争者实在太多了。
总之,如果你想把自己的软件开源,只要不属于上面这种例外情况,GPL就是更好的选择。
(完)
-
使用AppCan将自己的WordPress打包成移动应用
本人亲测,打包了一个。整个操作流程还是比较简单。
打包后有安装包的二维码下载地址提供,可以尝试一下。
打包步骤如下:
1.下载AppCan-WP插件
http://wp.appcan.cn/download.html
2.进自己的wordpress后台,安装刚才下载的插件
3.如果没有AppCan的帐号,需要注册一个。在左侧菜单可以看到 AppCan WP的入口
4.AppCan采用云端打包,自己不用安装SDK啥的,还是很方便的。
教程到此,其他的功能自己摸索。
-
SIFT Demo
需要下载 OpenCV,GTK+
配置可以参考:
结合OPENSIFT源码详解SIFT算法
也可以单独依据OpenCV,GTK+的配置自行配置
请查看博文:
可能会遇到问题:
1.OpenCV路径配置不对。虽然是第N次配置OpenCV了,但是,还是中招了。标注出来,方便遇到类似问题的亲绕开障碍。
找不到头文件opencv2/core/core_c.h
这个问题网上的搜索的答案说是少增加了目录,但也很可能是添加错了目录。因为最新官方下载的包解压后的目录结构容易搞错,至少我是中招了。基本上OpenCV配置不成功,很大部分是因为这个配置选错了。
对CV感兴趣亲们欢迎加入OpenCV/机器视觉交流QQ群:326798035 全球仅收200个筒子!200个,亲!