纪念我第一次为开源社区贡献的代码,开源社区贡献


最近由于继续做在职研究生的毕业论文,在openstack上下了一些功夫,做了一个基于openstack的弹性扩展的小程序,中间需要调用Ceilometer的API接口对虚拟机的cpu使用效率做监控。试用了几乎所有的openstack的java API开发包,其中jclouds没有Ceilometer的API接口,openstack-java-sdk的Ceilometer支持很差,基本无法使用,所有最终选择了openstack4j。它的API还是比较好用,底层用了jersey。但是在调用Ceilometer的时候遇到了一个小小的bug(https://github.com/gondor/openstack4j/issues/24),Ceilometer的REST API接口返回了XML格式的结果,导致程序无法自动匹配模型类的属性。几经debug找到了问题的罪魁祸首,原因是源代码中WebTarget.request();没带参数,无法设置请求头中的Accept属性。

我修改了一行代码,加入了target.request(MediaType.APPLICATION_JSON);代码,并且进行了pull,等了一天多,

德国狂虐了巴西7:1,openstack4j的作者gondor 把我的代码merged到了master,算是第一次成功提交了代码。(https://github.com/gondor/openstack4j/pull/25)。在这里贴一个图纪念一下,以后有能力要继续为社区提交更多的代码。



有开源的社区代码不

open-open上都是比较经典的开源代码,这里是社区类的,你看看www.open-open.com/09.htm
 

开源代码是什

开放源码
众所周知,所有的软件都用源码编写,并通过编译最终生成系统或应用。开放源码软件保证所有人可以得到这些代码。这意味着没有一个公司可以完全独占它。开放源码意味着自由选择的权力,而自由选择意味着激发更多创新的能量。
我们深信开放源码在软件发展过程中是必然的。它把控制权交还给使用者和客户。您可以查看系统运作的所有源码,或进行修改,或从中汲取相关的知识。系统缺陷和漏洞可以更快地被发现并加以修正。并且,当客户不满意一个供应商的服务,他们可以选择更好的服务提供商来建设他们的信息基础设施。没有技术的壁垒,也没有市场的垄断。
同时,我们深信开放源码有利于开发更高质量,更稳定可靠的软件系统。它可以几何级数地提升各个公司的开发能力。大家协同工作,最好的软件将获得认可和胜利。我们不再局限于一个公司的小范围开发,我们在基于互联网的世界范围的合作团体和社区内工作,并通过互联网即时地传递新的想法和代码,促进整个软件开发的进步和繁荣。
因此,开放源码的模式可以帮助开发出更高质量,更安全,更易用的集成软件。它的确使软件开发的步伐迈得更加快速,并有效降低了成本。
许多象红帽这样的公司致力于开放源码模式的软件开发,提供高价值、高性能、更好集成易用性和管理易用性的软件和产品。让我们的共同努力,共同推动开放源码的繁荣和进步。
在非开源模式即拥有者模式下,开发人员为一家公司开发程序,源码隐藏在系统应用之后不为公众所知。用户不仅需要购买软件,并且在损坏修复时需要支付更多的费用。没有人知道软件的好坏。
更加糟糕的是,我们使用非开源软件后便被束缚于其产品的结构、协议和文件格式等,并不得不继续购买或升级同一个产品。Bruce Perens 称之为 “上瘾”模式的软件采购。我们应该打破这种模式,打破任何一种像这样的为客户带来具有根本性缺陷产品的模式。
开放源码并不意味着没有名称,也并不意味着这是一个慈善机构,更不仅仅是单一社团的努力。我们今天看到的是受市场推动的技术革新,而且将继续繁荣和发展下去。
开放源码的概念并非是个新概念。几个世纪以来,各个大学和研究机构已经并正在共享他们的科学研究和工作。僧侣们抄写书籍,科学家们在期刊上发表他们的新发现,数学家的公式被分发,提高,再分发。
试想如果过去的知识被深深隐藏,或者只能限制给愿意付钱的人使用,世界会是怎样一个场景。而现在仍然存在类似于非开放源码即拥有者模式的软件开发的模式。所以,同样地,为了共享知识,促进社会进步,开放的技术开发将更加繁荣,并为整个产业带来革新。
 

相关内容