标签 开源 下的文章

开发开源软件背后的工作是相当庞大的。那么我们如何保证开源项目的成功呢?存在捷径吗?本文认为是没有的。

今天,开源已经风靡世界。很多大型企业在快速成功的诱惑下被推向开源。但真实情况是世界上并不存在成功的捷径。你无法做到通过一次努力就能让所有的开源项目正常运行。

事实上,上述公司早期遇到的许多挑战都不是技术上的,而是人员与文化上的。

开发一个能够在市场上获得成功的开源项目需要在开源的许多层面上下功夫。而维持这样的成功是一个持续的过程。所有这一切的关键在于找到以下这个非常基本的问题的正确答案:开源究竟是什么。

开源是代码

对于很多新用户而言,他们可能并不完全了解开源的不同层面,答案相当简单:开源就是软件!这当然没有错,毕竟我们多数人就是这样使用它的。不过,相比仅仅被视作软件而言,开源远不止这些。

任何开源项目的实质仍然是代码本身。代码是使一个开源项目有别于其他项目,并使其对用户有益的根本。当你从事开源工作的时候,代码和软件一样都是产品的一部分。

从零开始开发一个开源项目或者 复刻 fork 一个现有项目,即便是在面对一个庞大而复杂的代码库时,也需要编写成千上万行代码。尤其是在创建一个现有项目的复刻的情况下,在移除任何在先的许可证、宣传材料或者其他任何可能已经失去作用的文件时必须小心翼翼(LCTT 校注:部分开源项目不允许你改变其原有的许可证)。终究是一个项目的功能吸引了它的用户群并维持项目的持续发展。当最终用户在考虑是否使用开源软件的时候,他们会阅读项目的源代码,而他们在其中所看到的应当是那些能够建立他们的信心的内容。

开源是社区

如何参与到社区中也是产品构建的一部分。创建一个社区并维护一个健康的社区关系是开源的核心之一,但对于大部分的领导者而言也往往是最坚难的任务,很少有人能很好地维护它。你可以尝试建立基金会或者提供赞助,但是最终还是由人们自行决定是否想要加入社区。

重要的是与社区保持一定程度的透明度,并不断保持。社区成员可以在它想要的任何阶段参与进来。除了需要进行的工作之外,诸如安全设置、签发证书、注册商标等,尽可能多的将你所做的工作展示给社区是相当重要的,这有助于取得社区信任。归根到底,你需要对社区负责,你的项目成也社区,败也社区。这可能会导致你的项目开发更谨慎、更缓慢并且向社区公开,不过项目最终会进展顺利。

如此地公开你正在进行的工作似乎有些令人生怯,尤其是当你担心更新推迟或者是出现漏洞的影响的时候。不过,让社区成员知悉你的进展,不仅有助帮助你建立与社区之间的信任关系,而且能够让社区成员感到被认可。

另一方面,公开你的工作流也可以获得来自社区成员的监督,他们经常有自己的见解并向你反馈。记录这些反馈是很重要的,这使得你的开源项目如实地反映社区需求。他们是项目的最终用户,而他们的反馈则反映了他们如何看待你的项目的长期发展,以及你的项目最终将有多么成功或者主流。

举例而言,当我们在考虑一个新功能的时候,我们在 征求意见文档 Request for Comments (RFC)中发布一个征集意见的请求,我们会收到大量的反馈,我们必须认真思考应当如何吸收这些反馈。

因为开源是一个大型的合作项目,社区对支持开源项目的主动支持,使项目成为了最好的项目。并非所有的问题都要解决,但只要你有在倾听社区的呼声,社区就会有参与感。

参与到社区中也存在一些隐患。社区内部、项目维护与社区之间均可能存在不同意见,尤其是在涉及治理的问题上。治理对于一个开源项目来说是相当重要的。这也就是为什么拥有一份清晰的文档化的治理条例对于项目以及社区均是如此重要。

社区治理是一个关键的而又难啃的骨头。社区授权本身需要相当大的信任。对于一个拥有成千上万行代码的项目,在社区中寻找能够有效领导社区的人物是不容易的。不过开源项目经常是由更小的子项目组成的,这些子项目最好由社区中的某个人进行管理。这有助于社区更紧密地参与到项目中。

建立社区的过程不是一帆风顺的。让我列举一一些有助于维持社区与我的团队之间平衡的技巧。

声明你的原则: 尤其是在开源项目的早期,在项目代码仍在完善,很多事情还不完美的时候,项目之外的人员很难真正理解你所做的决定。向他们说明你做出决定所依据的原则,有助于你在思考过程上保持坦率,从而让社区不会错误地干扰你的事务。这一经验非常有效,在你做出决定时坚持遵循其中一项原则并展示出来是非常重要的。

确定如何进行协作: 你可以通过 Discord、Slack 或者邮件等途径完成这一工作。但是如果你试图同时使用它们,你将毫不意外的分散项目社区。社区人员将在所有这些途径上互相交流。选择一到两种沟通工具,投身于它们来保证社区的信息同步。

珍惜反馈意见: 倾听来自社区的反馈并付诸行动。即使需要你作出艰难的决定,你也应当向社区展示你是重视社区话语的。

维护一套行为准则: 如果你与社区打交道,你需要定义什么行为是可以接受的。一套落地的行为准则有助于在人们越过红线时警示他们。如果你可以提前制定这些你可以避免很多麻烦。

考虑如何分发你的项目: 存在这样的情况,因为你还没有准备好某一个组件,或者是因为存在一些你不希望所有人都能够访问的项目功能,所以你可能并不希望将你的项目完全向公众公开。关键是制定符合你的要求而不是向用户妥协的分发条款,如此,需要某种功能的用户可以获取所需项目的同时,不需要该功能的用户也不需要在开始使用该项目做出妥协。

尽可能地避免投票: 这是因为部分成员经常会赞成与大部分成员的意见相左的选项,这会使这些人产生一定程度的失望,并让他们觉得被项目所孤立。反之,尽量尝试询问他们想要解决什么问题,并尝试创造一个不需要付出代价的解决方案。

开源是许可

开源是给予你的用户如何使用你的软件的自由,而许可能够做到这一点。开源项目许可的好处在于,它保证了不论你作为维护者做了什么,你的所有最终用户以及利益相关方总是可以维护一系列的项目复刻版本,这些都是重要的项目复刻。

许可提供了人们可选择性,如果他们认为有必要,他们可以将项目带到不同的路径中。他们拥有创建副本的权利,这使得许多优秀的软件能够被开发出来。维护者有责任倾听他们的社区成员的声音,并以一个对项目的社区成员有利的方式运营项目。

我们推荐使用现有的许多可用的许可证,而不是独立制作你自己的许可条款,原因很简单,因为用户以及利益相关方通常都很熟悉常用的许可证,因此你不需要再花费时间在解释许可条款上。这将帮助你将你的精力集中在项目的其他部分上。

最后,开源是一项运动

开源包括了很多维度,也包含了很多人员。最重要的是,它是关于理解人们想要什么,并创建一个鼓励协作与透明的环境。开源也是关于创建社区,帮助建立走自己想走的开源项目的方式。维护者创造越多的机会让社区自由发挥,开源产品就越好,也越发成功。

开源是以上所有这些方面,而你的视野越宽阔,你就能越好的利用它。请考虑你如何能够在开源的每一个维度上出类拔萃,因为时至今日,开源的成功之路并无捷径。


via: https://www.opensourceforu.com/2022/07/open-source-software-is-there-an-easy-path-to-success/

作者:Jules Graybill 选题:lkxed 译者:CanYellow 校对:wxy

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

如果你想通过非代码贡献成为一个提交者,或者没有时间做代码贡献,那么第一步就是加入社区。

对于不同的人来说,开源“社区”意味着不同的东西。我认为开源有点像“爱情”,因为它是关于人和关系的。把开源当作一个社区,因为没有人,就没有源代码,无论是开源还是闭源。

我是 Apache DolphinScheduler 社区的成员。由于该项目有意保持低代码,因此它吸引了许多 非软件开发人员。有时,那些不编写代码的人不确定是否有一种有意义的方式来为主要由源代码组成的开源项目做出贡献。我的经验告诉我,有,我将在本文中解释原因。

向社区做出贡献

在 Apache DolphinScheduler 项目中,我主要负责全球运营、影响力和社区关怀。

一些人会说项目是树而开源是土壤。这是一个恰当的比喻,它说明了积极培育你想要帮助成长的东西的重要性。

我有一个更简单的想法:尽一切可能使其变得更好。

一个社区需要不断的关注,不是因为它很贪心,而是因为它是生活的一部分。社区是你身边的人,无论是物理空间还是在线空间。

自从加入开源社区以来,我已经独立发起并组织了一些活动,包括:

  • 平均每月在中国举办一次会议。
  • 建议社区参与大数据领域内的技术分享。
  • 协调了中国“大数据”领域几乎所有的开源项目,与这些社区进行了个别访问和交流。

在我看来,一个优秀的项目应该在一个良好的生态系统中成长。社区需要走出去,交换想法,分享资源,并与其他优秀的社区合作。每个人都应该感受到社区在工作中带来的好处。

我的海外扩张遵循相同的模式。当然,由于文化和语言的差异,这样做很困难。这需要耗费精力,但这是值得的。

到目前为止,我们已经在包括美国、印度、新加坡、德国、法国、芬兰等国家成功举办了会议。

所以我如何为 DolphinScheduler 做出贡献?我是否向项目提交代码?我是社区经理吗?我有正式的职称吗?

我认为自己是一个助手。我促进沟通和联系,这与任何代码贡献一样,都是 “Apache Way” 的一个例子。

从 DolphinScheduler 开始

我第一次接触开源是在开放原子基金会工作时,担任开源教育运营经理。作为中国第一个开源基金会,开放原子运营了以 OpenHarmony 为代表的许多项目。

我加入了 DolphinScheduler 社区并发现了一群热衷于分享知识、提供指导和支持,并热衷于帮助其他人发现对他们自己的生活有用的工具的人。

DolphinScheduler 旨在成为一个拥有全球影响力的调度系统,帮助团队以 敏捷 和高效的方式工作。

对社区的第一印象

听到社区对项目开发的抱怨是一件常见的事情。我们都会时不时地抱怨。也许你报告了一个错误,但开发人员没有解决你的问题。或者,也许你有一个很棒的功能想法,但团队忽略了它。如果你是一个开源社区的成员,你以前就听到过这些不满,如果你没有,你最终会听到。

我了解到,这些声音对于开源社区来说都很重要。这是一个好现象,因为当你听到这些反馈时,这意味着社区愿意发现错误,报告它们,提出问题和回答问题。听到这些抱怨可能会揭示项目结构中需要改进的地方。社区中是否有志愿者可以回应错误报告并对它们进行分类,以便它们能够被分配给正确的开发人员?是否有一个志愿者组等待成立,以便迅速回应项目论坛或论坛中新人的问题?

开源项目的门口有一个招待员可以帮助邀请犹豫不决的社区成员。招待员还可以确保没有“门槛”。每个人都受欢迎,每个人都有自己的贡献,即使他们能提供的只是互相帮助的氛围。

尽管你我都希望能为每个人解决技术问题,但这是不现实的。但任何人都愿意帮助找到解决方案,这是社区的一个伟大优势。这些用户自发地充当了社区的“客户服务”部门。

在 DolphinScheduler 项目中,我们有很多人(Yan Jiang、Xu Zhiwu、Zhang Qichen、Wang Yuxiang、Xiang Zihao、Yang Qiyu、Yang Jiahao、Gao Chufeng 和 Gao Feng,顺序不分先后!)。即使他们不开发解决方案,他们也不遗余力地寻找能够开发解决方案的人。

给社区的话

如果你希望通过非代码贡献成为提交者,或者没有时间进行代码贡献,那么第一步就是加入社区。没有注册表格或批准流程,但也没有快速通道。你通过参与加入社区。你通过可靠且持续的参与与其他人建立关系。

我随时都可以聊天,总是渴望谈论全球活动组织、文档、反馈等。

成为提交者

Apache DolphinScheduler 面临着许多挑战。大多数公司,即使是支持开源的公司,也会选择非开源的商业工具。我希望与社区合作伙伴一起,使 DolphinScheduler 成为世界级的调度系统。我希望每个人都可以收获他们想要的技术成果,而 DolphinScheduler 可以帮助他们实现这一目标。

加入我们的社区,帮助我们推广开放和敏捷的工作方式。或者找到一个需要你非编码技能的项目。发现让你的同龄人社区获得力量是多么酷和有趣!


via: https://opensource.com/article/23/3/non-code-contribution-open-source

作者:Debra Chen 选题:lkxed 译者:Cubik65536 校对:wxy

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

社区开发预装 Flatpak 而不是 Snap 的 Ubuntu 特色版

在 Canonical 宣布未来的 Ubuntu 发行版及其特色版默认 不包括 Flatpak 支持之后,有人制作了一个非官方的 Ubuntu 特色版 Ubuntu Flatpak Remix。它移除了 Snap 应用支持,而预装了 Flatpak 应用支持。这包括几个关键的应用程序,如 Firefox、Thunderbird 和 LibreOffice 等。此外,你还可以从 Flathub 安装更多的 Flatpak 应用。

消息来源:9to5linux
老王点评:这就是社区的价值,看看会有多少人去选择 Flatpak 特色版的 Ubuntu。

调查发现:开源是最值得信任的技术

Stack Overflow 调查了数千名开发人员发现,开源(6.9)、云计算(6.5)和机器学习(5.9)是最值得信任的技术,而得分最低的是量子计算(3.7)、纳米技术(4.5)、低代码/无代码(4.6)。在评价技术对世界的影响时,正面平均得分最高的技术是开源技术(7.2)、可持续技术(6.6)和机器学习(6.5);负面平均得分最高的技术是低代码/无代码、内源和区块链,均为 5.3分。

消息来源:Stack Overflow
老王点评:开源得到信任果然已经是共识了。

GitHub 要求更多开发者使用 2FA

GitHub 将从 3 月 13 日起要求更多账户启用双因素认证(2FA)。到 2023 年底,这一规定将扩大到所有在 GitHub 上贡献代码的开发者。在该要求生效前 45 天,这些用户会在产品内和通过电子邮件收到定期提醒。如果在截止日期的七天后仍然没有这样做,他们将无法访问 GitHub 的大部分功能。在过去几个月里,GitHub 一直在逐步向特定类型的用户推出这一要求。GitHub 称,它之所以这样做,是因为 GitHub 是软件供应链的一个重要组成部分,而现在只有大约 16.5% 的 GitHub 活跃用户使用 2FA。

消息来源:Ars Technica
老王点评:这应该是一种有效提高软件供应链安全的方式,其实并不麻烦。

你可能会惊奇地发现,那些你每天使用的工具竟是开源的。

 title=

最近,我受邀介绍网络上可用的免费和开放资源。这次演讲是当地为保持我们社区的正常运转而做出的部分尝试 —— 由我家附近的 圣文德大学 St. Bonaventure University Foster Center 赞助。 我分享的一些资源不是开源的而是免费的,但许多工具是开源的。

看到有不少人知道我所提到的工具真的很有趣。很多人并不知道他们每天使用的工具都是开源的,并且他们还可以与他人分享。

开源浏览器

使用网络需要一个好的浏览器,而 Firefox 是开源的,这一点很多在场的人并不清楚。除了是开源,Firefox 还具有强烈的隐私意识,这是许多用户越来越关注的问题。不过,有趣的是,即使是微软的新浏览器也是基于开源 Chromium 项目的。

开源网络隐私

通常,保护你的隐私和改善你的网络体验的另一种方法是使用 uBlock Origin 来阻止广告。根据他们的网站:

uBlock Origin 是一个免费、开源、跨平台的内容过滤浏览器扩展——主要旨在以一种高效、用户友好的方法消除隐私侵犯。

其代码采用 GPL v. 3.0 许可证。

电子前沿基金会 Electronic Frontier Foundation (EFF)还维护 Privacy Badger———— 这是一个根据 GPL v.3.0 许可的网络浏览器扩展程序。根据他们的 GitHub 存储库,它是:

一个可以自动学习阻止隐形的跟踪器的浏览器扩展程序。Privacy Badger 没有一个要阻止的列表,而是根据它们的行为自动发现跟踪器。

除了隐私之外,我的演讲还分享了安全密码的重要性。我的听众了解到了 Bitwarden。许多人不知道如何生成安全密码、区分不同网站的密码以及如何安全地存储它们。我演示了该软件如何创建密码并使用 Bitwarden 将这些密码存储在云中。我解释了用户如何通过浏览器插件、台式机和笔记本电脑应用程序以及在安卓或 iOS 移动设备上访问这些凭证。

开源通讯工具

本次演讲中,我谈到了通讯工具在我们生活中的无处不在,但同时它本身固有的不安全性。观众不知道 Signal。我已经使用 Signal 几年了,并经常鼓励其他人将其视为一个安全的消息传递平台。在 Linux、macOS、Windows、安卓iOS安装 Signal 很容易,它提供了出色的 文档 支持,对不同的操作系统都有着详细的安装说明。Signal 使用你现有的手机号码,只要它可以发送和接收短信和打电话。当你第一次在手机上设置 Signal 时,它会在你的通讯录上搜索同样使用 Signal 的联系人。

开源办公工具

如果不提及我最喜欢的内容创建工具 LibreOffice,那么关于开源工具的介绍是不完整的。尽管它很受欢迎,但还是有许多人并不知道它的存在以及使用它所带来的自由。我每天都用它来写文章。我使用它来做表格而不是 Excel,有时我用它来做演示文稿。你可以在 Linux、macOS 和 Windows 上下载并安装它。LibreOffice 的优点之一是你真正拥有自己的文档,不需要昂贵的程序来访问它们。

开源博客软件

WordPress 是我最喜欢的博客引擎,你可以通过多种方式使用它,无论是分享你对世界大事的看法、为你的 学生 提供低成本写作平台,还是在网上为你的 业务 做宣传。

开源媒体库

在创建内容时,你需要可以轻松合法共享的图片来说明你的作品。OpenClipart 是我的首选。这里有数以千计的各种流行格式的图片,可以放在你的 LibreOffice 文档和博客文章中。此外,你可以通过 知识共享 Creative Commons 找到你可以分享的图片,并注明适当的出处。知识共享提供的许可,使共享变得更容易。它是版权的延伸,让分享图片变得更容易。但请务必熟悉许可证之间的细微差别。

开源视频会议

疫情改变了会议和聚会的模式。正如 Chris Hermansen 此处 所报告的那样,Jitsi、Big Blue Button 和其他一些软件已经彻底改变了我们互动和学习的方式。

开源教育资源

开放教育资源解放了学习。通过 OER Commons,你可以找到满足你需求的内容,从学前班到研究生和专业学位,它是公开许可的,因此你可以使用它并与他人分享。麻省理工学院(MIT)开放课件提供了麻省理工学院几乎所有的本科生和研究生项目内容,均根据知识共享 非商业性共享方式 许可提供。OpenStax 是莱斯大学的一项开放教科书计划,提供经过同行评审的教科书,这些教科书已公开许可并免费提供。

开源播客工具

播客已成为了解最新 开源新闻 的好方法。你有没有想过做自己的播客?我熟悉一些很棒的开源工具能够帮你实现这一目标。Audacity 是我最喜欢的录音应用程序。我用它来翻录我的课堂教学、记录访谈和试验音效。它是一个 16 轨音频编辑器,你可以通过多种方式使用它。如果你有话要说或有技能要传授,你应该使用 Open Broadcaster Software(OBS)。

Linux

最后,向你的朋友介绍 Linux,他们中的许多人仍然不了解 Linux,让他们体验所有现成的免费软件。

除了在 YouTube 上录制和分享的演讲外,我还编制了一份资源链接列表,并在 GitHub 上分享。


via: https://opensource.com/article/21/10/open-source-tools

作者:Don Watkins 选题:lujun9972 译者:XiaotingHuang22 校对:wxy

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

谷歌“资源池化”员工工位,要求一些员工拼桌上班

谷歌超过四分之一的全职员工都在其云计算部门。现在,谷歌正在要求云计算员工“分享他们的办公桌,并从下个季度开始与他们的拼桌伙伴交替工作。”这样做是为了让公司可以腾退一些办公楼,“能够继续投资于云计算的发展”。他们希望员工能隔天来上班,这样他们就不会在同一天在同一张办公桌上。

消息来源:CNBC
老王点评:就像云计算资源池和超卖一样,谷歌云真是将云计算理念运用到了“实处”。

AI 对资本家最有用

有观点认为,AI 对资本家最有用。除非 AI 是开源的,且由终端用户控制,否则除了 AI 的软件供应商,其他人的未来可能是暗淡的。像 GPT-3 之类的大语言模型能用于扩展人类的工作或帮助完成枯燥的工作,就像程序员用 Copilot 加快工作效率,律师、医生、会计师、营销人员等都将会有自己的 AI 助手。就像智能手机,在生活中无处不在,成为生活必用品。没有它们我们的生活几乎寸步难行,而提供这些产品的公司变得极其富有而强大。这些产品带来的生产力提升只受益于少数人,这些企业也只雇佣少数人,绝大部分人的工资停滞不前。

消息来源:Me Bassett
老王点评:我不同意这个观点,AI 会像智能手机一样成为生活必需品,但是没有人因为智能手机而失业和变得更贫困。我更担心的是,AI 回头会觉得人类是累赘。

美国 NASA 发起 “开源科学倡议”,敦促采用开放科学

NASA 科学数据官 Steve Crawford 介绍了 NASA 的开源科学计划。他用 “尽可能的开放、必要的限制、永远的安全” 来概括这一政策。具体来说,“出版物应该公开,没有禁运期,包括研究数据和软件。数据应以知识共享零许可(CC0)方式发布,软件应以常用的许可方式发布,如 Apache、BSD 或 MIT。新政策还鼓励使用和贡献于开源软件”。并且,NASA 更新了政策,明确其员工可以以其官方身份为开源项目做出贡献。此外,作为该计划的一部分,NASA 已经开始了一项为期五年、耗资 4000 万美元的向开放科学转型任务。

消息来源:LWN
老王点评:有一点我是服的 —— 美国的很多国家机构,真是拿开源当回事,而不是只知道用开源。而且,他们真敢开源一些看起来“敏感”的领域的技术。

微软劫持 Chrome 下载页面,求你不要抛弃 Edge

有人发现,当试图使用 Edge Canary 下载和安装 Chrome Canary 时,Edge 浏览器窗口中会出现了一个宣传 Edge 优点的横幅广告,广告中说,“微软 Edge 运行在与 Chrome 相同的技术上,并有微软的额外信任”。Canary 渠道发布的是实验性的浏览器版本。随后几天,人们发现 Edge 的 Canary、Dev 和 Stable 等发布不再显示该广告。顺便说一句,Edge 在全球浏览器市场上有约 4.6% 的份额。

消息来源:The Register
老王点评:这就有点过分了~

.NET 运行环境初步支持 RISC-V

三星的程序员为 .NET 运行环境提交了代码,提供了初步的 RISC-V 构建支持。该代码已经成功测试了 RISC-V 的交叉构建,甚至可以在 RISC-V 上运行一个简单的 “hello world” 应用。不过,微软并没有计划把 Windows 带到 RISC-V 上。

消息来源:Phoronix
老王点评:看起来三星有想法在 RISC-V 上运行 .NET 程序。

84% 的代码库中至少发现一个开源代码漏洞

几乎所有的软件都包含开源代码。Synopsys 公司 2022 年审计的 1703 个的商业和专有代码库中,96% 的代码库包含开放源代码。在他们检测的代码库中,有 84% 至少会发现一个已知的开源代码漏洞。其中,48% 的代码库包含高风险漏洞,即那些已经被积极利用的漏洞,已经有记录的概念验证漏洞,或者被归类为远程代码执行漏洞。

消息来源:CSO Online
老王点评:随着开源代码的滥觞,没有正确维护的开源代码带来的安全风险或许要超过开源代码带来的好处。