Ubuntu 发布声明称代号为 Maverick Meerkat 的 Ubuntu 10.10 已经完成使命,于 2012年4月10日结束生命周期,不会再有该版本的更新和安全补丁等。
另外 Ubuntu 12.04 LTS 版本计划于本月26日发布稳定版。
Ubuntu 发布声明称代号为 Maverick Meerkat 的 Ubuntu 10.10 已经完成使命,于 2012年4月10日结束生命周期,不会再有该版本的更新和安全补丁等。
另外 Ubuntu 12.04 LTS 版本计划于本月26日发布稳定版。
北京时间4月12日消息,由于未能达成和解,甲骨文和谷歌下周将针对Android侵权问题对薄公堂。
甲骨文2010年对谷歌提起起诉,指控Android操作系统侵犯其Java专利。甲骨文要求谷歌赔偿10亿美元的损失,同时要求谷歌停止侵权行为。而谷歌则表示,Android所使用的甲骨文技术已不受版权保护。
美国地方法院法官保罗•葛莱沃尔本月初裁定,甲骨文和谷歌之间的知识产权纠纷已陷入“不可调解的僵局”,双方律师应为庭审作好准备。
这起诉讼案的庭审将从本月16日开始进行,为期8周,主审法官是旧金山法院法官威廉•阿尔苏普。阿尔苏普将这起诉讼称之为“世界级知识产权诉讼案”,阿尔苏普在3月28日已告知两家公司的律师,“只有一方能在这起世界级知识产权诉讼案中胜出”。
37个API侵权
甲骨文称,谷歌当初在设计Android系统时,在未经授权的情况下,剽窃了Java编程语言平台的部分内容。甲骨文代理律师称,谷歌使用的37个应用程序接口(API)的协议和架构均为受版权保护的原始内容。
甲骨文律师迈克尔•雅各布在3月28日的听证会上表示:“我们讨论的是设计师们的数据库,他们设计的内容是一种艺术,而不是科学常识,是具有创造性的。”
甲骨文在本月5日提交给法庭的一份文件中称,在近期的Android手机中,97%含有剽窃代码。甲骨文称,法庭应该发出禁令,阻止谷歌向手机厂商提供侵权产品。届时,如果陪审员认为谷歌侵权,阿尔苏普将决定是否下达禁令。
和解谈判无果
甲骨文和谷歌曾在去年9月和今年4月2日进行两次和解谈判,但未能达成一致。谷歌认为,Android所使用的API基于通用做法,只是用于简单地描述如何运行一项任务,并不属于版权的范围。
谷歌代理律师迈克尔•库恩在3月28日的听证会上称:“拥有两种不同的组织方式并不意味着这是两种不同的表达方式,而只意味着这是两种不同的想法”。
库恩还称,在Android所使用的1500万行代码中,只有一小部分被认为存在剽窃之处。谷歌发言人吉姆•普罗瑟还表示,在最新版Android系统中,谷歌已删除了所有的复制内容。
业内人士西蒙•沃德利称,如果API可以申请版权,那将给美国软件行业带来巨大灾难。沃德利在一封电子邮件中称,如果编程人员使用的普通功能也将被保护,那将导致更多诉讼。
侵犯两项Java专利
甲骨文还声称,谷歌在该案中还侵犯了两项Java专利。据法庭指定的一名专家认定,这给甲骨文带来28亿美元的损失。
据一份法庭文件显示,谷歌提出就本案中剩余的两项专利向甲骨文支付约280万美元的赔偿金,赔偿的时间期限截至2011年。在未来赔偿金方面, 谷歌提议就其中一项专利向甲骨文支付0.5%的Android营收,直到这项专利在今年12月到期时为止;另一项专利则分摊0.015%的Android 营收,直到2018年4月到期时为止。
文件称,甲骨文已经回绝了谷歌的这项提议,称其赔偿金额过低。
谷歌曾希望通过谈判获得Java授权
甲骨文2010年起诉谷歌侵犯其7项专利,甲骨文的证据之一是,谷歌工程师蒂姆•林德霍尔姆2010年8月曾在致Android平台主管安迪•鲁宾的一封电子邮件中称:
拉里•佩奇和赛吉•布林要求我们调查是否可以在Android和Chrome中使用Java之外的其他技术。我们对此进行了大量的调查,最终认为没有技术能替代 Java。我们的结论是,需要通过谈判来获得Java授权。
而谷歌则否认这封电子邮件表明该公司故意侵权,并表示“这与一项调查有关,该项调查就是为了防止甲骨文起诉而进行的”。
纽约法律咨询服务公司DOAR Litigation Consulting的CEO保罗•尼勒称:“在庭审中,这封电子邮件将起到重要作用。”
但阿尔苏普在3月28日的听证会上称,让陪审团确信谷歌侵犯了不受版权限制、所有人可免费使用的编程语言的代码并不是一件轻松的任务。
Hacker News上和reddit的编程板块上有很多关于如何提高效率方面的专家。几乎每周,我们都会遇到有不同的人声称他们的工作效率提高了45.67%等等。有点像Oprah的访谈节目。在某些幸运的日子里,我们会被告知使用X web应用,使用这个应用的作者推荐的敏捷方法,你能如何的最小化员工的皱眉头的时间。你应该听说过关于使用Vim如果改变一个人的生活的故事吧。
让我把真相揭示于天下。阅读这些关于如何提高效率的文章,其本身就是一种十分没有效率的活动。如果你把这些时间用于观看Reddit上的那些猫呀狗呀的也许会更好。请思考这样一个事实,你这些年来读的所有的这些如何提高效率的文章并没有丝毫提高你的工作效率。你早应该用你的理智认识到这些关于如何提高效率的文章都是废话。
你也许会打断我说,“可是Jason,我知道有人在听取了Twitter上{这里是某位杰出程序员的名字}的忠告后,现在每天能写出2千行代码。”不错,我也知道这个家伙。可我也听说有很些人被闪电击中而死的这种巧事。
那本篇文章是否是一篇能提高工作效率的文章呢。也许吧。这篇有特殊用意的文章能通过劝阻你不要再读那些关于如何提高效率的文章来真正提高你的工作效率。如果它是一篇能提高你工作效率的文章,我希望它是你读的最后一篇此类文章。
[本文英文原文链接:Productivity Posts Are Bullshit ]
这个文章必然是有争议的,我在我的微博上讨论过很多次了,每次都是很有争议的。有不同的观点,有争论总是一件好事,这样可以引发大家的思考。所以,对于我的这篇博文,如果你赞同我的观点,我会感到高兴,如果你会去认真地深入思考,我也会高兴,如果你反对,没关系,可以讨论。
在此之前,我想说明一下我观点里的这个“专职QA”是怎么定义的。
我经历过一些公司都有专职的QA团队(专职的测试人员),自从上个公司我的开发团队在一个项目上被QA部门搞得一团糟,我越来越怀疑专职QA存在在意义。我的观点不一定对,但请让我鲜明地表达一下——我觉得是不需要全职的QA的,甚至不需要QA这一专职角色或部门,因为,不懂开发的人必然做不好测试。就像不懂开发的研发经理必然管不好研发团队一样。我越来越觉得Dev应该应该是做测试最合适的人选,这必然是未来的趋势 (因为我已经看到了中国程序员的进步,相比起10年前,今天的程序员已经是非常全面了,再来十年,必然证明我的观点是对的)。
在我正在展开说明之前,我想引用两篇文章:
一篇是 “On testers and testing”(中文翻译),本文的作者Sriram Krishnan是一名程序员,曾在Yahoo和微软工作过,开发过很多软件,曾被纽约时报报道,写过一本书,本文是他的一篇博客。他在文章中表达了这几个观点——
大多数的开发团队并不需要一个独立的测试角色。即使要有,那么所有的开发时间比上所有的测试时间应该 >20:1的。。证据吗?光看看一些从古至今最成功的软件开发团队就知道了。不论是当今的Facebook,还是30年前最初的NT团队,很多伟大 的产品都是出自没有或很少测试人员的团队。
开发人员应该测试自己的代码。没什么可说的。背后的道理并不重要。这包括单元测试,全覆盖的自动化测试或手工测试或组合测试。如果你的开发人员不能/不愿意或认为这“不归我管”,那你需要更好的程序员。
另一篇文章是邹欣的“现代软件工程讲义 9 测试 QA 的角色和分工”,这是一篇很不错的文章。他在文章里提到了分工的必要性,比如第三方的鉴定机构,并且也指出了分工的一些问题,比如,画地为牢的分工,无明确责任的分工,等,这些问题直接命中了分工的要害。我隐约觉得,我和邹欣的很多观点是相同的,我们内容上是相同的,只是形式上还有分歧。另外,我的观点太鲜明了,从而容易导向极端的理解。
你看,我们都同意,Dev要懂测试,QA要懂开发,只不过分工不同,既然你中有我,我中有你,那就不要分彼此了,一起携手开发测试吧。(另外,我个人觉得不懂开发的测试人员不可能测试得好)
我再说说我最糟糕的QA经历吧,这个公司的QA部门只做测试,他们的leader觉得所有的test design和test 的过程都不需要Dev参与,他们是独立于Dev之外的部门,他们几乎不关心Dev的设计和实现,他们只关心能跑通他们自己设计的test case。但是去执行Test Case的时候,又需要Dev的支持,尤其在环境设置,测试工具使用,确认是否是bug方面,全都在消耗着Dev的资源,最扯的是,他们对任何线上的问题 不负责,反正出了问题由Dev加班搞定。
我有一次私自review他们的test case的时候,发现很多的test case这样写到 – “Expected Result:Make sure every thing is fine” ,WTF,什么叫“Every thing is fine”?!而在test case design的时候,没有说明test environment/configuration 是什么?没有说明test data在哪里?Test Case、Test Data、Test Configuration都没有版本控制,还有很多Test Case设计得非常冗余(多个Test Case只测试了一个功能),不懂得分析Function Point就做Test Design。另外,我不知道他们为什么那么热衷于设计一堆各式各样的Negative Test Case,而有很多Positive的Test Case没有覆盖到。为什么呢,因为他们不知道开发和设计的细节,所以没有办法设计出Effective的Test Case,只能从需求和表面上做黑盒。
在做性能测试的时候,需要Dev手把手的教怎么做性能测试,如何找到系统性能极限,如何测试系统的latency,如何观察系统的负载(CPU,内 存,网络带宽,磁盘和网卡I/O,内存换页……)如何做Soak Test,如何观察各个线程的资源使用情况,如何通过配置网络交换机来模拟各种网络错误,等等,等等。
测试做得也不认真,大量的False Alarm,都是环境问题,比如:安装新版本后没有重启服务,没有使用新的配置文件,网络配置,等等,等等。
在项目快要上线前的一周,我又私自查看了一下他们的Test Result,我看到5天的Soak Test 的内存使用一直往上涨,很明显的内存泄露,这个情况发生在2个月前,但是一直都没有报告,我只好和我的程序员每天都加班到凌晨,赶在上线前解决了这个问 题。但是,QA部门的同学们就像没发生什么事似的,依然正常上下班。哎……
为什么会这样?我觉得有这么几点原因(和邹欣的观点一样)
注:我无意在这里贬低QA的能力工作。只是我看到了QA因为没有参与开发的一些现实问题。
邹欣对于分工出现的问题给出了两点解决方法:
- 充分授权和信任(Empower team members)
- 各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
我的观点是, 理论上正确,操作上太虚了。这就像我们国家喊的“为人民服务”的口号一样,没有具体的方法,根本无法落实。
我无意在这里贬低QA的工作,我也无意因为这个事走向另一个极端。但是,我在现在公司的经历,还有很多新兴公司的做法,我越来越觉得软件开发,真的不需要专职的QA,更不需要只写代码不懂做测试的专职的Dev。观点如下:
1) 开发人员做测试更有效
很多开发人员只喜欢写代码,不喜欢做测试,或是他们说,开发人员应该关注于开发,而不是测试。这个思路相当的错误。开发人员最应该关注的是软件质量,需要证明自己的开发成果的质量。开发人员如果都不知道怎么做测试,这个开发人员就是一个不合格的开发人员。
另外,我始终不明白,为什么不做开发的QA会比Dev在测试上更专业? 这一点都说不通啊。
2)减少沟通,扯皮,和推诿
想想下面的这些情况你是否似曾相识?
如果没有QA,那么就没有这么多事了,DEV自己的干出来的问题,自己处理,没什么好扯皮的。
而一方面,QA说Dev不懂测试,另一方面Dev说QA不懂技术,而我们还要让他们隔离开来,各干各的,这一点都不利于把Dev和QA的代沟给填平了。要让Dev理解QA,让QA理解Dev,减少公说公有理,婆说婆有理的只站在自己立场上的沟通,只有一个方法,那就是让Dev来做测试,让QA来做开发。这样一样,大家都是程序员了。
3)吃自己的狗食
真的优秀的开发团队都是要吃自己狗食的。这句话的意思是——如果你不能切身体会到自己干的烂事,自己的痛苦,你就不会有想要去改进的动机。没有痛苦,就不会真正地去思考,没有真正的思考,就没有真正的进步。
在我现在的公司,程序员要干几乎有的事,从需求分析,设计,编码,集成,测试,部署,运维,OnCall,从头到尾,因为:
所以,真正的工程师是能真正明白软件开发不单单只是coding,还更要明白整个软件工程。只明白或是只喜欢coding的,那只是码农,不能称之为工程师。
4)其它问题
好吧,我暂时写这么多,我会视大家的讨论再补充我的观点的。
—– update —–
一些人觉得我是在泄私愤,我能够理解为什么我会被这样误解,但是没有关系,很多新东西新观点总是会被误解的,我坦然面对。请大家抛开这些情感因素,单纯的思考一下,没有专职QA的的团队架构是否有积极的意义在里面?
(全文完)
BusinessInsider最近的一项研究结果发现,人力资源招聘新人的时候,他们看简历平均只看6秒,他们就会了解到你的信息。
他利用眼球追踪技术调查人力资源查看简历花费的时间,并且什么是他们最关心的东西,这珍贵的几秒是这样的:
在很短的时间,他们会看看你的名字,目前的职位和公司,目前职位的入职时间和离职时间,以前的公司和职位信息,以及受教育情况。
当你更新你的下一个简历,这些信息要很容易找到。剩下的似乎就不那么重要了。