标签 开源 下的文章

提供 Maven 中央仓库托管服务的 Sonatype 公司说, Java 组件下载中,有 1/16 的下载组件中包含了已知的安全问题。

Sonatype 声称,开发者们每年要下载超过 310 亿个/次 Java 组件,每天也会新增超过 1 千个新组件以及超过 1 万个的组件新版本。

现在企业都采用托管式的中央组件仓库来存储他们的代码。这些代码中有一些来自私有项目,而更多的则来自于开源代码,在多数情况下,他们只是下载开源代码并导入到其项目中,而不做必要的安全审计。

Sonatype 发现现在企业中的百分之八、九十的代码都是由开源组件构成的,它们直接来自公开的代码导入。

由于这些安全缺陷都是公开的,而且 Sonatype 能够访问到其托管服务的服务器统计数据,相比其他人来说他们得到的数据会更多,因此他们警告开发者们要注意在他们的代码中使用不安全的或过期的组件所带来的风险。

这个警告对于公司来说更加严重,因为如果攻击者对采用有缺陷的组件创建的应用进行攻击,结果就可能导致更多的经济损失。

更老的组件的缺陷率高达三倍

在分析了来自几个不同行业的三千家机构的两万五千个以上的企业应用之后,Sonatype 发现平均每年每个企业都会下载大约五千个不同的组件。

组件越老,就越有可能包含安全缺陷。甚至更糟糕的是, 其中 97% 的下载的组件不能很方便的跟踪和审计。而如果公司仅仅是要修复两千个应用中的 10% 的安全漏洞,就大约需要 742 万美金的巨额投入。

这些问题说明企业需要对软件供应链进行管理,以避免将来出现的缺陷问题。花费在组件安全审计上的时间,将在该项目的以后出现安全漏洞后得到回报。

从这种托管的中央代码仓库中移除有缺陷的组件也应该成为这些项目背后的社区的最高优先级的工作。

软件供应链报告中包含了当今软件供应链的更多信息。

 title=

与会者在 Structure 上听取演讲,Structure Data 2016 也将在 UCSF Mission Bay 会议中心举办。图片来源:Structure Events。

如今真的很难低估开源项目对于企业软件市场的影响;开源软件的集成如此快速地形成了业界常态,我们没能捕捉到转折点也情有可原。

举个例子,Hadoop,改变的不止是数据分析界,它引领了新一代数据公司,它们围绕开源项目创造自己的软件,按需调整和支持那些代码,更像红帽在上世纪 90 年代和本世纪早期拥抱 Linux 那样。软件越来越多地通过公有云交付,而不是运行在购买者自己的服务器,拥有了令人惊奇的操作灵活性,但同时也带来了一些关于授权、支持以及价格之类的新问题。

我们多年来持续追踪这个趋势,这些话题充斥了我们的 Structure Data 会议,而今年的 Structure Data 2016 也不例外。三家围绕 Hadoop 最重要的大数据公司——Hortonworks、Cloudera 和 MapR ——的 CEO 们将会共同讨论它们是如何销售他们围绕开源项目的企业软件和服务,获利的同时回报社区项目。

以前在企业软件上获利是很容易的事情。一个客户购买了之后,企业供应商的一系列软件就变成了收银机,从维护合同和阶段性升级中获得近乎终生的收入,软件也越来越难以被替代,因为它已经成为了客户的业务核心。客户抱怨这种绑定,但如果它们想提高工作队伍的生产力也确实没有多少选择。

而现在的情况不再是这样了。尽管无数的公司还陷于在他们的基础设施上运行至关重要的巨型软件包,新的项目被部署到使用开源技术的云服务器上。这让升级功能不再需要去掉大量软件包再重新安装别的,同时也让公司按需付费,而不是为一堆永远用不到的特性买单。

有很多客户想要利用开源项目的优势,而又不想建立和支持一支工程师队伍来调整那些开源项目以满足自己的需求。这些客户愿意为开源项目和在这之上的专有特性之间的差异付费。

这对于基础设施相关的软件来说格外正确。当然,你的客户们可以自己对项目进行调整,比如 Hadoop,Spark 或 Node.js,但付费可以帮助他们自定义地打包部署如今这些重要的开源技术,而不用自己干这些活儿。只需看看 Structure Data 2016 的发言者就明白了,比如 Confluent(Kafka),Databricks(Spark),以及 Cloudera-Hortonworks-MapR(Hadoop)三人组。

当然还有一个值得提到的是在出错的时候有个供应商给你背锅。如果你的工程师弄糟了开源项目的实现,那你只能怪你自己了。但是如果你和一个愿意提供服务级品质、能确保性能和正常运行时间指标的公司签订了合同,你实际上就是为得到支持、指导,以及有人背锅而买单。

构建在开源之上的商业软件市场的持续成长是我们在 Structure Data 上追踪多年的内容,如果这个话题正合你意,我们鼓励你加入我们,在旧金山,3 月 9 日和 10 日。


via: https://www.linux.com/news/enterprise/cloud-computing/889564-the-evolving-market-for-commercial-software-built-on-open-source-

作者:Tom Krazit 译者:alim0x 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

由于 甲骨文 Oracle 在开源项目上的一些作为,以至于它成了开源界的嘲讽对象。在 2015 年旧金山举办的 JavaOne 大会上,前 太阳微系统公司 Sun Microsystems 的 CEO Scott McNealy 出现在了 Java 20 周年纪念视频中,在那段视频中,他讽刺性的列出了“Java 开发者的 12 大噩梦”,其中第四条是“你喜欢开源和分享,但是你却在甲骨文工作。”这惹得在场的开发者们哄堂大笑,但从其中也可以看出甲骨文在开发者中间的形象。

下面列出了一些甲骨文在开源方面发生的一些事情:

2009 年 12 月

MySQL 的创造者 Ulf Michael "Monty" Widenius 向欧共体(欧盟前身)发起请愿,要求阻止甲骨文收购 太阳微系统公司 Sun Microsystems ,其时,太阳微系统公司刚刚收购了 MySQL 公司一年。Widenius 预测,如果太阳微系统公司被收购,甲骨文有可能将 MySQL 的一部分闭源。

2010 年 1 月

甲骨文完成了对太阳微系统公司的收购。

2010 年 2 月

甲骨文从其产品路线图中排除了 OpenSolaris。

2010 年 3 月

太阳微系统公司的开源官 Simon Phipps 在两家公司合并时离开了该公司。

2010 年 4 月

Java 之父 James Gosling 离开了甲骨文,他后来称该公司“挑战了道德”。

2010 年 8 月

甲骨文内部备忘录告知员工,OpenSolaris 将会中止,Solaris 和 ZFS 也会“关闭”。

OpenSolaris 管理委员会解散。

“完全开放”的 OpenSolaris 和 ZFS 项目 Illumos 启动。

多名 MySQL 团队成员离开并加入了 Rackspace,参与到了 MySQL 分支 Drizzle 项目的开发。

2010 年 9 月

OpenOffice.org 社区的一些成员离开并创立了 文档基金会 The Document Foundation (TDF),并分支出了 LibreOffice 项目。他们邀请甲骨文加入文档基金会。

2010 年 10 月

甲骨文要求文档基金会成员离开 OpenOffice.org 项目,理由是“利益冲突”,并且拒绝加入文档基金会。

LibreOffice 正式成为替代 OpenOffice.org 的一个分支。

甲骨文闭源了 HPC 平台(以前叫做 太阳网格计算引擎 Sun Grid Engine ),转而开源维护 开放网格计算调度器 Open Grid Scheduler 项目。四个月后,整个网格计算团队离开并加入了 Univa。

2010 年 12 月

阿帕奇基金会 Apache Foundation 为其 Java 开源实现版本 Apache Harmony 提出了一个技术兼容配套方案,在甲骨文拒绝许可该方案之后,阿帕奇基金会辞去了 Java 社区进程 Java Community Process (JCP)组织的执行董事席位。

2011 年 1 月

甲骨文申请了商标“Hudson”,这是一个开源的 Java 持续集成平台的名字(社区后来投票改名为“Jenkins”),甲骨文继续以它自己的名字“Hudson”开发该项目。

2011 年 4 月

甲骨文停止了 OpenOffice.org 和 OracleOpenOffice 的开发,两个月后,该公司将代码捐献给了阿帕奇基金会。

2011 年 9 月

甲骨文宣布它将发布 MySQL 的商业扩展,并且该项目将不再是完全开源的了,变成了“ 内核开源 open core ”模式。

2013 年 6 月

甲骨文改变了开源的 伯克利 DB Berkeley DB (BDB)的许可证,从一个 BSD 风格的公开许可证变成了 Affero 通用公开许可证,它要求用户以 GPLv3 或 AGPL 许可证提供其应用的源代码给任何一个通过网络连接到他们的应用的人。这一举动被广泛认为是要么恐吓用户为其开发的应用购买商业许可,要么是想弄死 伯克利 DB Berkeley DB (BDB)。


以上信息仅限于笔者收集到的部分,欢迎大家提交更多可信来源的信息来完善此文。

信息参考来源:arstechnica

(题图来自:zimbio.com)

今年 Black Duck 和 North Bridge 发布了第十届年度开源软件前景调查,来调查开源软件的发展趋势。今年这份调查的亮点在于,当前主流社会对开源软件的接受程度以及过去的十年中人们对开源软件态度的变化。

2016 年的开源软件前景调查,分析了来自约3400位专家的反馈。今年的调查中,开发者发表了他们的看法,大约 70% 的参与者是开发者。数据显示,安全专家的参与人数呈指数级增长,增长超过 450% 。他们的参与表明,开源社区开始逐渐关注开源软件中存在的安全问题,以及当新的技术出现时确保它们的安全性。

Black Duck 的年度开源新秀奖 涉及到一些新出现的技术,如容器方面的 Docker 和 Kontena。容器技术这一年有了巨大的发展 ———— 76% 的受访者表示,他们的企业有一些使用容器技术的规划。而 59% 的受访者正准备使用容器技术完成大量的部署,从开发与测试,到内部与外部的生产环境部署。开发者社区已经把容器技术作为一种简单快速开发的方法。

调查显示,几乎每个组织都有开发者致力于开源软件,这一点毫不惊讶。当像微软和苹果这样的大公司将它们的一些解决方案开源时,开发者就获得了更多的机会来参与开源项目。我非常希望这样的趋势会延续下去,让更多的软件开发者无论在工作中,还是工作之余都可以致力于开源项目。

2016 年调查结果中的一些要点

商业价值

  • 开源软件是发展战略中的一个重要元素,超过 65% 的受访者使用开源软件来加速软件开发的进度。
  • 超过 55% 的受访者在生产环境中使用开源软件。

创新的原动力

  • 受访者表示,开源软件的使用让软件开发更加快速灵活,从而推进了创新;同时加速了软件推向市场的时间,也极大地减少了与上司沟通的时间。
  • 开源软件的优质解决方案,富有竞争力的特性,技术能力,以及可定制化的能力,也促进了更多的创新。

开源商业模式与投资的激增

  • 更多不同商业模式的出现给开源企业带来了前所未有的价值。这些价值并不依赖于云服务和技术支持。
  • 开源的私募融资在过去的五年内,已增长了将近四倍。

安全和管理

一流的开源安全与管理实践的发展,也没有跟上人们使用开源不断增长的步伐。尽管备受关注的开源项目近年来爆炸式地增长,调查结果却指出:

  • 50% 的企业在选择和批准开源代码这方面没有出台正式的政策。
  • 47% 的企业没有正式的流程来跟踪开源代码,这就限制了它们对开源代码的了解,以及控制开源代码的能力。
  • 超过三分之一的企业没有用于识别、跟踪和修复重大开源安全漏洞的流程。

不断增长的开源参与者

调查结果显示,一个活跃的企业开源社区,激励创新,提供价值,共享情谊:

  • 67% 的受访者表示,它们积极鼓励开发者参与开源项目。
  • 65% 的企业正致力于开源项目。
  • 约三分之一的企业有专门为开源项目设置的全职岗位。
  • 59% 的受访者参与开源项目以获得竞争优势。

Black Duck 和 North Bridge 从今年的调查中了解到了很多,如安全,政策,商业模式等。我们很兴奋能够分享这些新发现。感谢我们的合作者,以及所有参与我们调查的受访者。这是一个伟大的十年,我很高兴我们可以肯定地说,开源的未来充满了无限可能。

想要了解更多内容,可以查看完整的调查结果


via: https://opensource.com/business/16/5/2016-future-open-source-survey

作者:Haidee LeClair 译者:Cathon 校对:wxy

在刚结束的这个夏天里,我是 NASA 格伦中心 GVIS 实验室的实习生,我将我对开源的热情带到了那里。我的任务是改进我们实验室对 Dan Schroeder 开发的一个开源流体动力学模拟器的贡献。原本的模拟器可以显示用户用鼠标绘制的障碍物,并建立计算流体动力学模型。我们团队的贡献是加入图像处理的代码,分析实况视频的每一帧以显示特定的物体如何与液体相互作用。而且,我们还要做更多事情。

我们想要让图像处理部分更加健壮,所以我致力于改善图像处理库。

得益于新的库,模拟器可以检测轮廓、进行空间坐标变换以及找到物体的质心。图像处理并不直接与流体动力学模拟器物理相关。它用摄像头检测物体,并且获取物体轮廓,为流体模拟器创建一个障碍物。随后,流体模拟器开始运行,而输出结果会被投射到真实物体上。

我的目标是通过以下三个方面改进模拟器:

  1. 找寻物体的轮廓
  2. 找寻物体的质心
  3. 能对物体中心进行相关的精确转换

我的导师建议我安装 Node.jsOpenCVNode.js bindings for OpenCV。在等待软件安装的过程中,我查看了 OpenCV 的 GitHub 主页上的示例源码。我发现示例源码使用 JavaScript 写的,而我还不懂 JavaScript ,所以我在 Codecademy 上学了一些课程。两天后,我对 JavaScript 依旧生疏,不过我还是开始了我的项目……它包含了更多的 JavaScript 。

检测轮廓的示例代码工作得很好。事实上,它使得我用几个小时就完成了第一个目标!获取一幅图片的轮廓,它看起来像这样:

包括所有轮廓的原始图

检测轮廓的示例代码工作得有点好过头了。不仅物体的轮廓被检测到了,整个图片中的轮廓都检测到了。这会导致模拟器要与那些没用的轮廓打交道。这是一个严重的问题,因为它会返回错误的数据。为了避免模拟器接触到不想要的轮廓,我加了一个区域约束。轮廓要位于一定的区域范围内才会被画出来。区域约束使得轮廓变干净了。

过滤后的轮廓,包含了阴影轮廓

虽然无关的轮廓没有了,但是图像还有个问题。图像本该只有一个轮廓,但是它来回绕了自己两次,没有完整地圈起来。区域在这里不能作为决定因素,所以必须试试其他方式。

这一次,我不是直接去找寻轮廓,而是先将图片转换成二值图。二值图是转换之后只有黑白像素的图片。为了获取到二值图我先把彩色图转成灰度图。转换之后我再用阈值函数对图片进行处理。阈值函数遍历图片每个像素点的值,如果值小于 30 ,像素的颜色就会改成黑色。否则取反。在原始图片转换成二值图之后,结果变成这样:

二值图

然后我获取了二值图的轮廓,结果是一个更干净的轮廓,没有了阴影轮廓。

最后的干净轮廓

这个时候,我可以获取干净的轮廓、计算质心了。可惜的是,我没有足够的时间去完成质心的相关变换。由于我的实习时间只剩下几天了,我开始考虑我在这段有限时间内能做的其它事情。其中一个就是边界矩形。边界矩形是包含了图片轮廓的最小四边形。边界矩形很重要,因为它是在页面上缩放轮廓的关键。虽然很遗憾我没时间利用边界矩形做更多事情,但是我仍然想学习它,因为它是个很有用的工具。

最后,经过以上的努力,我完成了对图像的处理!

最终图像,红色的边界矩形和质心

当这些图像处理代码写完之后,我用我的代码替代了模拟器中的老代码。令我意外的是,它可以工作。

嗯,基本可以。

程序有内存泄露,每 1/10 秒泄露 100MB 。我很高兴不是因为我的代码。坏消息是我并不能修复它。另一个好消息是仍然有解决方法,虽然并非最理想的,但我可以使用。这个方法是不断检查模拟器使用的内存,当使用内存超过 1GB 时,重新启动模拟器。

在 NASA 实验室,我们会使用很多的开源软件,没有这些开源软件的帮助,我不可能完成这些工作。


via: https://opensource.com/life/16/3/image-processing-nasa

作者:Lauren Egts 译者:willowyoung 校对:PurlingNayuki

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这篇文章中,我将会分享我的方法,让大家利用开源贡献在技术领域的求职中脱颖而出,成为强有力的候选者。

凡事预则立,不预则废。在你即将进入一个新的领域或者正准备熬夜修订你的简历之前,清楚地定义你正在寻找的工作的特征是值得的。你的简历是一部有说服力的作品,因此你必须了解你的观众,从而让它发挥出所有的潜力。看你简历的可能是任何需要你的技能并且能在预算之内聘用你的人。当编辑简历的时候,读一读你的简历上的内容,同时想象一下,以他们的角度怎么看待这份简历。你看起来像是一个“你”将会聘用的候选人吗?

我个人认为,对于目标职位的理想候选人所表现出来的关键特征,列出一张清单是很有帮助的。我结合了个人经验、阅读工作招聘信息、询问相同角色的同事等方面来收集这个清单。LinkedIn 和各种会议是寻求一些乐意提供这种建议的人的很好的地方。一些人喜欢谈论他们自己,那么通过邀请他们讲述他们自己的一些故事可以帮助你来拓展你的知识面,这样大家都会感觉很好。当你和其他人谈论他们的职业路线时,你不仅将会明白怎样去得到你想要从事的工作,而且还能知道你应该避免那些容易让你失去工作机会的特征或行为。

例如,对于一个不太资深的工作位置来说,关键特征列表可能如下所示:

技术方面:

  • 拥有 CI (持续集成) 方面的经验,特别是 Jenkins
  • 深厚的脚本编写背景,如 Python 和 Ruby
  • 精通 Eclipse IDE
  • 基本的 Git 和 Bash 知识

个人而言:

  • 自我驱动的学习者
  • 良好的交流和文档技巧
  • 在团队开发方面富有经验(团队成员)
  • 精通事件跟踪的工作流

尽管去申请职位

记住,你没有必要为了得到一份工作而去满足上面的工作描述列表中列出的每个标准。

工作细节(JD)描述了这个角色,让你一开始就知道你即将签约并为之工作几年的公司的全部信息,并且这份工作并不会让你觉得有什么挑战性,或者要求你去拓展你的技能。如果你对你无法满足清单上的技能列表而感到紧张,那么检查一下自己是否有来自其他方面的经历并能与之媲美的技能。例如,即使有些人从来没有使用过 Jenkins,那他也可能从之前使用过 Buildbot 或者 travis CI 的项目经验中明白持续集成测试的原则。

如果你正在申请一家大型公司,他们可能拥有一个专门的部门和一套完整的筛选过程来确保他们不会聘用任何不能胜任职位的候选人。也就是说,在你求职的过程中,你所能做的只是提交申请,而决定是否拒绝你是公司管理层的工作。不要过早地将工作拒之门外。

现在你已经知道了你的任务是什么,并且还知道你将需要让面试官印象深刻的技巧。下一步要做的取决于你已有的经验。

制造已经存在的事物之间的关联

列出一张你过去几年曾经参与过的所有项目。下面是一条快速得到这张清单的方法,跳转到你的 Github profile 中的Repositories标签页,并且过滤掉 fork 过来的项目。除此之外,检查下你的清单上是否有曾经处于领导地位的Organizations。如果你已经有了一份简历,那么请确保你已经将你所有的经历都列在了上面。

考虑下任何一个你曾经作为一个潜在的领导经历并拥有过特权的 IRC 频道。检查下你的 Meetup 和Eventbrite 账号,并将你曾经组织过或者作为志愿者参与过的活动添加到你的清单上。浏览你前几年的日程并且标注所有志愿服务,或者有作为导师的经历,又或者参与过的公共演讲。

现在进入了比较艰难的环节了,将清单上列出的必备技能与个人经历列表上的内容一一对照,我喜欢给该工作所需要的每个特征用一个字母或者数字作为标记,然后在每一段你经历或参与过并表现出了某一特征的地方标记相同的符号。当你不太确定的时候,那就毫不犹豫地标记上它,尽管这样做更像是在吹嘘,但也好过显示出你的无能。

在我们写简历的时候常常被这样的情况所困扰,就是我们不愿冒着过分吹嘘自己的技能的风险。通常应该这样去想,“那些组织了聚会的人会表现出了更好的领导才能和计划技巧吗?”,而不是“当我组织了这个聚会的时候我是否展示出了这些技巧?”。

如果你已经充分了解了你在过去的一两年里的业余时间都是怎么度过的,而且你写了很多代码,那么你可能现在正面临着一个令人奇怪的问题,你已经拥有了太多的经验以至于一张纸的简历已经无法容纳下这些经验了。那么,如果那些列在你的清单上的经验,但无法证明你尝试去表现的任何技能的话,那么请扔掉它们吧。如果这份已经被缩短的简历清单上的内容仍然超过一张单页纸的容量的话,那么将你的经验按照一定的优先级排序,例如根据与所需技术的相关经历或丰富经验。

在这一方面,显而易见,如果你想要磨练一个独特的技能,那么你就需要一个不错的经历。考虑使用一个类似 OpenHatch 的问题聚合器,并用它来寻找一个通过使用你从没使用过的工具和技术来锻炼你的技能的开源项目。

让你的简历更加漂亮

一份简历是否美观取决于它的简洁度、清晰度和布局。每一段经历都应该通过足够的信息来展示给读者,并让他们立刻明白为什么你要将它包含进去,而且恰到好处。每种类型的信息都应该使用一致的文档格式来表示,一份含有斜体格式的日期或者右对齐的或者与整体风格不协调的部分绝对会让人分心。

使用工具来给你的简历排版会使之前设定的目标更加容易实现。我喜欢使用 LaTeX,因为它的宏系统能够使可视化一致性变得更加容易,并且大量的面试官都能一眼就认出它。你的工具的选择可能是 LibreOffice 或者 HTML,这取决于你的技能和你希望怎样去发布你的简历。

记住一点,一份以电子方式提交的简历可以通过关键字被浏览到。因此,当你需要描述你的工作经历的时候使用和工作招聘告示一样的英文缩写对你的求职会有很大的帮助。为了让你的简历更加容易被面试官看到,首先就要放上最重要的信息。

程序员通常难以在为文档排版时量化平衡和布局。我最喜欢的修改和评估我的文档中的空格是否处于正确位置的技术,就是全屏显示我的 PDF 或者打印出来,然后在镜子里面查看它。如果你正在使用 LibreOffice Writer,保存一份你的简历的副本,然后将你的简历中的字体换成一种你看不懂的语言。这两种技术都强制将你从阅读的内容中脱离出来,让你以一种新的方式查看文档的整体布局。他们把你从一个“那句话措辞不当!”这样的批评转到了注意如“在这行上只有一个字,看起来挺逗”之类的事情。

最后,再次检查你的简历是否在它将要的展示的多媒体上看起来完全正确。如果你以网页的形式发布它,那么在不同屏幕大小的浏览器中测试它的效果。如果它是一份 PDF 文档,那么在你的手机或者你的朋友的电脑上打开它,并确保它所需要的字体都是可用的。

接下来的步骤

最后,不要让你辛苦做出来的简历内容浪费了,将它完整的复制到你的 LinkedIn 帐号上(完全使用招聘公告中的流行词),然后毫无疑问招聘人员就会找到你了。尽管他们描述的工作内容并不是恰好适合你,但是你可以利用他们的时间和兴趣来得到关于你的简历中有哪些地方好与不好的反馈信息。


via: https://opensource.com/business/16/2/add-open-source-to-your-resume

作者:edunham 译者:kylepeng93 校对:mudongliangwxy

本文由 LCTT 原创编译,Linux中国 荣誉推出