自由软件开发(自由软件开发者怎么赚钱)

自由软件开发(自由软件开发者怎么赚钱)缩略图

如何成为一名Java自由开发人员

如何成为一名Java自由开发人员

除了常有读者咨询他《如何成为一位专家级的开发人员?》之外,“怎么才能成为一名Java自由开发人员?”也是他收件箱中另一个常收到的问题。自由职业者的工作是什么?不知你是否知道,我是一名自由职业的Java开发人员,这意味着我从事咨询工作。我从2000年开始从事这份工作,它占了我职业生涯的大部分时间。我多数是在为大公司、软件公司、银行和运输公司等客户工作。我每次参与的项目会持续3到12个月。在那段时间内,我出现在客户的办公室里,就像他们自己的员工一样。一些项目是构建新的应用程序,其他的则是为现有的应用程序添加一些功能。我参与开发的许多应用程序都是内部应用,由客户的员工本身或者客户的客户使用。这些应用程序中,很多网络应用程序是利用Java servlets和JSP等构建的,或者是使用独立的服务端服务。客户还从未要求过我去开发任何图形界面程序。以我的经验,自由职业者很少受雇开发Facebook那样的产品。公司倾向于用正式员工进行此类产品的开发。公司为什么雇佣自由开发人员?当大公司要在一定期限内开发一个项目,而他们又没有足够人手的时候,他们就不时地在外面雇佣顾问。这些公司在一定时期内雇佣顾问,然后等到项目结束时或者或任务不那么紧迫的时候就把他们炒掉。如此一来,大公司就可以很容易并快速地雇佣和解雇开发人员,而又不必顾虑雇员会在合同到期时有所不满。通常当新项目需要额外人手的时候,公司会再次雇佣同一个顾问,因此客户对顾问的个性和技能已有所了解。再就是客户不必就流程、开发工具和硬件设置等问题上再次对顾问进行培训。怎样成为一名自由职业者?正常来说自由职业者要通过咨询机构来找活干。咨询机构会和客户保持联系。大客户不愿意直接和无数的自由职业者联系,也不愿意和他们每一个人单独谈薪水等问题。当额外需要人手的时候,客户只需和咨询机构谈即可。并且,如果你违约,提前解除了合同,咨询机构还能快速帮客户找到其他开发员。所以,找到当地雇佣自由职业者的咨询机构,和他们保持联系。如此一来,你已进入他们的人才库。做自由职业者有什么要求?在接受你之前,大多数的咨询机构要求你至少有5年的开发经验。我很幸运,在干过1年网络开发和1年Java咨询工作后,我就进入了自由职业这一行,成为一 家咨询机构的正式员工。只用两年,这之所以成为可能是因为2000年的互联网泡沫。当时每个人都在雇佣开发人员,因此市场不像今天这么不景气。自由职业者的薪水如何?在丹麦,顾问的薪水的一般都是正式员工的1.5到2倍。薪水的高低和技术水平以及教育背景有很大关系。在一些特殊的领域薪水可能更高,在一些大众化的领域(比如PHP),薪水要低些。为什么要从事自由职业?我喜欢从事自由职业这一行,因为恰如其名,相比正式员工,我自由了很多。首先,我不用在同一个地方年复一年的工作。并不是在所有的公司工作都那么有激情。作为一名自由职业者,我可以到处走走,甚至是在一段时间后再回到一个公司工作。其次,我可以选择性工作。这意味着我可以更好地控制我的职业生涯方向。当然并非总可以控制方向,但有时候的确可以。至少当一个项目与你的方向相差甚远时,你可以拒绝。第三,高薪水允许我抽出一部分时间去旅游,或者开发我自己的小软件项目,又或者写写文章,比如这篇文章。】

什么是自由软件操作系统

什么是自由软件操作系统

严格意义上说,“自由软件”和“自由操作系统”是母概念和子概念的关系。所以,笼统的说“自由软件操作系统”的概念是有些别扭的。在这里,我理解,楼主想问的是“自由操作系统”的概念。

说到“自由操作系统”,就不得不提到GNU 工程。这个项目创始于一九八四年,旨在开发一个完整的类似于 Unix 的操作系统 — GNU 操作系统。目前,GNU 通常使用 Linux 内核,这里有一个完全由自由软件组成的 可以直接安装使用的 GNU/Linux 发行版 列表。GNU的内核——Hurd 正在积极的开发中,但仍未达到可以日常使用的程度。由 GNU 和 Linux 组成的 GNU/Linux 操作系统, 目前有数百万用户,但它常常被错误的简称为“Linux”。

我们最常听到的Linux系统,就是这种“自由操作系统”的代表。实际上,现有Linux用户装机时使用的Linux,往往是经过一些商业公司进行包装和完善的,也不是纯粹的自由软件。但就内核而言,它一直秉承“自由软件”中关于源代码开放、资源共享、平等开发等理念,没有相关的盈利性收入,使得我们通常见到的Linux系统及其配套软件的开发往往滞后于主流商业软件。但是,这是一个凝聚了千万程序员的心血和自由精神的操作系统。

最近几年,随着智能手机等终端的开发,市场上也出现了以Linux为内核的手机智能终端操作系统,并在市场上打开了一片广阔的天地。我们可以相信,未来,所有的软件,包括操作系统,将最终融入自由、开源的时代。

以上,是我个人对于自由软件及自由操作系统的一些理解,仅供参考。

基础知识普及:什么是Copyleft

基础知识普及:什么是Copyleft

著佐权(Copyleft[1] )是一个由自由软件运动所发展的概念,是一种利用现有著作权体制来挑战该体制的授权方式。在自由软件授权方式中增加著佐权条款之后,该自由软件除了允许使用者自由使用、散布、修改之外,著佐权条款更要求使用者修改后的衍生作品必须要以同等的授权方式释出以回馈社会。

概念起源

编辑

1983年,自由软件(Free Software)运动的先驱、精神领袖理查德·斯托曼(Richard Matthew Stallman)决心要开发一个完全自由的、与Unix类似但功能更强大的操作系统,以便为所有的计算机使用者提供一个功能齐全、性能良好的基本系统,为了把这个系统和UNIX区分开来,他俏皮地采用程序开发中常用的“递归”方式把它定义为GNU,即:GNU’s Not Unix。后因自由软件拥护者对GNU系统的发展和积累,GNU已经成为开发各种自由软件项目的代名词。GNU项目宗旨是自由的分享软件,给予所有用户自由的复制、修改和重新发布GNU软件的权力,为了实现这一目的,就在GNU计划的宣言中,斯托曼创造了Copyleft这个词。

授权方式

编辑

“版权”(Copyright)的概念是为了限制他人任意使用创作物的自由。Copyleft则是为了保护这种自由而定义的概念:它允许他人任意的修改散布作品,惟其散布及修改的行为和作法,亦限定以Copyleft的方式行之。

Copyleft作品是有版权的;但它们加入了法律上的分发条款,保障任何人都拥有对该作品及其衍生品的使用、修改和重新发布的权力,惟前提是这些发布条款不能被改变。

Copyleft不同于传统的公共领域(public domain)。因为公共领域的作品,任何使用者虽然都可以使用,但可以不回馈变成已用;而Copyleft作品的使用者若不按Copyleft的许可证要求保持同样的授权条款,并将更改的版本回馈社群的话,就是违反著作权法的侵权行为。

Copyleft授权许可有时被认为具有“传染性”,因为任何从Copyleft许可衍生出的作品也必须是遵守Copyleft许可的规定。“传染性”虽然带有贬义,但是这与病毒的传染并不相同,因为病毒的传染是通过不为用户所知道的途径传播的;Copyleft则是公开透明的。

常用著佐权协议

编辑

GNU GPL(General Public License)[2]

GNU LGPL(Lesser General Public License)[3]

GNU AGPL(Affero General Public License)[4]

GNU FDL(Free Documentation License)[5]

CC(Creative Commons Attribution-NoDerivs)、。

我是软件开发的自由职业人员,怎么样让企业找到我呢,有好推荐吗?

我和你一样是软件开发自由人员,我入驻的是softtrade是软件外包信息,我才半个月已经跟好几家大中型企业合作.可以自由挑选项目,注册简单.

我想知道GCC自由软件,和Microsoft Visual C++ 6.0 的区别?

c和c++是编程语言,g++,gcc是编译器. c++是c的扩展

自由软件文化对于当今IT行业有何重大影响

IT行业发展日趋迅猛,IT产业的产值成倍增长,发展必然带来人才的需求,因此众多人群想要进入IT行业发展. 综合来看,IT行业主要具备以下特点: 第一,高薪的诱惑 IT行业涵盖的范围是很广的,包括了IT硬件设备、软件开发

自由软件是否有版权

自由软件可以免费取得,并且它的源代码可以自由修改并散布但它并不是没有版权.版权是当某项作品完成时就自然产生了,不需申请或注册.以本文为例,本文在写作的同时,作者即拥用版权,任何人皆无法剥夺.而当使用者花钱购买某套软件时,所购买的只是’使用权’,使用者必须接受该软件的’软件授权’,才能使用这个软件;而软件的原作者则仍然保有其’版权’.

什么是GNU

GNU是一个自由软件工程项目。下面的文字没有具体解释GNU是哪几个单词的所写,但从整体上说明了GNU工程是怎么回事,希望对你有帮助。

GNU工程已经开发了一个被称为“GNU”(GNU是“不是UNIX”的缩写)的、对Unix向上兼容的完整的自由软件系统(free software system)。由Richard Stallman完成的最初的GNU工程的文档被称为‘GNU宣言’,该宣言已经被翻译成多种其它语言。我们还有创作与1983年的GNU工程创始宣言。

上述单词“free”指的是自由(freedom),而不是价格。你可能需要或者不需要为获取GNU软件而支付费用。不论是否免费,一旦你得到了软件,你在使用中就拥有三种特定的自由。首先是复制程序并且把它送给你的朋友或者同事的自由;而后是通过获取完整的源代码,按照你的意愿修改程序的自由;最后是发布软件的改进版并且有助于创建自由软件社团的自由。(如果你重新发布 GNU软件,你可能对分发拷贝这项体力劳动收费,也可能不收费。)

在1983年构思GNU工程是为了提供一种找回在计算机界早期的盛行的合作精神的方式–为了使合作成为可能而排除有私有软件所有者给合作造成的障碍。

在1971年,当Richard Stallman开始他在MIT的职业生涯时,他工作于一个专门使用自由软件的工作组。即使计算机公司也经常发布自由软件。程序员可以自由地相互合作,就象他们通常所作的那样。

到了80年代,几乎所有的软件都是私有的,这意味着它有一个不允许并且预防用户合作的拥有者。这就使得GNU工程成为必要的了。

每个计算机的使用者都需要一个操作系统;如果没有自由的操作系统,那么如果你不求助于私有软件,你甚至不能开始使用一台计算机。所以自由软件议事日程的第一项就是自由的操作系统。

一个操作系统不仅仅是一个内核;它还包括编译器、编辑器、文本排版程序,电子邮件软件,和许多其他东西。因此,创作一个完整的操作系统是一乡十分庞大的工作。它将耗费太多的年头。

由于Unix的全局设计已经得到认证并且广泛流传,我们决定使操作系统与Unix兼容。同时这种兼容性使Unix的使用者可以容易地转移到GNU上来。

自由的,类似于Unix的内核的初始目标已经达到了。到90年代,我们已经发现或者完成了除了内核之外的所有主要成分。而Linux,一个自由的内核,由Linux Torvalds开发了。把Linux和几乎完成的GNU 系统结合起来,就构成了一个完整的操作系统:一个基于Linux的GNU系统。估计目前大约有十万人在使用基于Linux的GNU系统,包括Slackware、Debian、Red Hat以及其它。

然而,GNU工程并不限于操作系统。我们的目标是提供所有类型的软件,无论有多少用户需要它。这包括了应用软件。我们已经有了电子表格。我们希望在未来把GNU Emacs扩展为所见即所得的桌面出版系统。

我们还想为不是计算机专家的用户提供软件。为此我们正在创作‘拖放图标桌面’以帮助初学者使用 GNU系统。

我们还希望提供游戏和其它娱乐。已经由一些游戏可以使用了。

自由软件可以走多远?这没有限制,除非诸如版权法之类的法律完全地禁止自由软件。最终的目的是,让自由软件完成计算机用户希望完成的所有工作–从而导致自由软件的过时

什么是GPL和LGPL

GNU通用公共许可证(简称为GPL),是由自由软件基金会发行的用于计算机软件的许可证。最初由Richard Stallman为GNU计划而撰写。目前大多数的GNU程序和超过半数的自由软件使用此许可证。此许可证最新版本为“版本2”,1991年发布。GNU宽通用公共许可证(简称LGPL)是由GPL衍生出的许可证,被用于一些GNU程序库。

http://wiki.ccw.com.cn/GPL

GPL和LGPL是GNU的两种License。越来越多的自由软件(Free Software)使用GPL作为其授权声明,如果对GPL一点都不了解,有可能在使用自由软件时违反了GPL的授权。如果是个人或不正规的公司倒也无所谓,但如果是有规模的公司,恐怕会有被起诉的风险。

在使用Log4cpp时我想到了授权的事情,于是有了兴趣对GPL做一下了解。这是必要的,因为公司也维护了一个验证过的自由软件库,里面包含的自由软件除了功能上是可靠的,另外就是一定可以被私有使用的,否则后果很严重(黎叔很生气!)。

Log4cpp最初的版本使用GPL作为授权声明的,在0.2.1版本以后改用更为宽松的LGPL。LGPL最初是Library GPL的缩写,后来改称作Lesser GPL,即为更宽松的GPL。当一个自由软件使用GPL声明时,该软件的使用者有权重新发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的的自由软件开发出来的新软件也一定是自由软件。

LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在LGPL或其它GPL变种的授权下。

以下是Richard Stallman关于GPL和LGPL的论述

为什么你不应该使用LGPL发布你的下一个库

GNU计划在使用库时有两个首要的许可证.一个是GNU LGPL(库GPL);另一个是普通的GNU GPL.选择不同的许可有很大的不同:选择LGPL允许在私有程序中使用该库;选择普通的GPL则只允许在自由软件中使用它.

关于哪一种许可证对指定的库是最好的这一问题实际上是一个策略问题,它取决于实际情况.当前,大多数的GNU库被采用LGPL,这意味着我们只使用着其中的一个策略,而忽略了另一个. 所以现在我们在寻求更多以普通的GPL许可证形式发布的库.

私有软件开发者有金钱上的优势;自由软件开发者需要相互之间利用各自的优势.对一个库采用普通的GPL对自由软件开发者的优势要大于对私有软件开发者: 他们可以使用的库对于私有软件开发者是不可利用的.

使用普通的GPL并不是对于所有的库都有好处.在某些情况下更有理由来使用LGPL.最常见的情况就是当一个自由库的特性可以很容易地被私有软件以其他可替代库来实现.在这种情况下,库不能给与自由软件任何特别的优势,因而最好还是为LGPL发布该库.

这也就是为什么我们为GNU C 库选择LGPL.总之,有很多的其他C库;我们使用GPL发布该库,将迫使私有软件开发者不得不使用其它的库–对他们来说这不成问题,而我们则有了麻烦.

然而,当一个库所提供的功能是非常独特的时候,如GNU Readline, 情况就大不一样了. Readline库可实现输入编辑和记录交互式程序操作,这在别处通常是不可多得. 在GPL下发布它并限制它只能在自由程序中使用, 这我们的社团是一个重要的促进.至少今天某个应用程序之所以是自由软件,只是因为它必需要用到Readline.

如果我们收集一些强大的、私有软件中没有相类似东西的、采用GPL的库,它们将提供一系列有用的模块用于新的自由软件的构造. 这对于将来的自由软件开发将是一个显著的优势, 一些项目将为了使用这些库而考虑使软件自由化. 大学的项目是易于被影响的;而且今天,随着某些公司开始考虑使软件自由化, 甚至一些商业项目也会由此受到影响.

私有软件开发者试图否认自由竞争的重要性, 他们会拼命说服作者不要将库使用GPL来发布. 例如,他们会呼吁利己主义,信誓旦旦地说如果我们让他们在私有软件产品中使用代码,将有“更多的用户”用到该库. 流行是一种诱惑,它使一个库开发者倾向于相信这种观点:社会首先需要的是促进一种库的流行;.

但是我们不应该听从这种诱惑,因为如果我们联合起来,我们可以做得更好.我们这些自由软件开发者应该相互支持. 通过发布只能为自由软件使用的库,我们可以互相帮助,使彼此的自由软件包优于其它的私有替代品. 整个自由软件运动将会有更多的机会,因为自由软件作为一个整体将会在竞争中表现更佳.

因为”LGPL(Library GPL)”的称呼传达了关于这一问题的错误观点,我们计划将称呼改为”次级GPL(Lesser GPL)”.事实上要更换名称要花一定的时间,但你不必再等–你可以现在就发布应用GPL许可证的库.

http://hi.baidu.com/%CD%F5%BE%FC/blog/item/922a6059345ad12a2834f013.html