谈开源不能不谈免费,现在国内几乎所有的所谓开源软件,根本不具备任何开源特征,对开源领域及计算机业的奉献甚少。比如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大部分的项目(我是说那些能做的起来的)做到最后,都成私人产品了。
希望,对你有所帮助。
我就是我,永无止境!
分享到:
相关推荐
Karl Fogel:制造开源软件——如何成功运营自由软件项目
本项目是一个桌面级小机器工具人,外观设计的灵感来源是WALL-E里面的EVE~机器人具备USB通信显示画面功能,具备6个自由度(手部roll、pitch,颈部,腰部各一个),使用自己修改的特制舵机支持关节角度回传。...
**开源项目——MultiChoiceAdapter(可多选的适配器)** 在Android开发中,我们经常需要处理列表数据,例如在ListView、RecyclerView等组件中展示数据。这些组件通常使用适配器(Adapter)来绑定数据并渲染视图。...
开发一款Java小游戏——骑士飞行棋 游戏规则和传统的飞行棋一样,支持两人对战 采用100格小型游戏棋盘 游戏规则:对战双方轮流掷骰子控制自己的骑兵前进或后退,在游戏棋盘上设置有关卡 普通 地雷 暂停 时空隧道 ...
untangle 模块化的开源网关——中文说明
经典的Android项目——TorProxy和Shadow开源项目.zip
0 积分下载;文件大小:64.6 M;清晰完整中文扫描版,529页,无书签。
磁力链 推荐开源项目:Magnet2Torrent —— 磁力链转种子利器
标题中的“ZIP的开源软件——酷压和好压”指的是两个流行且开源的软件,酷压(7-Zip)和好压(Bandizip),它们主要用于处理ZIP格式的压缩文件。ZIP是一种广泛使用的文件压缩标准,它允许用户将多个文件打包成一个...
**Stark House Casino——最终项目概述** 在"Stark House Casino——最终项目"中,我们看到的是一个基于JavaScript的学校项目。这个项目可能是为了教授学生如何利用JavaScript进行Web开发,尤其是构建互动性的游戏...
关于LCD的程序,STM32F103c8t6的文件,经过有效测试,可行的。特分享。
《课程大纲:人工智能和STEM教育——开源硬件实践项目1》 该课程主要针对所有专业的学生,是一门公共选修课,旨在让学生体验人工智能在生活中的应用,了解并探索相关技术,如语音识别、计算机视觉、机器翻译等。...
【标题】:“ktv点歌系统开源——java” 在当今的娱乐行业中,KTV作为休闲娱乐的重要场所,其点歌系统扮演着至关重要的角色。一个高效、易用的点歌系统能够极大地提升消费者的体验。本开源项目正是基于Java语言开发...
仿真书籍翻页效果BookPageView简介:实现了仿真翻页效果,教程完整地描述了翻页原理分析到性能优化的过程教程博客:Android自定义View——从零开始实现书籍翻页效果(一) Android自定义View——从零开始实现书籍...
微信小程序-水果商城Hello, folks!:books: Welcomes to provide your valuable comments or suggestions by 'Issues' or my contact information:sparkles: 欢迎通过”... Oct 20, 2020开源云数据库结构重写READMEv1
标签中的"开源项目共享"强调了开源社区的核心精神——分享与协作。开源项目鼓励开发者参与,无论是贡献代码、提供反馈,还是为项目文档做出改进。"你可以好好的下载学习"进一步强调了这个项目是作为一个学习工具,...
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”的开源项目,它提供...
Apache Roller是一款功能强大的开源博客系统,它由Apache软件基金会维护,是Java开发者学习和研究的绝佳实例。通过深入分析Roller的源代码,我们可以了解到Java Web应用开发的多个关键知识点,包括但不限于以下方面...
通过对"安卓Android源码——日志记录,开源项目使用方法见说明.zip"的分析,我们可以学习到以下关键知识点: 1. **日志级别**: 安卓中的日志系统支持多种级别,包括`VERBOSE`、`DEBUG`、`INFO`、`WARN`、`ERROR`...