Questions tagged «open-source»

有关免费提供原始源代码并可以重新分发和修改的软件的问题。

3
许可证问题,所有者去世后,一段源代码会如何处理
我在一个项目中使用了一段免费的源代码。源代码写于1990年代,可从网站上获得,该网站称可以对其进行修改和自由分发。源文件不包含许可证指示,但具有“保留所有版权”注释。今天早上,我开始意识到我可能遇到了许可证问题,因为我的项目是在GNU通用公共许可证下发布的,因此我尝试联系源代码的所有者。不幸的是,所有者去世了,因此他的公司停止了工作。 源代码发生了什么,其版权门槛有效吗,它有所有者吗???

5
刚接触项目时要处理基本的设计缺陷[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 我刚刚开始从事一个包含30个开发人员的开源项目。我正在修复一些错误,以使其进入“循环”并成为项目的常规提交者。问题是我认为我发现了一个基本的设计缺陷,该缺陷导致了我正在研究的错误之一。但是我觉得,如果我在邮件列表上放开这个标签,我会觉得很自大,而我对此问题的一些讨论正在与某些人打交道。我应该怎么做?

3
我可以删除所有大写字母并缩短许可证上的免责声明吗?
我将MIT许可证用于特定的代码段。现在,此许可证在所有大写字母中都有很大的免责声明: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF... ... 我在zlib许可证上看到了通常大写的免责声明(请注意,它在许可证文本上方),甚至根本没有免责声明的软件(这意味着,我认为,确实有保证吗?),但是我希望得到可信赖的各方的一些建议。我只是没有找到任何东西。 此免责声明附带了GNU 其他文件的许可声明: 该文件按原样提供,没有任何保证。 简短而简单。 因此,我的问题是:是否有任何可信赖的消息来源表明在我应该关注的所有辖区中可以安全使用短的而不是长的,并且通常是拼写而不是大写的免责声明? 出于这个问题的目的,该软件在欧盟发行,如果有任何不同的话。

8
如果周围没有人执行许可证,许可证是否重要?
假设原始创建者不能(或不会)对其软件/代码强制执行许可,但是该作品仍然很受欢迎。 我想如果您想对其进行可视化,我会提出一个令人费解的假设: 想象一下,一小群开发人员根据开放源代码许可发布了代码项目。该存储库托管在他们的服务器上。但是,直接开发团队中的每个人都在不幸的事故中丧生。发生这种情况后,其服务器将关闭。该项目具有相当大的用户基础,因此其他人开始在他们自己的服务器上托管最新版本,以供其他人下载。 (是的,我有一个积极的想象力) 遵守许可是否仅仅是用户的道德问题,还是当没有一个用户或团体强制执行时仍会存在法律惩罚吗?如果不道德的用户决定分支该项目并在不同的许可下使用它,该怎么办? 我不是在寻求法律建议-我只是对软件许可证的工作方式很好奇。我倾向于想到一些奇怪的情况,并且想知道在这些情况下会发生什么。

3
处理库中可见性的常用方法是什么?
这个问题何时使用私人和当类使用受保护的让我去思考。(由于与之相关,我还将这个问题扩展到最终的类和方法。我使用Java编程,但是我认为这与每种OOP语言都相关) 接受的答案是: 一个好的经验法则是:使所有内容尽可能私密。 还有一个: 除非您需要立即对它们进行子类化,否则将所有类定为最终类。 使所有方法最终化,除非您需要立即子类化并覆盖它们。 除非需要在方法主体中进行更改,否则将所有方法参数都设置为最终值,这在大多数情况下还是很尴尬的。 这非常简单明了,但是如果我主要是编写库(GitHub上的开源)而不是应用程序怎么办? 我可以说很多图书馆和情况, 库以开发人员从未想过的方式扩展 由于可见性限制,必须使用“类加载器魔术”和其他技巧来完成此操作 库的使用方式不是为它们而建,而是以所需的功能“入侵” 由于存在小问题(错误,功能缺失,“错误”行为),无法使用库,原因是可见度降低,无法更改 无法解决的问题导致了巨大的,丑陋的和错误的解决方法,在这些解决方法中,覆盖简单的功能(私有或最终的)可能会有所帮助 实际上,我开始命名它们,直到问题过长,然后我决定将其删除。 我喜欢这样的想法,即没有多余的代码,比可见性更多的可见性,比需求更多的抽象性。当为最终用户编写应用程序时,这可能会起作用,因为最终代码仅由编写该应用程序的人员使用。但是,如果代码打算供其他开发人员使用,而原始开发人员则不可能事先考虑到每种可能的用例,并且很难/不可能进行更改/重构,那么这将如何保持呢? 既然大型开源库不是什么新鲜事物,那么在使用面向对象语言的此类项目中处理可见性的最常用方法是什么?

10
开源编程语言能否生存?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 一位朋友写了一种编程语言。它的语法让人联想到SGML。他为此编写了一个解释器和一个IDE。他和他的同事在内部将其用作服务器端语言。它也可以用来编写命令行工具。 他希望将其提供给公众,以期人们会购买使用许可证。他想保留自己表达语言实现的代码,因为其中包含相当多的知识产权。 我一直告诉他,封闭式编程语言的日子已经一去不复返了。我说:“请查看所有主要语言:绝大多数语言都是开源的。如果您希望公司以外的任何人都对自己构建的内容给予关注,那么您也将必须开源。” 我是在给他提供很好的建议吗,还是您需要付费使用专有语言的空间? 后来 丹问:“ ...您能否也请您解释一下如何封闭源语言?” 我说:“ @ Den,您说得很对。我想我的朋友想避免的情况是,Microsoft编写了类似Java的语言,将其称为J ++,然后就其Java风格与Sun展开了诉讼。 。如何保护语法和编程方法,以免被实施可能使您倒闭的公司所劫持?”

4
是否可以在Linux上使用Intel C / C ++编译器来创建要在Windows上链接的目标文件?
为什么? 取决于您的来源,英特尔编译器很可能或最肯定会为x86架构生成最快的可执行文件(将执行时间缩短5%至100%)。 英特尔根据非商业许可证免费提供其Linux编译器(我认为我在其页面上的某处免费阅读了该文件:英特尔-非商业软件开发)。还有一个针对学生的免费非商业许可证,但是尽管为所有三个主要操作系统都提供了工具(由于信誉限制而导致链接断开),但该许可证不适用。 目标 我(作为非学生)希望能够使用英特尔编译器来提高非商业许可下的执行速度,以编译可链接以创建Windows(可能是OS)的可执行文件和动态链接库的目标文件。 X) 更多细节: 从本文档中可以推断出,英特尔编译器会创建与平台的主流编译器兼容的目标文件。 子问题: Windows和Linux(当前版本)上的gcc,g ++,cl,mingw32,icc,icpc和icl的目标文件格式是什么? mingw32交叉编译器工具链的一部分可以用来实现目标吗? 我认为生成的目标文件中的元数据是主要问题吗? 广告2: mingw32-objcopy似乎能够将Linux(可能是ELF)上的Intel编译器输出转换为与Microsoft兼容的COFF(可重定位目标文件可能除外)。有人可以确认这确实有效吗(适用于非平凡的应用程序)?

1
释放现有项目的完整重写的正确礼节是什么?
我是开源世界的新手。我正在从事的项目位于Github上。(仅供参考)我正在处理的项目是Plex Media Server的插件。我计划将插件提交给Plex,以便将其包含在他们的“应用程序商店”中。现在我的问题。 刚开始时,我发现了一个较旧的半废弃插件,可以满足我的要求,但效果不佳。我首先为该回购做贡献。我立即被选为拥有该回购协议全部权利的协作者,因为当前所有者说他太忙了,无法再使用它了。但是,当我开始更深入地研究代码时,我意识到它是徒劳的。现有的代码库很糟糕,没有有效的方法来修复它。我最终只是从头开始。我在新插件中使用的唯一代码是我最初提交的代码。 现在该项目已准备好发布。但是,我不确定如何执行此操作。我看到的选择如下: 创建一个新的仓库,而忽略现有仓库。我不确定我是否应该提到以前的仓库和它的贡献者。我没有使用任何代码/资源,而是创建了一个全新的代码库。尽管该插件执行的功能与旧的相同,但它以全新的方式和更有效的方式进行了操作。 我分叉现有的存储库,删除现有的代码,然后提交新代码。我真的是Git的新手,所以我不确定这是否可行。 我将对现有回购的更改提交给我,看看当前的贡献者怎么说。 在这三个选项中,我强烈倾向于第一个。但!我是开源的新手,我想确保自己按照正确的礼节做事。我不想让我的第一个项目浮出水面,成为一场灾难。选项2听起来不错,但是我不确定是否应该这样做。我不确定历史记录和差异会如何工作。我们最多只谈论500-1000行代码。因此,这不是一个庞大的代码库。 感谢您提供的任何输入!

3
诸如Stack Overflow之类的支持网站会否破坏付费支持的开源模型?
为了保持与市场的联系,我正在为我的软件公司研究新的业务模型。带有付费支持的开源模型似乎很适合我们的产品,但是我担心付费支持模型在这样的时代是否可行,在这个时代中,像Stack中的那些站点一样免费提供一流的帮助交换网络。 恰当的例子-去年,我因为不想支付Win 7许可证和新硬件的费用而将员工迁移到Ubuntu,而且Mono平台非常吸引人。我的员工没有Linux经验,但是在AskUbuntu,Stack Overflow和几本“ For Dummies”书籍的帮助下,能够在大约120天内实现相对能力。我们确实聘用了Ubuntu顾问7天来提供培训和支持,但除此之外,还花费了0.00美元用于任何形式的有偿专业知识。 关于我的尽职调查,我与一个较小的客户进行了为期3个月的免费增值支持模式的beta测试,并取得了中等水平的结果。我想这样想是因为我们的软件是如此稳定且易于使用,以至于客户不需要太多的付费支持,但是我怀疑他们绕过了我们SLA的条款,就像我们转向Ubuntu的。 是否有人对我正在考虑的举动有任何想法,建议或经验?什么有效,什么无效,等等?

3
如果不是一个经验丰富的程序员,那么启动一个开源项目有什么弊端?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我对要生产的产品有很多想法。问题是我不到一年的专业工作经验,而且我担心将来会基于我现在生产的产品而受到负面评价。我不知道我的代码是否有用。 我不熟悉任何编码模式。我所知道的是制造出行之有效的产品。我想在github上为我的未来项目提供一个公开的个人资料,我将尽力确保它得到很好的评论,被优化和干净。 这些是我担心会公开曝光的事情: 我的代码可能没有高度优化。 某些库或函数的错误使用会同时完成工作。 不知道或不遵循任何编码模式。 许多错误/不考虑边缘情况 根本缺乏对某些概念(例如线程安全性,多线程编程中的并发问题)的理解和应用。 我应该继续前进还是继续坚持在本地和私下建造东西,直到获得更多经验。从长远来看,我不想在这里犯下的错误困扰着我的职业前景。

3
开源对商业环境有负面影响吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我公司的产品种类繁多,有一些对我们而言不具有战略意义,因此我想开源它们(以便我们专注于使我们与众不同的事物并开源每个公司所拥有的产品)。 我们的行业(对冲基金)没有开源(我们将是第一家尝试这样做的公司),而我从管理团队那里得到的反馈是1)我们将摧毁该行业,或者2)所有有竞争力的商业公司将团结起来反对我们,我们都会被消灭。我公司目前正在经历共享的积极影响的IT人员与认为我们将放弃一切的业务人员之间进行的一场艰巨的战斗(他们更愿意出售我们希望开源的零件,但是在他们的辩护中,是剥离时的标准)。 所以你的想法是什么?开源是普遍适用还是仅真正适用于软件?对行业内和外部人员总体上有利吗?我实际上对负面影响更感兴趣(尽管也欢迎正面影响) 更新:长话短说,尽管涉及到代码,但与其说与代码有关,不如说是与开源有关。 我们是中型量化对冲基金。我们有一些独特的策略,但也有标准的多头/空头,套利,全球宏观等。 我们保留着我们拥有的独特资金,但其他人拥有的其他东西我们正在考虑开源(我们投入了多年的工作和数百万美元的资金。我们的资金非常受欢迎,我们的业绩处于第一或第二四分位数因此,我怀疑公司会对该行业产生兴趣或正在考虑进入该行业,但我不知道达到什么程度。 我们的目标不是让一个社区为我们工作,而是让任何想修补的人都能做得到并创建他们想要的任何东西(尽管我可能会非正式地分配我们的一些产品,但这不会成为我们产品系列的一部分。员工的时间来协助任何成长的社区。尽管代码库很大,但是这样做的价值在于我们已经获得了行业知识和方法(关于人工智能和量化交易的书籍很多,但是由于大多数公司禁止员工讨论,因此它们实际上落后了很多年)他们在做什么)。长话短说,在这里是否有人可能有价值,但是我正在采用开放源代码作为在剥离产品系列时使公众受益的一种方式。但另一方面,这是许多其他公司的核心产品,他们会 t开心(我想到了linux / windows,维基百科/ britannica,谷歌地图/商业地图公司等等)。我对那些不喜欢我的人很好,但我宁愿不是因为未预料到的后果,而这个问题是试图了解那些对开放核心领域的行业通常产生的后果。例如,很难判断OS市场的哪个部分由于Linux而增长,或者自然而然地增长等等。技术发展如此之快,我正努力了解开源技术如何对其产生影响(以及它是否是积极的。即我们的竞争对手之一向顶尖大学提供了巨额拨款,这显然有助于学校,开源会限制是否需要类似的东西?)。最好让人们不喜欢我,但我宁愿不是因为未预料到的后果,而是要设法了解这些后果通常对那些将核心领域开源的行业造成的影响。例如,很难判断OS市场的哪个部分由于Linux而增长,或者自然而然地增长等等。技术发展如此之快,我正努力了解开放源代码如何对其产生影响(以及它是否是积极的。即我们的竞争对手之一向顶尖大学提供了巨额拨款,这显然有助于学校,开放源代码将限制大学是否需要类似的东西?)。最好让人们不喜欢我,但我宁愿不是因为未预料到的后果,而是要设法了解这些后果通常对那些将核心领域开源的行业造成的影响。例如,很难判断OS市场的哪个部分由于Linux而增长,或者自然而然地增长等等。技术发展如此之快,我正努力了解开放源代码如何对其产生影响(以及它是否是积极的。即我们的竞争对手之一向顶尖大学提供了巨额拨款,这显然有助于学校,开放源代码将限制大学是否需要类似的东西?)。例如,很难判断OS市场的哪个部分由于Linux而增长,或者自然而然地增长等等。技术发展如此之快,我正努力了解开放源代码如何对其产生影响(以及它是否是积极的。即我们的竞争对手之一向顶尖大学提供了巨额拨款,这显然有助于学校,开放源代码将限制大学是否需要类似的东西?)。例如,很难判断OS市场的哪个部分由于Linux而增长,或者自然而然地增长等等。技术发展如此之快,我正努力了解开放源代码如何对其产生影响(以及它是否是积极的。即我们的竞争对手之一向顶尖大学提供了巨额拨款,这显然有助于学校,开放源代码将限制大学是否需要类似的东西?)。 我了解这对我来说似乎很具体,但是我试图了解开放源代码的总体影响,而软件似乎是一个学习的好地方。

6
谁负责修复漏洞?
开源项目中出现过几次这样的情况: 我注意到我们的部署中存在一个错误,并找出了一个快速的补丁程序。(例如,仅注释掉我们实际上不需要的代码。) 我花了一些额外的精力来找出真正的错误,提出一个补丁,然后通过Git pull请求或类似的方式提交它。 我的拉取请求被拒绝。补丁可能是不完善的(例如,本来不应该包含的行),也许违反了编码风格,也许还有其他影响。也许我在Git中做错了-拉取请求应该已经重新设置了基础。维护人员提供有关如何改进补丁程序的反馈,并要求我重新提交它。 在这一点上,我对应该走多远感到困惑。就我而言,我没有问题:我已在步骤1中修复了该问题。我已经报告了该问题,甚至还采取了措施将其修复。但是我不认为这是“我的”请求请求,因此我不认为应该负责改善补丁。 让我烦恼的一种特殊情况是,在讨论了我的补丁程序的失败之后,我们在邮件列表中就正确的补丁程序达成了共识(即,它的行为方式,有时包括每行阐明的代码)。然后,我仍然有责任实际生成并提交补丁。 在这些情况下是否有标准礼节?他们如何解决?我的反应异常吗?您需要多长时间才能接受错误修复? (请注意,当我说“开放源代码项目”时,其中一些很小,但可能不是业余爱好-只是几个组织使用的小型软件项目,这些组织将开发人员的资源投入到他们的工作中。是“修复补丁并重新提交”,请理解我对雇主有​​责任从事对他们有利的工作。花时间修复不影响我们的错误是错误的……)

9
在您的公司中使用开源程序?
使您的员工在公司中使用开源程序是否有任何弊端? 我打算开始忙碌,我想知道为什么公司通常使用专有软件,例如Microsoft Word引用最著名的软件。他们为什么不使用Open Office(或Libre Office)等? 从我的角度来看,您可以节省很多钱,并通过例如以捐赠的形式给他们部分收益来帮助开源社区。 我不知道有任何一家(中大型)公司这样做。也许你可以给我一些例子,只是为了证明开放源代码的使用/合作的这种模式运作的岩石。

8
许可单元测试是否有意义?
我想知道(不)在主要由单元测试组成的测试代码上放一个许可证是否有任何好处/风险?你怎么看? 我对(L)GPL,Apache,MIT和BSD下的许可特别感兴趣。 编辑:假设非测试代码已经根据某种许可证发布,但是测试代码尚未发布,因此问题是是否发布它,以及是否发布相同的许可证。

1
在开源项目中使用库存图像
我已经开始了一个开源项目,非常想有一个可爱又吸引人的图标来标记该项目。我的困境是,我几乎没有设计用于此类项目的矢量图形的经验。为了弥补这一点,我想我可以从其中一种图片服务(快门等)购买图形。 我的项目从Gherkin语言文件生成HTML文档,我的意图是在每页的页脚使用此图标,以实现“由...产生的输出”。 我的问题是,如果我在其中使用此图形,它将对我的许可软件产生什么影响。我将根据Apache v2许可证发布该软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.