一切福田,不離方寸,從心而覓,感無不通。

详细介绍 GPL 协议

在自由软件所使用的各种许可证之中,最为人们注意的也许是通用性公开许可证(General Public License,简称GPL)。 GPL同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的 整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。因此,一项遵循GPL流通 的程序不能同非自由的软件合并。GPL所表达的这种流通规则称为copyleft,表示与copyright(版权)的概念“相左”。 GPL协议最主要的几个原则: 1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。 2、GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。 3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。 4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

龙生   10 Jul 2013
View Details

编码规范是技术上的遮羞布

每个程序员都知道,在一个软件公司里,你需要有一套严谨的编码规范。每个程序员也都知道,为了能按自己的编程习惯制订这套规范,每个程序员都在而抗争。刚进入一个新公司时,每个程序员都会内心里绝望,对那套由某些强势架构师独断指定的编码规范恐惧不已。 扔掉编码规范吧,让程序员自由发挥,你会得到更多的好处。从加强代码统一性上获得的这点胜利根本解决不了问题。编码规范就是技术上的遮羞布。在 nearForm 公司,我从来没有想过要制定一个这样的规范,因为我希望每个人都只需按照自己喜欢的方式编程。 这世界太吵闹了。JavaScript的复兴要为此负全责。尤其有一个“特征”:可有可无的分号。无数的主张,猜想和反对声铺天盖地。停止,去实际写些代码好吗。你知道我在说谁。 本意是好的,各路程序员大仙发布各种JavaScript编码规范和风格指导。你们全错了。请停止这种要去拯救这个世界的行为。 编码规范从何来?过程是这样的:在你开始编码时,你跟本不知道会做出什么。这充满乐趣,这是一场游戏,直到你弄瞎一只眼睛。一旦你被自己垃圾的代码伤了太多次,你开始知道你是个菜鸟。于是你开始走上了通往编程大师的道路,你贪婪的咀嚼《代码大全》, 《程序员修炼之道》,当然,还有 Joel。 之后,事情开始发生了。在通往朝圣的路上,你参透了真经。满腹的技艺让你成为了编程巨星。你的开发效率整整翻了一倍。现在,你要向世界传播。让你有今天成就 的知识也同样能拯救他人。你笼络人心,你传道,你纠缠不休。你训导你的老板要采用最好的实践方法和开发规范。而最不可饶恕的,你竟然开始写博客了。 大多数程序员从来不发声。那些喜欢弄出声响的,都晋升了。你晋升了。你把你绝顶聪明的想法强加给他人。你编写了一套编码规范,你让它成为了法律。 可之后,一切如旧。同样苦干,同样最后期限迫在眉睫,同样bug无数,同样悲惨结局。银弹跟本不存在。 几年后,你不再编码,你成为了管理者。你仍然认定编码规范,条律,制度的至关重要。关键就在于正确的实施。你从来都没有真正的做到过,但你坚持要实现这个目标。不仅如此,你变本加厉。代码量化标准!作为一个管理者,你成了痛苦的化身。 也许事情可能会向另外一个方向发展。也许你重新回去编程,或从未离去。经过一段时间,你发现自己如此无知,所有你的梦想都建立在沙滩上。你放弃了,你放弃了给程序员制订枷锁。这是另一层次的参悟。 至此,你认识到,人不是机器。人需要把智慧发挥到极致。你应该丢掉枷锁,获取最大创造。 可为什么那些最聪明的程序员的做法却完全的相反?为什么他们喜欢控制其它程序员?是什么让他们如此独裁? 首先,你想把你的经验传授给他人。但并非每个人的思维都跟你一样。人的大脑是十分怪异的。 第二,控制别人的感觉良好。但这不可能真正有效的。你不能命令程序员去做什么。猫不是圈养出来的。 第三,你逃避责任。团队中的所有人都这样。我们遵守了规范!项目失败了。没错,可是我们是遵守了规范! 第四,好的意愿;最佳实践;很专业;很技术——诱人的开发过程。你仍在追逐你8岁时想摘到的那颗星星。但是,编程大师如何判断一件事的成败?看结果,这是唯一的标准。 第五,理想主义,你认为你理解整个世界,整个世界要尊崇你的意志。我们人类有些事情非常的在行….但那是在一万次的失败之后,一万次重复的失败。软件工程就是其中之一,不是有了规范就万事大吉的。 而最糟糕的不是这些。万恶之首是,只要你具有上面的任何一点,你最终就会制定出一套编码规范。 编码规范真正的罪恶在于,它们在伤你的心,伤整个团队的心。它们是一种耳语在说你不够优秀。他们不信任你。没有监管,你会搞的一团糟。 一年前我们开创 nearForm 公司,我们最在意的一件事就是要为客户写出最优秀的程序。在早先,我们尝试过所有的开发过程、方法、制度规范。所有都让人讨厌。没有一样真正起到作用。 于是我们开始实施这样的原则:相信我们的程序员是最有智慧的。这起作用了。 我希望所有人都能写出整洁优秀的代码。你自己判断这指的是什么。如果在代码脏乱、变量名不一致的情况下你还能安稳的睡大觉,这你自己决定。但你知道,也许这只是一个100行的用node.js写微型server,无关紧要。这你自己决定。 这你的责任,因为你一名程序员。 [英文原文:Why I Have Given Up on Coding Standards ] 转自: 每个程序员都知道,在一个软件公司里,你需要有一套严谨的编码规范。每个程序员也都知道,为了能按自己的编程习惯制订这套规范,每个程序员都在而抗争。刚进入一个新公司时,每个程序员都会内心里绝望,对那套由某些强势架构师独断指定的编码规范恐惧不已。 扔掉编码规范吧,让程序员自由发挥,你会得到更多的好处。从加强代码统一性上获得的这点胜利根本解决不了问题。编码规范就是技术上的遮羞布。在 nearForm 公司,我从来没有想过要制定一个这样的规范,因为我希望每个人都只需按照自己喜欢的方式编程。 这世界太吵闹了。JavaScript的复兴要为此负全责。尤其有一个“特征”:可有可无的分号。无数的主张,猜想和反对声铺天盖地。停止,去实际写些代码好吗。你知道我在说谁。 本意是好的,各路程序员大仙发布各种JavaScript编码规范和风格指导。你们全错了。请停止这种要去拯救这个世界的行为。 编码规范从何来?过程是这样的:在你开始编码时,你跟本不知道会做出什么。这充满乐趣,这是一场游戏,直到你弄瞎一只眼睛。一旦你被自己垃圾的代码伤了太多次,你开始知道你是个菜鸟。于是你开始走上了通往编程大师的道路,你贪婪的咀嚼《代码大全》, 《程序员修炼之道》,当然,还有 Joel。 之后,事情开始发生了。在通往朝圣的路上,你参透了真经。满腹的技艺让你成为了编程巨星。你的开发效率整整翻了一倍。现在,你要向世界传播。让你有今天成就 的知识也同样能拯救他人。你笼络人心,你传道,你纠缠不休。你训导你的老板要采用最好的实践方法和开发规范。而最不可饶恕的,你竟然开始写博客了。 大多数程序员从来不发声。那些喜欢弄出声响的,都晋升了。你晋升了。你把你绝顶聪明的想法强加给他人。你编写了一套编码规范,你让它成为了法律。 可之后,一切如旧。同样苦干,同样最后期限迫在眉睫,同样bug无数,同样悲惨结局。银弹跟本不存在。 几年后,你不再编码,你成为了管理者。你仍然认定编码规范,条律,制度的至关重要。关键就在于正确的实施。你从来都没有真正的做到过,但你坚持要实现这个目标。不仅如此,你变本加厉。代码量化标准!作为一个管理者,你成了痛苦的化身。 也许事情可能会向另外一个方向发展。也许你重新回去编程,或从未离去。经过一段时间,你发现自己如此无知,所有你的梦想都建立在沙滩上。你放弃了,你放弃了给程序员制订枷锁。这是另一层次的参悟。 至此,你认识到,人不是机器。人需要把智慧发挥到极致。你应该丢掉枷锁,获取最大创造。 可为什么那些最聪明的程序员的做法却完全的相反?为什么他们喜欢控制其它程序员?是什么让他们如此独裁? 首先,你想把你的经验传授给他人。但并非每个人的思维都跟你一样。人的大脑是十分怪异的。 第二,控制别人的感觉良好。但这不可能真正有效的。你不能命令程序员去做什么。猫不是圈养出来的。 第三,你逃避责任。团队中的所有人都这样。我们遵守了规范!项目失败了。没错,可是我们是遵守了规范! 第四,好的意愿;最佳实践;很专业;很技术——诱人的开发过程。你仍在追逐你8岁时想摘到的那颗星星。但是,编程大师如何判断一件事的成败?看结果,这是唯一的标准。 第五,理想主义,你认为你理解整个世界,整个世界要尊崇你的意志。我们人类有些事情非常的在行….但那是在一万次的失败之后,一万次重复的失败。软件工程就是其中之一,不是有了规范就万事大吉的。 而最糟糕的不是这些。万恶之首是,只要你具有上面的任何一点,你最终就会制定出一套编码规范。 编码规范真正的罪恶在于,它们在伤你的心,伤整个团队的心。它们是一种耳语在说你不够优秀。他们不信任你。没有监管,你会搞的一团糟。 一年前我们开创 nearForm 公司,我们最在意的一件事就是要为客户写出最优秀的程序。在早先,我们尝试过所有的开发过程、方法、制度规范。所有都让人讨厌。没有一样真正起到作用。 于是我们开始实施这样的原则:相信我们的程序员是最有智慧的。这起作用了。 我希望所有人都能写出整洁优秀的代码。你自己判断这指的是什么。如果在代码脏乱、变量名不一致的情况下你还能安稳的睡大觉,这你自己决定。但你知道,也许这只是一个100行的用node.js写微型server,无关紧要。这你自己决定。 这你的责任,因为你一名程序员。 [英文原文:Why I Have Given Up on Coding Standards ] 转自:http://www.oschina.net/news/42154/why-i-have-given-up-on-coding-standards

龙生   10 Jul 2013
View Details

SDN

防御网络 Self -Defending Network 思科自防御网络 思科自防御网络计划是一种全新的多阶段安全计划,它能够大大提高网络发现、预防和对抗安全威胁的能力。思科自防御网络计划增加了新的系统级威胁防御功能,与通过互联网协议(IP)网络将多种安全服务集成在一起的策略相比,又前进了一步。 制定企业的整体安全策略,是建立"自防御网络"的基础。随着网络技术不断地发展,网络安全要从以前被动的方式有所转变,在以前,企业不断在已有的计算机网络上不断添加防火墙,网络入侵检测设备,主机防病毒产品,网络身份认证系统,网络管理系统等等,其目的就是要加强网络的安全性,使计算机网络,网络上的通用操作系统,主机应用系统受到不同程度的保护。而今天,思科提出了一个崭新的概念,那就是,安全已经变成了网络的一部分,安全已经和网络密不可分,安全无处不在。而且,今后的计算机网络不但要具有保护网上主机系统,网上终端系统,网上应用系统的能力,关键是要网络本身也具有自我保护能力,自我防御能力,自我愈合能力,一旦受到网络蠕虫,网络病毒的侵扰甚至网络攻击时,能够快速反应,做到网络能够发现攻击,发现病毒,消除蠕虫,做到即保护网络应用的同时,又保护了网络自身,这就是思科所倡导的新一代的"自防御网络"计划(Self -Defending Network)。

龙生   10 Jul 2013
View Details

安装程序无法复制一个或多个文件。特定错误码是0x4b8

esentutl /p %windir%/security/database/secedit.sdb 故障现象安装IIS的时候一直提示如下错误,IIS无法正常安装。提示:安装程序无法复制一个或多个文件。特定错误码是 0x4b8。按“确定”以继续;或者按“取消”,停止安装并且再试一次。如果继续,组件可能无法正常运行。解决方案(1) 开始 > 运行 > 输入 CMD >再输入以下命令:esentutl /p %windir%/security/database/secedit.sdb,然后再安装一次,就搞定了。修复了安装IIS组件需要的系统数据库。这里的esentutl是一个系统的修复工具。主要用于修复系统的数据库。在Windows系统中,包含了多个数据库,最主要的数据库就是注册表,还包含了很多其他的数据库,他们都以系统数据库文件的形式保存,其后缀名为SDB。ESEnTUtl运行有几种模式。每种模式对SDB文件执行不同的任务。这里是每种模式的语法:Defragmentation  :  ESEnTUtl /d <database name> [options]碎片整理模式        :  ESEnTUtl /d <数据库文件名> [选项]Recovery      :      ESEnTUtl /r [options]恢复模式        :      ESEnTUtl /r [选项]Integrity        :      ESEnTUtl /g <database name> [options]完整性检查模式 :      ESEnTUtl /g <数据库文件名> [选项]Repair         :      ESEnTUtl /p <database name> [options]修复模式       :      ESEnTUtl /p <数据库文件名> [选项]Checksum       […]

龙生   10 Jul 2013
View Details