谈开源不能不谈免费,现在国内几乎所有的所谓开源软件,根本不具备任何开源特征,对开源领域及计算机业的奉献甚少。比如Discuz一类的论坛什么的。他们都抓住了人贪婪的本性,一味的将开源同免费划成等号。我们今天就不详细讲述他们的罪过,我们在这里讲讲,假如你想做开源你需要做好什么样的心理和技术的准备。
心理准备:
1、做的时候就要考虑好你的项目要发展10年甚至100年。长期的考虑可以更好的规划你的项目,放下浮躁的心态,认真的做事情。
一个开源项目同一个公司的项目不同。公司的项目是计划式项目,利益为目的,如果公司破产或业务改变那么项目就可能会取消。而开源项目不一定,很多项目都是由爱好者发起维护的,你要准备好即使你离开,这个项目也会继续,一个项目的发展目的不仅仅是为了你个人(当然你出发点可能是为了个人,但是项目能否存活关键一点在于心态)。
2、万事怀着感恩的心。宽待别人,善于倾听别人的意见,但同时也要保证自己的设计思路不被打乱。
一定要倾听别人的意见,但是作为项目的执行者,要以自己的理解为准则。不要怕自己做错了,做的不好。记住你有10年的时间来使项目完善。一个项目如果想发展起来一定是有很多人参与的,所以不要做一言堂。
3、尊重合约。不是要求别人尊重你的合约,而是尊重他人的。不偷窃他人的代码,尊重微软这类公司,对盗版憎恨。这是做开源的基础,如果做不到,恐怕你还需要学习。建议,如果有时间请先看过圣经,在圣经中你会学习信用是多么重要的。
开源最大的敌人是谁?不是商业软件,不是微软,是盗版。如果你想别人尊重你的劳动成果你现在就应该尊重微软这类公司。我们现在不是土匪时代(英雄时代),盗版不利于我们的科技进步,人人想着不劳而获,贪婪不要占据你全身。尊重合同,可以得到所有人的尊重,因此请注意,如果你要抄袭别人代码。请为他们保留版权说明,别啥都是你做的。你也想搞个小汉芯吗?
4、作好心态,不论你是为了盈利你还是为了兴趣,做开源就要做好心态,你要允许别人在没给你任何好处的时候利用你的成果获利。
不论你是为了盈利,还是为了兴趣,只要不违背开源的精神,你对这个行业都有贡献。请不要做的太自私,既然开源的就要让大家共同享受知识带来的好处,不然你开源干吗,还是继续去搞“免费软件”吧。
5、不要相信那些说“我愿意参加你的项目,我希望参与工作”的人,真正参与项目的人从来不会表态他只会给你一个patch然后告诉你你代码有什么问题。
根据多年的经验,以及多次项目的失败总结,基本上热火朝天的跟你说这句话的人,根本对你一点帮助也没有。真正愿意参与做事情的人,是不会说这句话的。这不仅仅在国内,在海外也是有这个特点的。
技术准备:
你可以选择sourceforge.net或是你自己弄服务器做开源,不论怎么样。不是简单有个下载,有个web就叫开源的,你需要一些工具来帮助你:
1.WIKI
你的网站可以采用WIKI这样可以方便参与者编辑修改页面,尤其是编写文档的时候很重要。当然国内的垃圾广告太厉害了,如果你是中文网站,就做上权限吧。我推荐你可以使用dokuwiki来做。
2.BugTracker
作为一个长期发展的项目,你总的做计划吧,你总的允许别人向你报告错误吧。你需要一个缺陷跟踪系统。如果你系统有什么问题或别人对你系统有什么需求,他可以在bug tracker里发出需求。推荐你使用mantis这个代码是php编写的很简单容易使用。
3.SVN
你需要协同工作,就一定需要一个SVN现在几乎所有的项目都有自己的SVN仓,SVN不仅仅可以协同工作。他还可以对你的代码做历史记录。网上可以下载到svn的中文pdf 你搜索一下看看。
4.Maillist或是BBS
有这样一个特点,老外是习惯使用Maillist的,而中国人习惯使用BBS。所以根据你自己的需要给项目选择一个沟通方式。
5.QQ或IRC
如果你项目针对国内,建立一个QQ的群是很重要的。当然你也可以建立一个IRC房间,上www.freenode.org上去申请一个,所有的大型项目都在freenode上有实时的讨论组。
有了以上,你还需要怎么做?很简单,开始干事情,别记得请别人加入项目。记得你是要发展10年,你的项目只要做的好,做一些简单的宣传,很快就有人找上门来了。
6.GPLv2/LGPL/MPL.....想好用什么协议
你当然可以自己“开创”一些协议,不过我建议你使用一些标准的协议,这些协议精力了时间的磨练,并且在法律和道德的问题上他们更能经的住考验。协议很多,每个厂家比如SUN都有自己的或APACHE也有自己的。但是目前最流行的还是GPLv2 LGPL MPL等。
使用GPLv2是最适合的。相比有些协议过于开放比如Art license而有一些显的非常小气比如MPL。GPLv2的协议能更好的让项目持续发展下去。如果是MPL大部分的项目(我是说那些能做的起来的)做到最后,都成私人产品了。
希望,对你有所帮助。
我就是我,永无止境!
分享到:
相关推荐
本项目是一个桌面级小机器工具人,外观设计的灵感来源是WALL-E里面的EVE~机器人具备USB通信显示画面功能,具备6个自由度(手部roll、pitch,颈部,腰部各一个),使用自己修改的特制舵机支持关节角度回传。...
**开源项目——MultiChoiceAdapter(可多选的适配器)** 在Android开发中,我们经常需要处理列表数据,例如在ListView、RecyclerView等组件中展示数据。这些组件通常使用适配器(Adapter)来绑定数据并渲染视图。...
【标题】"吴耀武背单词(开源)——version 0.0.001" 涉及的知识点 1. **开源软件**: 这个应用是开源的,意味着它的源代码对公众开放,任何人都可以查看、使用、修改和分发。开源软件通常遵循特定的许可协议,如MIT...
开源控件——导航菜单 简书: 控件名称:XSlidingLayout 可以设置是否关联viewpager xsliding.setViewPager(vpager) 可以设置是否横向铺满显示 xsliding.isFillViewport = isFixation 可以设置菜单切换距离左边的距离...
untangle 模块化的开源网关——中文说明
经典的Android项目——TorProxy和Shadow开源项目.zip
0 积分下载;文件大小:64.6 M;清晰完整中文扫描版,529页,无书签。
在这一变革中,嵌入式Linux操作系统扮演着至关重要的角色,正如《开源奇兵——嵌入式——嵌入式Linux引领后PC时代》一书中所阐述的那样。 嵌入式Linux的崛起并非偶然,其根源在于其独特的技术特性和开放源代码的...
**Stark House Casino——最终项目概述** 在"Stark House Casino——最终项目"中,我们看到的是一个基于JavaScript的学校项目。这个项目可能是为了教授学生如何利用JavaScript进行Web开发,尤其是构建互动性的游戏...
关于LCD的程序,STM32F103c8t6的文件,经过有效测试,可行的。特分享。
在互联网时代,开源项目如Android的兴起,正是这种精神的具体体现。这不仅改变了智能设备市场,也为全球的软件开发带来了深刻的影响。因此,作为未来的IT行业从业者,学生必须理解和把握这种精神,才能在工作中实现...
仿真书籍翻页效果BookPageView简介:实现了仿真翻页效果,教程完整地描述了翻页原理分析到性能优化的过程教程博客:Android自定义View——从零开始实现书籍翻页效果(一) Android自定义View——从零开始实现书籍...
《课程大纲:人工智能和STEM教育——开源硬件实践项目1》正是一门以实践项目为载体,让所有专业的学生体验人工智能魅力,深入探索其技术内涵的课程。 课程首先从第一章“前导”开始,为学生铺垫人工智能和计算机的...
微信小程序-水果商城Hello, folks!:books: Welcomes to provide your valuable comments or suggestions by 'Issues' or my contact information:sparkles: 欢迎通过”... Oct 20, 2020开源云数据库结构重写READMEv1
Verilog-to-Routing (VTR) 项目是一项全球性的合作项目,旨在为进行 FPGA 架构和 CAD 研究和开发提供一个开源框架。 VTR 设计流程将数字电路的 Verilog 描述和目标 FPGA 架构的描述作为输入。 然后执行: 精制与...
【安卓Android源码——[安卓开源]Fanfoudroid(饭否网开源项目)】是一个针对安卓平台的开源项目,其主要目标是提供一个类似微博服务的应用程序,让用户能够分享观点、交流信息以及社交互动。这个开源项目对于学习和...
The ZDT (Zhongwen Development Tool) is written in Java using the Eclipse RCP to help users study mandarin Chinese. The most important feature is the flashcard study feature. ZDT currently contains: ...
《开源项目:tcard-valuegraph——可视化图探索任何值》 在信息技术领域,开源项目扮演着至关重要的角色,它们促进了技术创新、代码共享和社区协作。本文将深入探讨一个名为“tcard-valuegraph”的开源项目,它提供...
百度地图毕业设计源码 教育部高等学校大学计算机课程教学指导委员会 中国大学生计算机设计大赛 软件开发类作品文档简要要求 作品编号: 作品名称: 智能枕芯 版本编号: V 1.1 填写日期: 2020.5.22 ...
通过对"安卓Android源码——日志记录,开源项目使用方法见说明.zip"的分析,我们可以学习到以下关键知识点: 1. **日志级别**: 安卓中的日志系统支持多种级别,包括`VERBOSE`、`DEBUG`、`INFO`、`WARN`、`ERROR`...