Questions tagged «open-source»

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

4
重新发布没有回应的作者的oss项目是否合法/道德?
几个月前,我在某人的博客中找到了一个小的oss项目(一个文件)。许可证是“ Attribution-ShareAlike 2.5 Generic”。如果可以将其放在github中,我就向作者发送了一封邮件,但没有回复。同时,他的博客已被关闭。 我不是律师,但是在github中重新发布代码(具有适当的署名)似乎合法。我对吗?这是道德的吗?也许那家伙只是想消失片刻...

3
是否存在针对多个浏览器选项卡和较新浏览器的客户端状态的开源JavaScript库?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 HTML5有一些新功能,使其成为最近的浏览器,允许在选项卡,浏览器窗口,相同的域窗口等之间共享状态。因此,编写在Web上保持很多状态的Web应用程序可能会变得容易一些。客户端,并且还可以智能地管理选项卡和/或窗口之间的状态。 当前有诸如Backbone.js之类的库,可以帮助管理单个选项卡或单个窗口中的状态。是否有任何东西可以帮助多个选项卡(或窗口)管理全局状态,特定于选项卡的状态以及交叉表事件,而无需依赖服务器来同步它们?


4
没有有关其设计或架构的文档,开源项目如何成功?
我想通过研究著名的开源项目来提高自己的编程技能,但是我发现仅跳入其源代码很容易迷路。 因此,我决定阅读有关其设计或体系结构的文档(例如UML图),以便首先了解其代码的组织结构。但是,令我惊讶的是,我找不到大型的开源项目(例如Hibernate,Spring,ASP.NET MVC,Rails等)的任何体系结构文档。 因此,我开始怀疑:如果新来的开发人员没有要阅读的体系结构/设计文档,或者项目经理只是打开源代码但关闭了文档,那么开源项目如何成功?

1
问我的雇主我是否可以为我正在为公司工作的项目开源
我是暑假期间在一家公司工作的实习生。我受到了热烈的欢迎,并给我的经理留下了深刻的印象(我想我比他面试过的其他人更有经验)。最近,我一直在开发一个信息亭类型的应用程序,该应用程序将从一个4岁的孩子可以编写的文本配置文件中生成一个简单的GUI菜单。 我喜欢这个项目,它已经成为我的宝贝。但是,在公司世界中,无论您为雇主开发什么……都将成为他们的(或者我听说过)。我非常希望能够在夏季结束后继续从事该项目,并且我也想将其开源。 我将如何要求这个?该代码没有任何公司机密,这里的大多数人都提倡开源软件。

3
我如何估算一个开源项目的价值?
我正在尝试为公司节省成本的目标制定指标。为此,我想估计通过使用开源Web应用程序而不是从头开始构建或购买COTS解决方案所实现的节省。该过程的第一步是估算我们自己开发应用程序将花费多少。不幸的是,我不知道如何通过一个完整的估算过程来做到这一点。 由于我拥有源代码,因此我认为应该进行一些启发,以粗略估算出编写它所需的开发人员时间。不幸的是,我在该主题上的网络搜索大部分是关于代码行如何不是生产力或质量的良好指标的文章和意见。 到目前为止,我最好的解决方案是选择开发人员一天可以写的行,然后从那里算出开发人员的小时数。如果我采用这种方法,我希望有一些(最好是基于研究的)证据来支持我对开发人员生产力的主张。 我要做的一件事就是生成最终指标,我真正需要的只是降低开发人员的工作时间或项目成本。估算值越高,我的指标就越好,但是我宁愿估算技术无可比拟,而不是拥有很高的数值。 有没有更好的方法来估算开源项目的价值?

1
如何为两个单独的开源项目贡献相同的源代码?
假设有两个类似的开源项目A和B,都在Apache Software License 2.0下获得许可。 我想为这两个项目做出改进(因为我不知道哪个项目管理得更好,并且我希望看到我的改进出现在这两个项目中)。 有没有一种方法可以以一种简单的方式对两个项目做出改进?(一种明显的方法是启动一个在Apache 2.0下获得许可的开源项目C,但这由于种种原因而令人头疼;我不想自己维护一个项目)

8
程序员推广自己的库是否合乎道德?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 5年前关闭。 相当最近,我开始维护自己的开源JavaScript库。我创建它是为了解决一个非常特定的需求,但是相当定期地看到可以使用我的库解决(全部/部分)的问题。 我发布我的答案,并确保始终包含我维护的库。 对于开放源代码项目,我觉得这可能没什么大不了的,但是您在哪里划清界限?(例如:商业产品)程序员推广自己的图书馆是否符合道德规范?什么时候不?

4
开源赏金
我在纸上有一个R(开放源统计数据包)库。我已经开始对不同的功能进行编码,但是我意识到我没有足够的时间在合理的时间内完成此操作。我知道我可以将代码放在仓库中,并呼吁其他人来帮助填补空白。但是我想激励一下。我正在考虑对$ 5- $ 20的每个功能进行奖励。对于开发人员编写每个功能,$ 20的准时回报是不可能的。但是我认为现金(或亚马逊礼券)将是人们实际从事该项目的一项发明。这将使我对我最感兴趣的功能有更多的赏识。 我有几个与此有关的问题: 好主意? 我要使开发工作更快或更慢?我已经阅读了Predictable Irrational,并且担心通过为功能提供可观的报酬,实际上可能会阻碍开发人员。 是否有专门从事此类活动的网站?您可以根据个人经验推荐一个吗? 您会建议一种完全不同的方法吗?我愿意接受想法!

3
我如何说服我的公司为开源做出贡献?
我试图说服我为开放源代码软件做出贡献的公司,特别是为ASP.NET Web应用程序构建库/组件。我们即将迎来“创新日”,我们可以在工作中处理自己的个人宠物项目,类似于Google的“每周一天的政策”,只是我们每月一次:-),我有一个想法,我想开源。 其他公司也这样做。Headspring Systems(http : //automapper.codeplex.com- 参见顶部横幅)。 我要告诉他们什么?我可以向他们传达哪些对公司有利的好处?我已经提到了对我们公司和声誉等的潜在影响,以及当我们下次进行招聘大潮时吸引顶级软件开发人员。但是我还能提出什么其他论点呢? 更新:我工作的公司是一家软件公司,主要在ASP.NET和MS Stack中构建Web应用程序。我们的客户主要是NHS(英国公共卫生部门)。

5
对您来说,软件是“可用源”而不是“开源”对您来说是否重要
您可能知道OSI正式批准的开源许可证列表。最值得一提的是,我猜应该是GPL,MIT,[在此处插入您喜欢的许可证]。 我最近遇到了一个项目,该项目虽然是开源的(创建者提供了所有源代码),但在其中一个正式许可下并不是正式开源的。 它发布了源,但没有承诺将来发布源。 它允许修改建议,但不承诺接受补丁程序,并且不允许外部分发外部补丁程序版本。 它允许在商业或付费项目中使用该软件,但不允许出售该软件本身。 我想我们可以将其称为“可用资源”,而不是开放源代码。 我可以看到为什么公司的管理团队不想使用此软件开展业务。他们不能分叉,不能出售,也不能创建自己的软件版本来分发或出售。 但是,作为仅使用此软件的软件工程团队的一部分,这对您来说重要吗?我仍然可以用它来完成工作,可以在有偿的项目中使用它(但是我不能出售软件本身,无论如何我都不会从事这项工作),并且我可以对代码进行更改以使其行为能够满足我的需要(但我不能公开这些修改),如果我确实希望将这些修改正式提供给其他人,则批准取决于项目本身,他们选择是否是否将它们合并到正式版本中。 因此,我们知道,一家公司希望基于此“可用源”软件来开展业务,但是不能做到这一点,但是作为软件工程团队中的某个人,这些差异对您来说是否重要,或者它们似乎无关紧要? 很好奇别人对此的看法。


1
开源许可证兼容性检查器
有没有可用的工具来检查各种开源许可证组合是否相互兼容? 我正在计划构建使用Apache许可证进行分发的各种工具,因为Apache的许可证似乎在允许和可强制执行之间取得了很好的平衡。但是,我想将其他开源项目中的组件包括在我的代码库中,或者使适配器可用以允许最终用户将此类组件集成到我的代码库中。 例如,我想在程序包中包含丰富的HTML编辑器(例如CKEditor或TinyMCE),但这会违反任何一个项目的许可证吗?我非常确定,如果我使用GPL代码,这将迫使我也将我的项目也设为GPL,而我真的不想这样做。但是MPL,LGPL等呢? 我宁愿纯粹基于技术理由做出此类决策,但是如果您正在进行开源,那么忽略其他开源项目的愿望将是愚蠢的。 我尝试过寻找工具来确定许可证X是否与许可证Y兼容,如果可以,它们在哪个方向兼容(X可以包括Y而不会出现问题,但是如果Y包括X则可能会有问题,等等),以及如果您在替代许可条款中包含代码,则对许可条款的后果是什么。到目前为止,我设法找到的只是列表和图表,它们倾向于将其他许可证与GPL进行比较。如果有可用的工具来解决许可问题,我将为您指出正确的方向。

2
LGPL为什么要求组合作品包含GPL的副本?
我正在阅读LGPL许可证,发现以前没有意识到过这一要求。 第4节(合并作品)规定: 如果您还执行以下每个操作,则可以传达合并的工作: a)在组合作品的每份副本中都应特别注明使用了图书馆,并且本许可证涵盖了图书馆及其使用。 b)合并作品随附GNU GPL和本许可文件的副本。 C) ... 链接到LGPL许可的图书馆时,为什么还必须传达GPL?我担心将两个许可证都包含在发行版中会使用户混淆哪个许可证适用。我的解释正确吗?如果是这样,此要求背后的原因是什么?

3
在其他开源程序中使用封闭源模块限制集群大小
我在高度依赖高性能计算的学术研究机构工作。在过去的十年中,我们已经开发了自己的Fortran代码,该代码非常受关注并且可以在非常大的群集上运行。为了使更大的研究社区从该代码中受益,我们正在考虑将其开源。但是,由于我们的资金高度依赖于我们可以使用该代码执行的研究,因此,我们可能会全力以赴。 想法之一是限制代码可以运行的CPU数量,例如,最多1000个CPU,而不是我们使用的100,000。这样,全球研究界可以从代码中受益,但是我们将在可以解决的问题规模方面拥有优势。 从概念上讲这种功能是否可行?以及如何实现这种功能?本质上,我们想开源完整的代码,但是将并行化(使用MPI)限制为固定数量的MPI线程,例如使用(封闭源)模块。

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.