Questions tagged «open-source»

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

1
用Apache 2.0和我的修改文件
我以纯英语阅读了Apache License 2.0版的原始文本和说明。 好的,我复制世界最佳公司分发的课程,他们的许可证,然后稍微修改一下代码。 原始文件包含我的更改。 /* * Copyright (C) 2011 The Best Company in the World * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at …

8
担心发布一个业余项目-如何克服?[关闭]
我不知道这个问题是否与软件开发完全相关,但我还是尝试一下: 像很多程序员一样,我喜欢从事业余项目。有时候,看似好的主意结果并不是那么好,所以我放弃了这个项目。但是有时候,项目会产生一些有用的东西。所以,我可以将其发布,然后发布给全世界,对吗? 错误。不知何故,我似乎无法执行此步骤。我担心我的代码不够好,我总会想到次优的事物和可以添加的功能。因此,我什么也不释放,我失去了兴趣,并一度放弃了该项目。 这正常吗?您如何克服这种情况?

6
使用TDD的复杂代码的好例子[关闭]
在大型,现实生活中,复杂的项目中使用TDD的一个很好的例子是什么?到目前为止,我所看到的所有示例都是出于书籍或纸张目的的玩具项目... 您能命名一个使用TDD的开源项目吗?最好使用C ++,但我可以阅读Java和C#或其他类似语言。
37 java  c#  open-source  c++  tdd 

15
您如何有效地与开源项目竞争?
一家拥有可靠的开源项目与传统的封闭源产品竞争的公司似乎是无法击败的。 我阅读了这篇文章,其中作者列出了这种情况: 假设可以在两个产品之间划分一个软件市场(例如网络管理)。一个承担一切可能,花费100万美元,另一个承担10%的费用,但免费开放。 商业解决方案的价格标签将自动过滤掉大量用户,而这些人将不得不转向开源。但是有些用户会对10%的功能感到满意,并选择了它。 例如,我的桌上有一台原始的Macintosh计算机。它运行一个称为MacWrite的文字处理器。除了拼写检查外,它需要执行所有工作,而我需要使用文字处理程序。我可以设置段落格式,选择字体,使文本变为粗体或斜体,甚至粘贴在图片和图形中。所有操作都在“所见即所得”用户界面中。 占用磁盘空间76K。在“千字节”中就是“ K”。 将此与Microsoft Word进行比较。我认为上一次我仅安装Word时,它的大小约为30MB,比MacWrite大很多倍,但是我使用它的时间并没有比使用MacWrite多得多。像我一样,许多用户对基本功能感到满意。他们不需要所有的风吹草动。 但是回到我的比喻。最初,商业公司可能会忽略开源项目。这对他们的收入来源没有威胁,那么为什么他们要关注新贵呢? 但是,如果这个项目是健康且可持续的,那么大概在一年左右的时间内就可以完成商业产品的15%-20%。这应该使更多的用户从他们的业务中流失,也许现在他们开始关注了。 最有可能的是,这种关注将采取针对项目的营销形式。他们会认为它太小或功能不足以至于不能认真对待。从短期来看,这可能会起作用。但是,他们承认该项目的事实只会激起人们的兴趣。有些人会自己确定它既不会太小也不不会太强大,并会开始使用它。 再过一两年,现在该项目已达到商业产品功能的50%。人们开始大批加入该项目。商业公司现在必须做点什么。他们在做什么?他们添加了更多功能。 请记住,该商业产品已经满足了人们所需的100%。那么他们可以添加什么样的功能呢?不必要的。它们可能会更改用户界面的外观或在网络管理之外添加功能。无论如何,这种发展将花费金钱,并且将开始蚕食该公司的利润。 最终,随着社区的健康发展和新用户的涌入,开源项目最终将达到商业产品功能的80%-90%。在用尽了所有创收途径之后,这家商业公司仍有最后一个选择:将螺丝钉给剩余的客户。寻找向他们收取更多费用的方法,以寻求他们可以从投资中获得的收益,最终将其驱赶出客户。 牵强?我不这么认为。只有两个主要要求: 首先,找到一个市场,其中开源可以提供引人注目的替代方案,例如网络管理。 第二,围绕开源项目建立一个可持续发展的社区。 看来很合理。如果您是一家开源公司,您将如何竞争?

4
在IRC频道中提问时的礼节[关闭]
许多较大的OSS项目都维护IRC渠道以讨论其用法或开发。当我因尝试并未能在网络上找到信息而陷入使用项目的困境时,我试图弄清楚该怎么做的一种方法是进入IRC频道并询问。 但是我的问题总是被渠道中的人们完全忽略了。如果我进入时保持沉默,那么仍然会保持沉默。如果正在进行通话,则通话不会打扰。我将频道开放了几个小时,希望也许有人最终会吸引我,但是什么也没发生。 因此,我担心自己会以某种我不理解的方式粗鲁,或者违反一些潜规则而被忽视。我试图使我的问题讲究礼貌,讲究语法,并试图表明我已经尝试了显而易见的解决方案以及为什么它们不起作用。我了解到,我显然对频道上的人们完全陌生,但是我不确定如何解决此问题。我是否应该在频道中潜伏一个星期而不说什么?这似乎也很荒谬。 我发送的典型消息可能是“大家好-我一直在尝试让Foo正常工作,但是我一直在获取BarException。我尝试重置Quux,但这似乎无济于事。关于我可以尝试的建议?”


5
明确禁止军事应用的“开源”许可证
我是一名研究员,在我的研究中,我做了很多编程工作。我是开放源代码概念的忠实拥护者-尤其是在研究中,透明性和可重复性已经是文化的重要组成部分。我很高兴为社区做出最大的贡献,其中的一部分就是发布我的代码供任何人使用。 但是,在研究中,对于您生产的产品将用于何种用途,始终存在一定程度的不确定性。我完全理解我不能为任何结果或结论提供版权-但我可以保护他人如何使用我的代码,并且我想确保没有(合法)方式将我生产的软件整合到军事应用程序中。 我已经阅读了一些较短的通用OSS许可证,以及更多的摘要,但它们似乎都只集中在“您是否从我的代码中赚钱?”这一问题上。和“您是否将我的代码与您的程序一起使用?” -与程序实际对代码的处理无关。 是否有任何明确禁止各种军事应用的良好开源许可证? 更新: 在阅读了有关OSS的工作原理的更多信息之后,我意识到,根据定义,满足我的需求的许可证将不是开源的,因为开源许可证无法区分字段。因此,我宁愿寻找一个类似于开源许可证的许可证,只是它禁止军事用途。我希望此许可证已经存在,创作或至少由真正了解许可证的人审查,因为我不知道。 另外,在回应几句话时,这将很难执行:是的,我意识到这一点。但这更多的是我自己,而不是法律含义。如果我使用这样的许可证,而一个军事组织仍在使用我的代码,则尽管我明确指示不这样做,但他们正在违反法律并且正在这样做。因此,他们对包含我编写的软件的应用程序执行的可能令人讨厌的事情不再“凭我的意识”,因为它们从我身上偷走了该软件。(在某个地方,我天真地希望,如果他们需要我做的事情,并且我的许可证禁止他们合法使用它,他们会得到别人做同样事情并允许他们使用的程序。不是那个政府总是这样做,但他们总是应该遵守法律...) 可以这么说,这是一种道德保障,而不是我实际上希望在法庭上提出的东西(如果我的平庸代码曾被CIA使用过……)

6
为什么不开放非营利性源代码?[关闭]
我非常喜欢开源代码。我想我了解开源的大多数优势。我是一名理科学生研究员,我必须使用数量惊人的非开源软件和代码(要么是专有软件,要么是非公开软件)。我真的看不出有什么充分的理由,而且我可以看到代码和使用它的人一定会从更加公开的中受益(如果没有其他方面,科学上,必要时可以复制您的结果非常重要,如果其他人无法访问您的代码,则要困难得多)。 我走出去,开始传教之前,我想知道:有没有什么好的选择不释放不以营利为目的的代码公开,并与符合OSI许可证? (我意识到周围也有一些类似的 问题,但大多数问题都集中在代码主要用于赚钱的情况下,而我在回答中却没有多大关系。) 澄清:通过“非营利”,我包括下游的利润动机,例如母公司的品牌认知度和投资者的利润期望。换句话说,这个问题仅与迄今为止没有与软件相关的获利动机的软件有关。

3
Java是否免费/开源?
根据GNU通用公共许可(GPL)的条款,Sun在2006年11月13日发布了大部分Java作为自由和开源软件(FOSS)。2007年5月8日,Sun完成了该过程,除了一小部分未获得版权的代码外,所有Java核心代码都可以在自由软件/开源发行条款下获得。 OpenJDK(开放Java开发工具包)是Java编程语言的免费开源实现。这是Sun Microsystems在2006年开始的努力的结果。该实现已获得GNU通用公共许可证(GNU GPL)的许可,但有链接例外。 为什么仍然有人说Java不是像言论自由那样的开源或自由的? 我想念什么吗? Java仍然是专有的吗?

10
从微软技术转向Linux,NodeJS和其他开放源代码框架以节省启动资金是否值得?[关闭]
我目前正在参与一家初创公司,我是目前唯一参与其中的开发人员,其他人此刻将所有技术决定权交给我。 对于我的日常工作,我每天在使用Microsoft技术的软件公司工作,我们使用.NET,SqlServer,Windows Server等。但是,我意识到作为一家初创公司,我们需要降低成本,并且简要了解Windows托管的成本我很震惊地看到专用服务器的一些价格。我发现最便宜的是每月100英镑。另外,如果将来业务需要扩展,而我们最终需要多台服务器,则最终可能每年要花掉£000的£10的SQL Server / Windows Server许可费用。 然后,我快速查看了专用服务器的Linux托管价格,发现价格比Windows托管低waaaaaay。一个地方以每月不到20英镑的价格提供一台带有2核的机器。 这让我思考也许要走的路是在Linux上开源。 当我在工作中编写大量Javascript时(目前我正在开发一个单页面主干应用程序),我认为也许NodeJS和类似Express的Web框架可以使用。然后,我以为不是使用SQL,为什么不使用像MongoDB这样的开源NoSQL数据库,它对NodeJS有很好的支持? 我唯一关心的是,应用程序将要进行的一些工作将是动态地构建图像以及其他与图像相关的其他东西,例如,相当占用CPU的东西-所以我正在考虑也许可以用C ++编写任何CPU繁重的东西并将其作为Node中的模块使用。 这就是背景知识-但Linux基本上适合以下方面: 托管NodeJS / Express网站? 编译C ++节点模块? 使用像MongoDB这样的NoSQL DB? 转向这些不熟悉的技术以节省资金是一个好主意吗? 3个月更新 我在过去的几个月里一直在努力,所以我想如果有人感兴趣的话,我会进行更新。 最后,出于时间原因,我决定不使用NodeJS和Linux堆栈。我在一边进行启动,所以我每天工作9个小时,然后回家工作直到启动晚。以这种方式工作时,我显然需要尽可能提高效率,否则我将永远也不会最终交付产品。 在采纳了关于该线程的一些建议之后,我确实申请了Microsoft BizSpark,并被接受。这意味着我现在可以免费使用Visual Studio许可证,Windows Server许可证等。太棒了 希望在我们需要开始支付所有费用时,我们将交还足够多的款项,这将使其不成问题。 但是,不要以为我只是在使用Microsoft技术,因为我尝试了尽可能使用开放源代码的东西。我完成此操作的主要地方是我的数据层,在这里我决定使用PostgreSQL和MongoDB。我还在前端使用BackboneJS。 以下是我当前正在使用的技术/框架的摘要: 标准数据库资料:PostreSQL 日志记录和数据存储:MongoDB ORM:实体框架5 核心程式库:.NET(C#) Web框架:ASP.NET MVC3 UI:Razor视图引擎/ BackboneJS

5
如何存储开放源代码桌面Twitter客户端的OAuth v1使用者密钥和机密,而不向用户透露?
我想制作一个胖客户端,桌面,开源Twitter客户端。我碰巧正在使用.NET作为我的语言,并使用Twitterizer作为我的OAuth / Twitter包装,并且我的应用程序很可能会以开源形式发布。 要获得OAuth令牌,需要四项信息: 访问令牌(Twitter用户名) 访问机密(Twitter密码) 消费者密钥 消费者的秘密 后两个信息不应该共享,例如PGP私钥。但是,由于OAuth授权流程的设计方式,这些必须位于本机应用程序上。即使该应用程序不是开源的,并且用户密钥/秘密已加密,一个熟练的用户也可以访问用户密钥/秘密对。 所以我的问题是,如何解决这个问题?桌面Twitter客户端保护其用户密钥和机密的正确策略是什么?

3
如何与善意的开源贡献者打交道?
如果程序员与您联系并要求为您的项目做出贡献,您将如何处理? 你不知道这个家伙有什么用。也许他会比自己值得的麻烦更多。 他可能正试图将自己的名字附加到一个成功的项目上,以示敬意。 他可能会尝试将项目推向您真正不想要的方向,添加您认为不值得额外复杂的功能。 或者,他可能是一个非常有用的贡献者。你就是不知道 您如何处理您不认识的人的此类请求(特别是在GitHub上,如果有什么不同)?这是什么礼节?

4
从去年开始更新开源项目的版权日期是什么?
在2011年,我发布了一些使用Apache许可证授权的开源代码。因此,所有源文件的顶部都显示以下样板消息: /* Copyright 2011 My Name Licensed under the Apache License... <blah blah> */ 所以现在是2012年,我准备发布1.1版。这样,大多数所有源文件都以某种方式被触摸。并且添加了一些新的源代码文件。 如何更新现有文件的版权日期?以下是对每个源文件的正确更新吗?(即将2011更改为“ 2011-2012”) /* Copyright 2011-2012 My Name Licensed under the Apache License... <blah blah> */ 新的源文件是否Copyright 2011-2012同样适用?还是新代码刚得到Copyright 2012?

7
为开源项目选择许可证
我已经完成了一些开源项目,并且计划将来做更多。到目前为止,我已经在GPL下发布了所有代码,但是我读了几篇文章,声称GPL对于在企业环境中使用的任何代码都过于严格。据推测,这减少了捐款。 这是我要完成的工作: 对于完整的应用程序: 除销售对应用程序的支持外,不得用于商业用途(即,该应用程序不能出售,但周围的一切都可以出售) 对于库(组件,插件等): 无需修改即可纳入商业项目 库/组件的任何修改都必须是开源的(归还)-项目的其余部分,无论是否商业,均不受影响 对于应用程序,GPL似乎仍然是合理的选择。对于图书馆,我对许可证的原始理解使我认为LGPL是一个不错的选择,但是我不确定。我看过麻省理工学院的许可证,这似乎太宽松了。 在大多数情况下,我希望人们能够在任何需要的地方使用我的代码,只要可以做出任何改进即可。 这使我想到了一个问题:LGPL是开源库,组件,插件等的合理选择吗?有更好的选择吗?GPL是我的应用程序的不错选择还是有更好的选择? 更新: 对于那些对我的最终决定感兴趣的人,我决定根据MPL,LGPL和GPL多许可计划释放我的库。这使几乎每个人都可以无偿使用我的代码,除非他们根据MPL对其进行了修改,在这种情况下,必须将其归还。 这意味着FSF和专有软件都可以使用该代码,但是可以防止“不良”商业利用(或者,我想这样)。


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.