2008年11月24日,北京--微软(中国)有限公司在全国高校举办“创新之旅”大型活动,启
动微软“创新杯”2009全球学生大赛,同时与高校师生分享微软最新技术,介绍“创新人才培
养计划”。本次活动计划在全国10余个城市的超过30所高校举行,届时微软公司的技术专家和
领导将与高校师生进行面对面的交流和和沟通。
2008年11月24日,北京--微软(中国)有限公司在全国高校举
办“创新之旅”大型活动,启动微软“创新杯”2009全球学生大赛,同时与高校师生分享微软
最新技术,介绍“创新人才培养计划”。本次活动计划在全国10余个城市的超过30所高校举行
,届时微软公司的技术专家和领导将与高校师生进行面对面的交流和沟通。
2009
年“创新杯”大赛自2008年9月启动以来,全球各地青年学生踊跃报
名。基于中国参赛学生在过去几届大赛中取得的耀眼成绩,本次大赛将首次在中国设立了软件
设计和嵌入式开发两个项目的中国区决赛,给予更多中国学生展示才华的机会。2009年5月,进
入这两个项目中国区决赛的学生团队将直接接受专家评委的点评和指导,赢取全球决赛机会和
丰厚奖金。有意参赛的学生将获得微软“创新人才培养计划”各类资源的支持:“点亮梦想”
计划免费提供开发及设计工具;高校学生社团“创新联盟”助学生第一时间获得最新技术资讯
并结识其他学校的同学;微软网络学堂上免费学习软件开发和编程技术;进入第二轮及以后比
赛的学生会接受专业培训和专家指导。微软将在中国高校掀起新的创新高潮。
微软公司大中华区开发合作部总经理柏尚杰(Nigel
Burton)表示:“作为世界顶尖的学生科技竞赛,'创新杯'代表了
下一代的科技和商业领导力量。它为全球青年学生提供了一个发挥想象力、激情和创造力的平
台,向他们展示科技为真实世界所带来的各种机会,使来自世界各地的学生沟通和交流他们的
科技创新体验。在前几届大赛中,中国学生展现出了令人赞叹的才能和智慧。我们期待着今年
有更多的中国学生加入比赛,展示创新才华,开拓国际视野。”
微软“创新杯”创始于2003年,旨在鼓励青年学生发挥想象力
和创新能力,投身科技创新,目前已经成为世界上规模最大的学生科技竞赛,有超过20万名来
自100个国家和地区的学生参与。中国学生从2004年开始参加全球“创新杯”大赛,过去两年间
共有1万7千多人次参赛。中国团队连续两年成为进入“创新杯”全球总决赛最大的代表队:
2007年中国学生以优异的成绩获得了4枚奖牌,2008年中国团队参与了九项比赛中六项的角逐,
取得了3枚奖牌。中国学生的睿智和杰出表现令大赛评委和参赛各国的代表队印象深刻。
“创新杯”2007年“界面设计”项目全球第二名获得者姚冬婧
说:“2007年'创新杯'是我一生难忘的经历。它是一项真正的基于现实,又同时放飞你的想象
力的比赛。它让我们有机会将自己的想法变成现实来解决实际问题,更与全世界的IT高手同台
竞技,开阔了眼界和思路。它让我从新的角度思考技术的创新应用及其对于社会发展的价值和
力量,工作后仍受益匪浅。希望充满想象力和创造力的同学踊跃报名参加微软'创新杯'2009,
为自己赢得更多机遇。”
微软“创新杯”
2009大赛主题为“科技可以解决我们当今面临的最棘手的问题”。
联合国在其制定的千年发展目标中明确指出了当今世界面临的几种最严峻的社会问题,如消灭
极端贫穷和饥饿、普及小学教育、全球合作促进发展等。大赛以参照解决这类社会问题为挑战
,旨在激发世界范围内的重大改变。本届比赛共有技术解决案类、技能竞赛类和数字艺术类三
个方向,细分为软件设计、嵌入式开发、游戏开发、MashUp、IT挑战、机器人和算法、摄影、
短片制作和设计等9个项目。学生的参赛作品将反映出针对真实世界的有价值的解决方案,体现
青年学生对解决世界上最棘手问题的创新思考。
通过在线、本地和区域性的竞赛后,脱颖而出的学生将在2009
年7月相聚于埃及,参加全球总决赛,在来自全球的学术界和科技界的众多评委面前展示各自的
参赛作品。最终获胜者将得到高达25,000美金的大奖。
如欲参加“创新杯”2009或了解更多信息,请访问以下网站报
名并查询各项比赛完整的报名要求:中文站点:
http://www.msuniversity.edu.cn/imaginecup/
关于微软公司
微软公司(NASDAQ:MSFT)创建于1975年,是世界软件、服务
和解决方案领域的领先企业,致力于帮助个人和企业发挥最大潜力。(欲了解微软公司在中国的
业务详情,敬请登录http://www.microsoft.com/China
查询进一步信息,请联系:
西岸奥美(北京)信息咨询服务有限公司
阎妍小姐/韩月琴小姐
电话:83913200-714/405
E-mail:rebecca.yan@h-line.com; yuki.han@h-line.com
The Way of the great learning involves manifesting virtue, renovating the people, and abiding by the highest good.
2008年11月30日星期日
微软启动全球学生科技大赛
微软启动全球学生科技大赛“创新杯”2008
CNET中国·PChome.net·投稿 作者: 责编: 时间:2007-12-11 标签: 微软 创新杯 MICROSOFT
12月10日,“想象一个世界——科技可以使所有人受到更好的教育”:可以帮助盲人阅读书籍、帮助聋哑人在课堂上大声发言;没有地域或语言的差别,学生可以自由探索、参与、互动。在微软“创新杯”2007大赛上,来自全世界100多个国家和地区的10万名学生参与角逐,利用他们的创造力及技术解决上述以及其他教育相关问题。
近日,微软启动了“创新杯”2008大赛(Imagine Cup 2008),以“科技可以实现环境的可持续发展”为主题,共设有软件设计、嵌入式开发、游戏开发、逻辑算法、IT挑战、视频游戏、界面设计、摄影、短片等9个富有挑战性的项目。参赛作品将展现青年学生对社会的责任感,具有创造力的解决方案将为解决环境的可持续发展贡献力量。同时大赛也为参赛学生提供开拓国际视野、赢得丰厚奖金的机会。
微软公司全球教育项目高级总监、Imagine Cup全球负责人Joe Wilson表示:“利用科技的力量解决现实世界存在的真实问题,青年学生所展现出的融合激情与创造力为一体的惊人能力,使我们相信他们可以改变世界,使未来更加美好。”
今年,Imagine Cup大赛设置了3大类9个项目的比赛:
技术解决方案类
•软件设计:软件设计项目为全球学生提供了一个发挥自身创造力和技术实力,解决人类面临问题的舞台。参赛队伍需要围绕Imagine Cup 2008的主题,尽可能的释放他们的灵感创意和探索欲望,设计出实用的软件解决方案。软件设计需要经过各个国家和地区的选拔赛,软件设计(中国区)选拔赛的第一名将于2008年7月参加在法国举办的全球总决赛。
•嵌入式开发:当今社会各种设备变得越来越小巧和便携,无处不在的各种设备对我们生活的影响也越来越大。嵌入式开发项目要求参赛队伍超越桌面应用的限制,发挥创意,构建一套完整的软硬件解决方案。
•游戏开发:游戏开发项目是对参赛队伍创造力和技术水平的测试,要求参赛队伍开发的游戏不仅具有娱乐性,同时还要寓教于乐,传递促进环境可持续发展的主题。游戏开发项目鼓励参赛团队在娱乐当中创新,运用最新的技术实现改变世界的梦想。
技能挑战类
•逻辑算法:逻辑算法比赛将考验参赛者解决问题的能力。有限的计算能力和存储空间使我们对精巧高效的算法有巨大的需求,通过发现、应用和实现正确的算法,学生将解决难以想象难题,实现一系列不可思议的壮举,例如对人类基因组的破译,安排数百万报文的路由,甚至检索整个互联网络等。
•IT挑战:IT挑战聚焦于开发、部署和维护IT系统并使之可用、高效、稳定、安全所需的技术和艺术。在IT项目中,参赛学生将展现其对网络、数据库和服务器的深入理解以及在这些领域进行分析和决策的能力。
•视频游戏:视频游戏项目使用故事背景和漫画风格以及非常真实的场景来随时随地挑战参赛学生的编程能力,并且使其能够直接在线上与全世界的参赛队伍竞争。视频游戏项目需要参赛学生编写的代码可以操纵一组人物在各种类型的任务中表现特定的行为和策略。
数字艺术类
•界面设计:创新、实用、易用是创造一个设计精美的用户界面的必要因素,此项目要求全球的参赛选手设计一个功能性强、引人注目且具有前瞻性的用户界面。
•摄影:摄影项目需借助影像来讲述故事。参赛队伍用一组照片作为媒介来传达科技使环境可持续发展这一主题。要求参赛队伍拍摄一组静态照片来讲述故事、激起共鸣并引发思考。通过这种切身体验来激发观众的情感共鸣和行动意愿,着重挑战参赛队伍同观众达成情感纽带的能力,通过他们的相机来激发和调动观众对怎样利用科技使环境可持续发展进行思考。
•短片:从概念设计到故事板再到后期剪辑,参赛队伍的挑战是将与今年Imagine Cup主题相关的素材整合在一起,以参赛队伍的视角和理解来呈现给观众,不仅要赋予这一过程以独特的视角和创造力,而其故事本身需要具有明确的意义和目的,并通过数字媒介表达。
通过初赛、复赛脱颖而出的学生将在2008年7月相聚于法国巴黎参加全球总决赛,在来自全球的学术界和科技界的专家评委面前展示其参赛作品。2008年“创新杯”9个项目的奖金共计高达18万美元。
如欲参加“创新杯”2008或了解更多信息,请访问www.imaginecup.com全球站点和www.msuniversity.edu.cn/imagine中文站点报名并查询各项比赛的详细内容。
“创新杯”到今年已经经历了6年的发展,并将继续给来自全球青年学生创造迎接挑战的机会,激发他们通过利用科技及创新能力想象一个更美好的世界。微软公司大中华区开发合作部总经理柏尚杰(Nigel Burton)表示:“ “创新杯”为青年学生提供了一个激发潜能的平台,让他们利用科技的力量探索新的方式,帮助解决世界上一些棘手的问题。今年的主题“科技可以实现环境可持续发展”,对中国的未来发展更具深远意义,希望中国学生在“创新杯” 2008继续向全世界展示中国学生的实力。”
自2004年参加“创新杯”以来,中国学生取得了骄人的成绩。2005年更是因为中国学生在“创新杯” 2005总决赛上的卓越表现而被称为“中国年”,在“创新杯”2007总决赛上,中国学生展示了他们世界级的水平以及在未来产业中超越其他国家的潜能,获得了1金1银2铜4项奖牌,中国代表队成为获奖最多的队伍之一。
CNET中国·PChome.net·投稿 作者: 责编: 时间:2007-12-11 标签: 微软 创新杯 MICROSOFT
12月10日,“想象一个世界——科技可以使所有人受到更好的教育”:可以帮助盲人阅读书籍、帮助聋哑人在课堂上大声发言;没有地域或语言的差别,学生可以自由探索、参与、互动。在微软“创新杯”2007大赛上,来自全世界100多个国家和地区的10万名学生参与角逐,利用他们的创造力及技术解决上述以及其他教育相关问题。
近日,微软启动了“创新杯”2008大赛(Imagine Cup 2008),以“科技可以实现环境的可持续发展”为主题,共设有软件设计、嵌入式开发、游戏开发、逻辑算法、IT挑战、视频游戏、界面设计、摄影、短片等9个富有挑战性的项目。参赛作品将展现青年学生对社会的责任感,具有创造力的解决方案将为解决环境的可持续发展贡献力量。同时大赛也为参赛学生提供开拓国际视野、赢得丰厚奖金的机会。
微软公司全球教育项目高级总监、Imagine Cup全球负责人Joe Wilson表示:“利用科技的力量解决现实世界存在的真实问题,青年学生所展现出的融合激情与创造力为一体的惊人能力,使我们相信他们可以改变世界,使未来更加美好。”
今年,Imagine Cup大赛设置了3大类9个项目的比赛:
技术解决方案类
•软件设计:软件设计项目为全球学生提供了一个发挥自身创造力和技术实力,解决人类面临问题的舞台。参赛队伍需要围绕Imagine Cup 2008的主题,尽可能的释放他们的灵感创意和探索欲望,设计出实用的软件解决方案。软件设计需要经过各个国家和地区的选拔赛,软件设计(中国区)选拔赛的第一名将于2008年7月参加在法国举办的全球总决赛。
•嵌入式开发:当今社会各种设备变得越来越小巧和便携,无处不在的各种设备对我们生活的影响也越来越大。嵌入式开发项目要求参赛队伍超越桌面应用的限制,发挥创意,构建一套完整的软硬件解决方案。
•游戏开发:游戏开发项目是对参赛队伍创造力和技术水平的测试,要求参赛队伍开发的游戏不仅具有娱乐性,同时还要寓教于乐,传递促进环境可持续发展的主题。游戏开发项目鼓励参赛团队在娱乐当中创新,运用最新的技术实现改变世界的梦想。
技能挑战类
•逻辑算法:逻辑算法比赛将考验参赛者解决问题的能力。有限的计算能力和存储空间使我们对精巧高效的算法有巨大的需求,通过发现、应用和实现正确的算法,学生将解决难以想象难题,实现一系列不可思议的壮举,例如对人类基因组的破译,安排数百万报文的路由,甚至检索整个互联网络等。
•IT挑战:IT挑战聚焦于开发、部署和维护IT系统并使之可用、高效、稳定、安全所需的技术和艺术。在IT项目中,参赛学生将展现其对网络、数据库和服务器的深入理解以及在这些领域进行分析和决策的能力。
•视频游戏:视频游戏项目使用故事背景和漫画风格以及非常真实的场景来随时随地挑战参赛学生的编程能力,并且使其能够直接在线上与全世界的参赛队伍竞争。视频游戏项目需要参赛学生编写的代码可以操纵一组人物在各种类型的任务中表现特定的行为和策略。
数字艺术类
•界面设计:创新、实用、易用是创造一个设计精美的用户界面的必要因素,此项目要求全球的参赛选手设计一个功能性强、引人注目且具有前瞻性的用户界面。
•摄影:摄影项目需借助影像来讲述故事。参赛队伍用一组照片作为媒介来传达科技使环境可持续发展这一主题。要求参赛队伍拍摄一组静态照片来讲述故事、激起共鸣并引发思考。通过这种切身体验来激发观众的情感共鸣和行动意愿,着重挑战参赛队伍同观众达成情感纽带的能力,通过他们的相机来激发和调动观众对怎样利用科技使环境可持续发展进行思考。
•短片:从概念设计到故事板再到后期剪辑,参赛队伍的挑战是将与今年Imagine Cup主题相关的素材整合在一起,以参赛队伍的视角和理解来呈现给观众,不仅要赋予这一过程以独特的视角和创造力,而其故事本身需要具有明确的意义和目的,并通过数字媒介表达。
通过初赛、复赛脱颖而出的学生将在2008年7月相聚于法国巴黎参加全球总决赛,在来自全球的学术界和科技界的专家评委面前展示其参赛作品。2008年“创新杯”9个项目的奖金共计高达18万美元。
如欲参加“创新杯”2008或了解更多信息,请访问www.imaginecup.com全球站点和www.msuniversity.edu.cn/imagine中文站点报名并查询各项比赛的详细内容。
“创新杯”到今年已经经历了6年的发展,并将继续给来自全球青年学生创造迎接挑战的机会,激发他们通过利用科技及创新能力想象一个更美好的世界。微软公司大中华区开发合作部总经理柏尚杰(Nigel Burton)表示:“ “创新杯”为青年学生提供了一个激发潜能的平台,让他们利用科技的力量探索新的方式,帮助解决世界上一些棘手的问题。今年的主题“科技可以实现环境可持续发展”,对中国的未来发展更具深远意义,希望中国学生在“创新杯” 2008继续向全世界展示中国学生的实力。”
自2004年参加“创新杯”以来,中国学生取得了骄人的成绩。2005年更是因为中国学生在“创新杯” 2005总决赛上的卓越表现而被称为“中国年”,在“创新杯”2007总决赛上,中国学生展示了他们世界级的水平以及在未来产业中超越其他国家的潜能,获得了1金1银2铜4项奖牌,中国代表队成为获奖最多的队伍之一。
Web 2.0 到 web 4.0 :未来的语义网络和网络操作系统(WebOS)
Radar Networks 公司的 Nova Spivack 绘制了一份未来 25 年的网络进化图。 Nova 没有明确指出 Web 4.0 具体的来临日期和所需技术,但每个阶段的发展以 10 年为期限是真实而可信的。同时,我们也不必拘泥于命名的规则 – 1.0、2.0 等等。互联网下一次显著进化将使其成为一个包含语义网络的平台,这一理念是合情合理的。
Nova 的公司正在秘密进行一项研究,他将其描述为“基于 Java 的框架,可提供与 Ruby on Rails 类似的语义网络应用程序和服务,同时包含一些其他技术,如用于语义数据列表的高速及可扩展的存储层,强大的语义查询功能,以及用于分析数据和为用户提供智能服务的一系列算法。”Radar Networks 公司在今年年末提供的服务“将推动和丰富更为智能的在线互动、社团、内容、合作以及商务活动,”他在最近的一篇博客中指出。此外,另一个秘密成立的 MetaWeb 公司也在进行有关语义网络的研究工作。
正如在 Web 1.0 的早期,很少人能够预测 Web 2.0 如何来临,同样 Web 3.0 的概念也是模糊不清的,甚至Nova 进化图中的 WebOS 仍未定义。网络操作系统(WebOS)意味着机器智能到达某个程度,其中互联网成为一个全球计算机,一个具有高度智能互动的大型网络。
Ray Kurzweil 预测到 2029 年,WebOS 将与人类的大脑相匹敌:
到 2029 年,将有足够的运算能力,能够模拟人脑,预测其运算速度为每秒钟 1016(一亿亿)次运算,其成本大约为 1 美元。那时,智能机器能够将人类所擅长的微妙而灵巧的技能(主要指人类所具有的模式识别能力)与机器出众的运行方式相结合,如正确存储上万亿的数据,快速搜索大型数据库,以及下载技能和知识。
但这并不是智能机器人的外星入侵,而是人类文明的展现,正如使用科学技术扩展我们的身体和智力极限。通过毛细血管将智能纳米机器人(血细胞大小的电子机器人)发送至人类大脑中,并与生物神经元进行密切互动,从而可以使人类吸收溶合这种技能。如果您认为这种场面充满了科幻色彩,那我可以告诉你人类已经使用血细胞大小的设备对动物进行高级诊断治疗,如治疗 I 型糖尿病以及识别并消灭癌细胞。
我无法预知 Kurzweil 有关未来网络的观点是否正确,但网络/互联网正逐渐变得更加智能,更加接近于人类的大脑以及孕育它的协作智能。
译者注:
1. Nova Spivack 是一位企业家、语义网络的倡导者、科技预言家,还有管理达人彼得 德鲁克(Peter Drucker)是他爷爷啊。Nova 这名字莫非是传说中的网络 ID?!
2. Ray Kurzweil 是发明家和未来主义者(futurist),还是光学字符识别(OCR)技术、文本语音合成和语音识别方面的先驱。因发明供盲人使用 Kurzweil 阅读器和歌手 Stevie Wonder 成为好友。另外,此人对长生不老的科学技术比较狂热。
Nova 的公司正在秘密进行一项研究,他将其描述为“基于 Java 的框架,可提供与 Ruby on Rails 类似的语义网络应用程序和服务,同时包含一些其他技术,如用于语义数据列表的高速及可扩展的存储层,强大的语义查询功能,以及用于分析数据和为用户提供智能服务的一系列算法。”Radar Networks 公司在今年年末提供的服务“将推动和丰富更为智能的在线互动、社团、内容、合作以及商务活动,”他在最近的一篇博客中指出。此外,另一个秘密成立的 MetaWeb 公司也在进行有关语义网络的研究工作。
正如在 Web 1.0 的早期,很少人能够预测 Web 2.0 如何来临,同样 Web 3.0 的概念也是模糊不清的,甚至Nova 进化图中的 WebOS 仍未定义。网络操作系统(WebOS)意味着机器智能到达某个程度,其中互联网成为一个全球计算机,一个具有高度智能互动的大型网络。
Ray Kurzweil 预测到 2029 年,WebOS 将与人类的大脑相匹敌:
到 2029 年,将有足够的运算能力,能够模拟人脑,预测其运算速度为每秒钟 1016(一亿亿)次运算,其成本大约为 1 美元。那时,智能机器能够将人类所擅长的微妙而灵巧的技能(主要指人类所具有的模式识别能力)与机器出众的运行方式相结合,如正确存储上万亿的数据,快速搜索大型数据库,以及下载技能和知识。
但这并不是智能机器人的外星入侵,而是人类文明的展现,正如使用科学技术扩展我们的身体和智力极限。通过毛细血管将智能纳米机器人(血细胞大小的电子机器人)发送至人类大脑中,并与生物神经元进行密切互动,从而可以使人类吸收溶合这种技能。如果您认为这种场面充满了科幻色彩,那我可以告诉你人类已经使用血细胞大小的设备对动物进行高级诊断治疗,如治疗 I 型糖尿病以及识别并消灭癌细胞。
我无法预知 Kurzweil 有关未来网络的观点是否正确,但网络/互联网正逐渐变得更加智能,更加接近于人类的大脑以及孕育它的协作智能。
译者注:
1. Nova Spivack 是一位企业家、语义网络的倡导者、科技预言家,还有管理达人彼得 德鲁克(Peter Drucker)是他爷爷啊。Nova 这名字莫非是传说中的网络 ID?!
2. Ray Kurzweil 是发明家和未来主义者(futurist),还是光学字符识别(OCR)技术、文本语音合成和语音识别方面的先驱。因发明供盲人使用 Kurzweil 阅读器和歌手 Stevie Wonder 成为好友。另外,此人对长生不老的科学技术比较狂热。
37signals
如果没有 37signals ,恐怕也没有 RoR 的如此流行。37signals 对于很多 Geek 来说,是一家非常迷人的公司。他们是网络上的另类新星。
37Signals 在 Signal vs. Noise 上披露了比较详细的运营数据,Ask 37signals: Numbers?
存储数据量
截止到 2007 年 11 月,总存储量统计:
5.9 T 用户上传的数据
888 GB 上传文件 (900,000 请求)
2 TB 文件下载 (8,500,000 请求)
这包括 Basecamp、Highrise、BackPack、Campfire总的数据统计。总的用户量其实并不多,只有 200 万。
这些数据存放在 Amazon S3 上,37Signals 用了这个服务已经一年多了,他们对此比较满意。事实上,Amazon S3 已经成为 Web 2.0 分布式存储的既定事实的解决方案。
服务器状况
37Signals 当前正在部署虚拟化软件产品,当然不用 VMware,而用开源的 Xen。当前大约有 30 台服务器,从单 CPU 的文件服务器到 8 CPU 的应用服务器都有,总共 100 颗 CPU、200GB 内存。预计 XEN 部署完毕后,服务器数量降低到 16 台,92 颗更快的 CPU、230GB 的内存量。这样做的主要目的是管理起来更方便(至于性能是否更好,我个人还是有点怀疑的--Fenng)。
关心 ROR 以及具体一些策略具体实现的朋友不防去看看那个帖子下面的留言。
之前还真的很少有听说哪家 Web 2.0 公司部署 XEN 的,37signals 的这个动作或许是个积极的信号。2007 年也是个"虚拟化"年,相信随着虚拟化的技术成熟,开源力量的壮大,会有更多的公司收益于 XEN 虚拟化架构.
37Signals 在 Signal vs. Noise 上披露了比较详细的运营数据,Ask 37signals: Numbers?
存储数据量
截止到 2007 年 11 月,总存储量统计:
5.9 T 用户上传的数据
888 GB 上传文件 (900,000 请求)
2 TB 文件下载 (8,500,000 请求)
这包括 Basecamp、Highrise、BackPack、Campfire总的数据统计。总的用户量其实并不多,只有 200 万。
这些数据存放在 Amazon S3 上,37Signals 用了这个服务已经一年多了,他们对此比较满意。事实上,Amazon S3 已经成为 Web 2.0 分布式存储的既定事实的解决方案。
服务器状况
37Signals 当前正在部署虚拟化软件产品,当然不用 VMware,而用开源的 Xen。当前大约有 30 台服务器,从单 CPU 的文件服务器到 8 CPU 的应用服务器都有,总共 100 颗 CPU、200GB 内存。预计 XEN 部署完毕后,服务器数量降低到 16 台,92 颗更快的 CPU、230GB 的内存量。这样做的主要目的是管理起来更方便(至于性能是否更好,我个人还是有点怀疑的--Fenng)。
关心 ROR 以及具体一些策略具体实现的朋友不防去看看那个帖子下面的留言。
之前还真的很少有听说哪家 Web 2.0 公司部署 XEN 的,37signals 的这个动作或许是个积极的信号。2007 年也是个"虚拟化"年,相信随着虚拟化的技术成熟,开源力量的壮大,会有更多的公司收益于 XEN 虚拟化架构.
Web 2.0公司的核心竞争力
Web 2.0公司的核心竞争力
在探索上述七大原则的过程中,我们已经强调了Web 2.0的一些主要特性。我们探讨的每一
个例子都体现着这些原则中的一个或多个,但是可能不满足其他的原则。因此,让我们通过总
结我们认为是Web 2.0公司核心竞争力的一些方面,来结束本文。
-- 服务,而不是打包的软件,具有高成本效益的可伸缩性。
-- 控制独特的、难以再造的数据源,并且用户越多内容越丰富。
-- 把用户作为共同开发者来信任。
-- 利用集体智慧。
-- 通过客户的自服务来发挥长尾的力量。
-- 软件超越单一设备。
-- 轻量型用户界面、开发模式、和商业模式。
今后一个公司要宣称是“Web 2.0”,就要将其特性同上述列表相测试。越符合就越名副其
实。不过要记住,在某一个领域的卓越表现,可能会比对七大原则中的每个都浅尝则止,要更
为有效。
Web 2.0的设计模式
在“模式语言”(A Pattern Language)一书中,克里斯多夫•亚历山大(Christopher
Alexander)为精炼描述对于体系结构问题的解决方案,开了一种格式上的处方。他写道:“每
个模式都描述着一种在我们的环境中一遍又一遍地出现的问题,并因此描述了对该问题的核心
解决方案。以此方式你可以使用该方案上百万次,而从不需要重复作同样的事情。”
1. 长尾
小型网站构成了互联网内容的大部分内容;细分市场构成了互联网的大部分可能的应用程
序。所以,利用客户的自服务和算法上的数据管理来延伸到整个互联网,到达边缘而不仅仅是
中心,到达长尾而不仅仅是头部。
2. 数据是下一个Intel Inside
应用程序越来越多地由数据驱动。因此:为获得竞争优势,应设法拥有一个独特的,难于
再造的数据资源。
3. 用户增添价值
对互联网程序来说,竞争优势的关键在于,用户多大程度上会在你提供的数据中,添加他
们自己的数据。因而,不要将你的“参与的体系”局限于软件开发。要让你的用户们隐式和显
式地为你的程序增添价值。
4. 默认的网络效应
只有很小一部分用户会不嫌麻烦地为你的程序增添价值。因此:要将默认设置得使聚合用
户的数据,成为用户使用程序的副产品。
5. 一些权力保留
知识产权保护限制了重用也阻碍了实验。因而,在好处来自于集体智慧而不是私有约束的
时候,应确认采用的门槛要低。遵循现存准则,并以尽可能少的限制来授权。设计程序使之具
备可编程性和可混合性。
6. 永远的测试版
当设备和程序连接到互联网时,程序已经不是软件作品了,它们是正在展开的服务。因此
,不要将各种新特性都打包到集大成的发布版本中,而应作为普通用户体验的一部分来经常添
加这些特性。吸引你的用户来充当实时的测试者,并且记录这些服务以便了解人们是如何使用
这些新特性的。
7. 合作,而非控制
Web 2.0的程序是建立在合作性的数据服务网络之上的。因此:提供网络服务界面和内容聚
合,并重用其他人的数据服务。支持允许松散结合系统的轻量型编程模型。
8. 软件超越单一设备
PC不再是互联网应用程序的唯一访问设备,而且局限于单一设备的程序的价值小于那些相
连接的程序。因此:从一开始就设计你的应用程序,使其集成跨越手持设备,PC机,和互联网
服务器的多种服务。
在探索上述七大原则的过程中,我们已经强调了Web 2.0的一些主要特性。我们探讨的每一
个例子都体现着这些原则中的一个或多个,但是可能不满足其他的原则。因此,让我们通过总
结我们认为是Web 2.0公司核心竞争力的一些方面,来结束本文。
-- 服务,而不是打包的软件,具有高成本效益的可伸缩性。
-- 控制独特的、难以再造的数据源,并且用户越多内容越丰富。
-- 把用户作为共同开发者来信任。
-- 利用集体智慧。
-- 通过客户的自服务来发挥长尾的力量。
-- 软件超越单一设备。
-- 轻量型用户界面、开发模式、和商业模式。
今后一个公司要宣称是“Web 2.0”,就要将其特性同上述列表相测试。越符合就越名副其
实。不过要记住,在某一个领域的卓越表现,可能会比对七大原则中的每个都浅尝则止,要更
为有效。
Web 2.0的设计模式
在“模式语言”(A Pattern Language)一书中,克里斯多夫•亚历山大(Christopher
Alexander)为精炼描述对于体系结构问题的解决方案,开了一种格式上的处方。他写道:“每
个模式都描述着一种在我们的环境中一遍又一遍地出现的问题,并因此描述了对该问题的核心
解决方案。以此方式你可以使用该方案上百万次,而从不需要重复作同样的事情。”
1. 长尾
小型网站构成了互联网内容的大部分内容;细分市场构成了互联网的大部分可能的应用程
序。所以,利用客户的自服务和算法上的数据管理来延伸到整个互联网,到达边缘而不仅仅是
中心,到达长尾而不仅仅是头部。
2. 数据是下一个Intel Inside
应用程序越来越多地由数据驱动。因此:为获得竞争优势,应设法拥有一个独特的,难于
再造的数据资源。
3. 用户增添价值
对互联网程序来说,竞争优势的关键在于,用户多大程度上会在你提供的数据中,添加他
们自己的数据。因而,不要将你的“参与的体系”局限于软件开发。要让你的用户们隐式和显
式地为你的程序增添价值。
4. 默认的网络效应
只有很小一部分用户会不嫌麻烦地为你的程序增添价值。因此:要将默认设置得使聚合用
户的数据,成为用户使用程序的副产品。
5. 一些权力保留
知识产权保护限制了重用也阻碍了实验。因而,在好处来自于集体智慧而不是私有约束的
时候,应确认采用的门槛要低。遵循现存准则,并以尽可能少的限制来授权。设计程序使之具
备可编程性和可混合性。
6. 永远的测试版
当设备和程序连接到互联网时,程序已经不是软件作品了,它们是正在展开的服务。因此
,不要将各种新特性都打包到集大成的发布版本中,而应作为普通用户体验的一部分来经常添
加这些特性。吸引你的用户来充当实时的测试者,并且记录这些服务以便了解人们是如何使用
这些新特性的。
7. 合作,而非控制
Web 2.0的程序是建立在合作性的数据服务网络之上的。因此:提供网络服务界面和内容聚
合,并重用其他人的数据服务。支持允许松散结合系统的轻量型编程模型。
8. 软件超越单一设备
PC不再是互联网应用程序的唯一访问设备,而且局限于单一设备的程序的价值小于那些相
连接的程序。因此:从一开始就设计你的应用程序,使其集成跨越手持设备,PC机,和互联网
服务器的多种服务。
Google 推出 IPv6
Google 推出 IPv6 站点2008年05月16日 星期五 18:41
据国外媒体报道,由于IPv4地址将耗尽,Google已开始试水IPv6搜索,并推出了IPv6 站点。
由于IPv4拥有43亿个IP地址,但目前只剩下约19%。到2012或2013年,剩下的这19%也将全部分配完毕。
美洲互联网号码注册管理中心(ARIN)此前也曾呼吁,由于互联网IP地址即将耗尽,业内必须尽快向IPv6过
渡。IPv6则采用128位地址长度,几乎可以不受限制地提供地址。
Google IPv6 站点地址:http://ipv6.google.com/
访问Google IPv6 站点需要IPv6支持。XP系统下安装方法:本地连接>状态>属性>Internet协议(TCP/IP)
>安装>协议>添加>TCP/IP 版本6。
据国外媒体报道,由于IPv4地址将耗尽,Google已开始试水IPv6搜索,并推出了IPv6 站点。
由于IPv4拥有43亿个IP地址,但目前只剩下约19%。到2012或2013年,剩下的这19%也将全部分配完毕。
美洲互联网号码注册管理中心(ARIN)此前也曾呼吁,由于互联网IP地址即将耗尽,业内必须尽快向IPv6过
渡。IPv6则采用128位地址长度,几乎可以不受限制地提供地址。
Google IPv6 站点地址:http://ipv6.google.com/
访问Google IPv6 站点需要IPv6支持。XP系统下安装方法:本地连接>状态>属性>Internet协议(TCP/IP)
>安装>协议>添加>TCP/IP 版本6。
2008年11月29日星期六
西方国家 藏独 奥运
西方国家这次为什么会如次的团结?欧洲的德国、法国,一般是不会冒着这样的风险得罪中国这个经济大国的。伊拉克战争时德国和法国都和中国站在一边,不支持美国对伊动武。为伊拉克而得罪美国,不符合他们的国家利益啊。法国10年前为了不得罪中国,终止了对台军售,损失了几十亿的收入。而为什么今天会冒着这么大的风险公然与中国为敌?难到就是为了和自己根本不相干的西藏和奥运?而另一个值得让人思考的问题是,一向是西方老大的美国,为什么这一次这么低调?让英、法、德在前台唱主角?对于西藏,西方国家很清楚,再怎么闹,中国也不可能做出让步。对于奥运,他们也很清楚,就算西方国家没有一个领导人出席北京奥运会,中国也就是面子上过不去罢了,对中国有实质影响吗?没有。所以,西藏只是一个幌子,奥运也只是一个幌子。那么他们到底想从中国得到什么? 西方国家正面临着10年来经济陷入衰退的危险,他们需要有一个有实力的国家为这次西方经济的衰退买单。不言而喻,他们不约而同的想到了中国。 做为一个普通老百姓,我对国际经济没有什么研究,但2008年一开始我还是隐约到中国经济面临的危险,现在也就想起了温总理说过的一句话:2008年也许是中国经济最困难的一年。现在想起正在进行的这场闹剧,真的有点让人毛骨耸然了。美国不是低调,是很冷静,他们早已经不露声色的出招了: 1、美元贬值。因为美元贬值,人民币升值,中国16000亿美元的外汇储备已经人间蒸发了3000亿美元,而且还在继续蒸发中。更要命的是,由于人民币升值,中国出口产品成本增加,沉重的打击中国的出口,许多企业面临倒闭的危险。因为中国企业的倒闭,西方国家生产企业就可以开始生产复苏。 2、通过高油价以拖跨中国经济。中国经济的高速发展需要大量的进品原油,而西方国家则不断的提高石油储备,造成高油价一直持续,以增加中国经济建设的成本。这就是美国为什么要打伊拉克、打伊朗的原因:控制石油就是控制了经济命脉。 3、足涨中国金融泡沫。人民币升值,大量热钱自然要涌入中国,造成中国高成本、高币值的经济泡沫。或许这就是为什么政府就算是背着千夫所指都绝不救市的原因,就是为了打击国际投机资本在中国的恶意圈钱行为,而另一方面却不得不面对成千上万痛不欲生的股民的唾骂而有可能造成国内社会动荡的危险。现在看了,什么西藏事件、抵制奥运都是不足为道的事。所以,“西藏”和“奥运”只是西方国家绑架的两个“人质”,他们真正的目的不是西藏,也不是奥运,而是以此为要挟,要中国为他们的经济衰退买单。不买单:搞乱你,要死大家一起死。买单:坐下来谈,你答应我我就息事宁人! 中国政府的冷静是对的,死死抓住经济建设这个中心不动摇才是关键。经济如果一跨,那就什么都跨了。 国民要冷静,要相互理解,不要给政府出难题。还是那句话:发展才是硬道理,压倒一切的是稳定。一个普通的中国人都能预料到,我相信政府能从容应对。我们要支持政府打赢这场表面上看起来是舆论战,而事实上是经济的战争 我们需要更团结 希望大家奔走先告 1、多省油 多乘坐公共交通出行 能做车就不要开车 能开窗户就不要开 空调 2、多省电 路灯不用就关掉, 能用耳机就不要开音箱,家电不用就要把整个开关拔下来 又省电又安全 希望政府把夜景工程的灯光就关掉 3、支持国货 能买到国货就不要买外国货 促进内需 钱要给自己人赚 4、努力工作 多开发和制造更好的产品 实业才是救国之本 5、尊重自己 尊重国人 不要崇洋媚外 6、告诉台湾 西藏 包括其他民族的青年 为什么我们现在还这么痛苦别的国家看不起,因为我们的祖辈太喜欢窝里斗。 7、告诉身边的每一个人 中国只有强大才会有更好的家 ,落后就要挨打挨骂 8、政府在进步 督促政府更快的进步 而不是推到他 那样高兴的是美日 痛苦的是自己 希望你能花1分钟看完,我相信看完它你们会很自觉的转发。
StumbleUpon是什么?
StumbleUpon是什么?
StumbleUpon是一个浏览器插件,可以安装在绝大多数通用的浏览器上,例如IE、FireFox、NetScape等。
StumbleUpon的网站是?
网址是http://www.stumbleupon.com。
StumbleUpon的原理是什么?
StumbleUpon 可以根据你的个人偏好,把符合你偏好的、被最多人所推荐的网站推荐给你,这样,你就能够轻松访问到那些内容高质量的网页,而不用总是浪费时间访问很多内容质量平平的网页。
通过这样的一种推荐方式,把你的上网视野从原先的1000米延伸到10000米,让你轻松站在网民之巅!
所谓高质量网页,就是这个网页被很多人很多人推荐过。你也可以推荐或者否定某一个网页。
安装StumbleUpon后会在你的浏览器工具栏上有一个 “StumbleUpon”工具栏和图标。StumbleUpon把网页内容设定为很多类别。设定好你的类别偏好后,每次点一下StumbleUpon的图标,就会自动访问某一个符合你偏好的高质量网站。比如你可以选择以下使用偏好:软件、网站建设、即时消息、互联网、Linux/Unix、黑客、网络安全、源代码开放、网页开发、IT业界资讯、站长、媒体、奥运会、教育培训、交友网站等。
(来源:森库资讯sysku.com,谢谢易雄介绍)
StumbleUpon的功能是什么?
装上之后会在浏览器上出现一个工具条,每次点击“Stumble”按钮,浏览器里都会出现一个让你耳目一新的网页。如果你看到自己非常喜欢的网页,可以点一下 “I like it”大拇指形状的按钮,给它投票。这种投票有2个用处:
1)与己的好处:网站会根据你给哪些网页投过票,推断你的喜好,下次给你呈现你可能会喜欢的网页;
2)与人的好处:得票越多的网页就是越精彩的网页,当其他用户点Stumble按钮时就会越优先呈现出来。
如果你不喜欢某一个网页,就可以点击”No more like this”,给这个网页投反对票。另外,你可以在list里面选择一个分类,在这个类别下进行浏览。也可以点击“reviews of this page”按钮来评论一个网页。使用体验很像用电视遥控器的“向下键”一下一下的换台,适合慵懒的状态下上网休闲。
确切的说,StumbleUpon不仅仅是一个信息聚合工具,还是一个SNS社会网络,因为它能够让你在评论网页的时候看到同样也喜欢某一个网页的其它用户,而且通过网站给你推荐的小组,可以让你更方便的找到兴趣相投的朋友。
StumbleUpon的发展历程?
StumbleUpon可以说是一个从浏览器的工具条插件发展起来的网站,其主要功能的80%以上都是由一个小小的插件完成。它是2001年由三个加拿大软件工程师创办,一开始在加拿大,后来随着网站壮大,到了美国发展。在2006年末以前仅仅提供firefox插件,后来才推出IE浏览器的插件。
StumbleUpon的不足?
StumbleUpon对中文支持不好,中文写的评论都是乱码,而且里面推荐的基本都是欧美网站,几乎没有中国网站,中国人还是看中国网页有感觉。
(来源:森库资讯sysku.com,谢谢易雄介绍)
StumbleUpon的核心竞争力
StumbleUpon最好的功能?
每一次给你推荐出来的网页都是很符合你的胃口的。
举个例子,例如你喜欢看微型博客,类似于twitter,你可能会在相关信息的时候,经常点击“I like it”。
StumbleUpon就会知道你喜欢这个类型的信息,通过一定的搜索算法从数据库取出一系列的网页,都是这个类型的,当你点” Stumble”按钮的时候,依次给你显示出来。这种搜索算法是与其他给这个网页投过票的人的行为相关的,正是这算法体现了“用户越多越好用”的web2.0精髓。
很多人都说推荐结果是随机的,具有神秘感。其实推荐的东西都是和用户的网站行为相关的,要不然怎么会都是我喜欢的网页?而且通常的情形是这样的,用户不知道用搜索引擎怎样找到它喜欢的东西,但是StumbleUpon能够快速的推荐出来恰恰对胃口的东西。
当然这样好的功能是基于三点:大量的网页数据,大量的用户投票数据和优秀的算法。
在美国很多人把StumbleUpon称作是web3.0的先驱,因为它把用户个性数据巧妙的融合到搜索技术之中,为用户提供更加贴身的搜索服务。我觉得无所谓web2.0还是3.0,StumbleUpon确实代表了下一代搜索引擎发展的方向,即个性化搜索,这个过程中,用户参与更多了,结果更加精准了,用户的上瘾程度也更高了,网站的赢利能力也更强了。不知道Google下一步会不会推出这样的个性化搜索引擎?
文章来源森库博客 http://sysku.com/blog/ , 原文地址:http://sysku.com/blog/post/383.html
StumbleUpon是一个浏览器插件,可以安装在绝大多数通用的浏览器上,例如IE、FireFox、NetScape等。
StumbleUpon的网站是?
网址是http://www.stumbleupon.com。
StumbleUpon的原理是什么?
StumbleUpon 可以根据你的个人偏好,把符合你偏好的、被最多人所推荐的网站推荐给你,这样,你就能够轻松访问到那些内容高质量的网页,而不用总是浪费时间访问很多内容质量平平的网页。
通过这样的一种推荐方式,把你的上网视野从原先的1000米延伸到10000米,让你轻松站在网民之巅!
所谓高质量网页,就是这个网页被很多人很多人推荐过。你也可以推荐或者否定某一个网页。
安装StumbleUpon后会在你的浏览器工具栏上有一个 “StumbleUpon”工具栏和图标。StumbleUpon把网页内容设定为很多类别。设定好你的类别偏好后,每次点一下StumbleUpon的图标,就会自动访问某一个符合你偏好的高质量网站。比如你可以选择以下使用偏好:软件、网站建设、即时消息、互联网、Linux/Unix、黑客、网络安全、源代码开放、网页开发、IT业界资讯、站长、媒体、奥运会、教育培训、交友网站等。
(来源:森库资讯sysku.com,谢谢易雄介绍)
StumbleUpon的功能是什么?
装上之后会在浏览器上出现一个工具条,每次点击“Stumble”按钮,浏览器里都会出现一个让你耳目一新的网页。如果你看到自己非常喜欢的网页,可以点一下 “I like it”大拇指形状的按钮,给它投票。这种投票有2个用处:
1)与己的好处:网站会根据你给哪些网页投过票,推断你的喜好,下次给你呈现你可能会喜欢的网页;
2)与人的好处:得票越多的网页就是越精彩的网页,当其他用户点Stumble按钮时就会越优先呈现出来。
如果你不喜欢某一个网页,就可以点击”No more like this”,给这个网页投反对票。另外,你可以在list里面选择一个分类,在这个类别下进行浏览。也可以点击“reviews of this page”按钮来评论一个网页。使用体验很像用电视遥控器的“向下键”一下一下的换台,适合慵懒的状态下上网休闲。
确切的说,StumbleUpon不仅仅是一个信息聚合工具,还是一个SNS社会网络,因为它能够让你在评论网页的时候看到同样也喜欢某一个网页的其它用户,而且通过网站给你推荐的小组,可以让你更方便的找到兴趣相投的朋友。
StumbleUpon的发展历程?
StumbleUpon可以说是一个从浏览器的工具条插件发展起来的网站,其主要功能的80%以上都是由一个小小的插件完成。它是2001年由三个加拿大软件工程师创办,一开始在加拿大,后来随着网站壮大,到了美国发展。在2006年末以前仅仅提供firefox插件,后来才推出IE浏览器的插件。
StumbleUpon的不足?
StumbleUpon对中文支持不好,中文写的评论都是乱码,而且里面推荐的基本都是欧美网站,几乎没有中国网站,中国人还是看中国网页有感觉。
(来源:森库资讯sysku.com,谢谢易雄介绍)
StumbleUpon的核心竞争力
StumbleUpon最好的功能?
每一次给你推荐出来的网页都是很符合你的胃口的。
举个例子,例如你喜欢看微型博客,类似于twitter,你可能会在相关信息的时候,经常点击“I like it”。
StumbleUpon就会知道你喜欢这个类型的信息,通过一定的搜索算法从数据库取出一系列的网页,都是这个类型的,当你点” Stumble”按钮的时候,依次给你显示出来。这种搜索算法是与其他给这个网页投过票的人的行为相关的,正是这算法体现了“用户越多越好用”的web2.0精髓。
很多人都说推荐结果是随机的,具有神秘感。其实推荐的东西都是和用户的网站行为相关的,要不然怎么会都是我喜欢的网页?而且通常的情形是这样的,用户不知道用搜索引擎怎样找到它喜欢的东西,但是StumbleUpon能够快速的推荐出来恰恰对胃口的东西。
当然这样好的功能是基于三点:大量的网页数据,大量的用户投票数据和优秀的算法。
在美国很多人把StumbleUpon称作是web3.0的先驱,因为它把用户个性数据巧妙的融合到搜索技术之中,为用户提供更加贴身的搜索服务。我觉得无所谓web2.0还是3.0,StumbleUpon确实代表了下一代搜索引擎发展的方向,即个性化搜索,这个过程中,用户参与更多了,结果更加精准了,用户的上瘾程度也更高了,网站的赢利能力也更强了。不知道Google下一步会不会推出这样的个性化搜索引擎?
文章来源森库博客 http://sysku.com/blog/ , 原文地址:http://sysku.com/blog/post/383.html
Tough times be damned! We're going technology shopping.
Tough times be damned! We're going technology shopping.
by Lance Ulanoff
Buzz up!on Yahoo!
Powerful financial waves are buffeting the USS Economy in extraordinary and dangerous ways, making it clear that this will be a holiday buying season unlike any other. But if you think recession (some say depression) concerns are going to keep me from producing my fourth annual guidance report on what to buy, consider, and just plain avoid, you're sorely mistaken, my friends. Sure, the financial climate has me feeling crankier, but that only makes it easier to dismiss the bad and pointless products of the past 11 months. So let's get started with my latest attempt to help save you from yourself this holiday season.
Home Entertainment
Don't Buy: Expensive Blu-ray Player
Sorry folks, but I still think $250 is way too much to pay for a DVD player. I'll reconsider my position only if manufacturers come to their senses over the next two months and start selling Blu-ray players for $149 or less.
Maybe Buy: Toshiba XDE DVD Player
I know standard DVDs are yesterday's technology. But if you have a vast library of DVDs and your current player is seizing up, this upscaling, image-crisping DVD player can be had for a lot less than competing Blu-ray devices. And it'll make your current and vast libraries of DVDs look pretty darn good on your new HDTV.
Do Buy: Roku Netflix Player
This $99 set-top box will open up your living room to a whole library of video content and is way cheaper than a new Blu-ray player. The current Netflix on-demand selections are, admittedly, limited, but there are many great movies, with a decent number of newish ones in the mix. Plus, I expect that Netflix will eventually open up first-run films to this service.
Caveat: If you already own an Xbox 360, you'll be able to access the very same library of Netflix movies on demand. (One can only hope Sony will get around to adding Netflix functionality to the PS3.) In that case, maybe you just give yourself the gift of a Netflix account.
Video Cameras
Don't Buy: HD Camcorders
I've come to the difficult realization that most people are not videographers, and HD camcorders, with all their bells and whistles (and $500-plus price tags), are overkill for average consumers.
Maybe Buy: Digital Camera with HD Video-Capture Abilities
My wife never shot video until she got a digital camera with built-in video-capture abilities. Obviously, the transition to shooting in HD, when it's simply part of the camera you already own, is perfectly natural. The Samsung NV24HD, for example, is a decent 10-megapixel camera with built-in HD capabilities. Sure, it's only 720p, but for most people, that's probably high-def enough.
Do Buy: A YouTube Camcorder (aka Pocket Camcorder)
Digital cameras that shoot video are great, but to get that video off the camera, you'll likely have to remove the card and put it in your PC. Then you have to know what to do next. Or you can buy a Creative Vado, Flip Mino, or Kodak Zi6. For anywhere from $99 to $179, you can get an all-in-one device that lets you capture standard and high-def video and pretty much everything in between, depending on the model. Plus, you can effortlessly transfer the video from the device to a PC and then online to share with friends. I, for one, carry Creative's Vado. It's thinner and smaller than an iPod classic and, like most of these pocket video cams, comes equipped with a built-in USB dongle and software that can automatically upload your video to YouTube. No muss, no fuss, and you're capturing moments and sharing them with friends, family, and, if you choose, the world.
Cell Phones
Don't Buy: Palm Centro
Look, I loved my Palm Treo 700p when I got it in 2007, and I know Palm has sold a million Centros (basically, a stripped-down, value-priced Treo), but we have no idea where the Palm platform is going. Will there be an open-source version next year? Maybe, but I wouldn't hold my breath. Do you really want to be married to what could very well be a dying platform?
Maybe Buy: T-Mobile G1
If you're desperate to own the very first Google Android phone, then by all means buy the T-Mobile G1. However, the reality is that the phone is missing features like enterprise e-mail, a regular headset jack, and multimedia capabilities. Plus, it's a version one phone on a version one platform. Personally, I'd wait for version two.
Do Buy: Apple iPhone 3G or RIM BlackBerry Bold
For people without my virtual typing handicap, the Apple iPhone 3G is the ultimate, do-anything pocket device. On the other hand, if you have to have a keyboard, go with the RIM BlackBerry Bold 9000.— Next: Gadgets and PCs
Don't Buy: Do-Nothing Gadgets
I hate desktop tchotchkes that look pretty or funny but have no discernible utility. This includes the WowWee Chatterbots—desktop toys that comment on your computer-based actions—and all Hasbro I-Dogs, I-Penguins, I-Ducks (wait, they haven't released a duck version—yet), which add piddling speakers to your MP3 players and dance. Useless.
Maybe Buy: Ugobe Pleo
I have a Pleo in my office, and it is an engaging entertainment robot that's nice to hold and fun to play with. On the other hand, it's still too slow-moving to really keep my interest. And recent corporate shuffles at Ugobe—including an office move from California to Idaho (the new hub of technology!)—have me wondering about the long-term viability of the business. That said, if the company could lower the price by about $150, I might consider making it a "Do Buy."
Maybe Buy: A WowWee Robot
I've spent time with most of them, including the surprisingly powerful and somewhat difficult-to-use Rovio Telepresence robot. If I had to pick, though, I might go for the adorable Femisapien—at least it kisses you. These bots can move to the "Do Buy" column if they get a little more powerful, without turning into hobbyist toys.
Do Buy: An E-Book Reader
I'm encouraged that the new Sony Reader Digital Book supports gestures, but they forgot to add wireless content download. Meanwhile, the Amazon Kindle's update, if leaked photos are to be believed, looks as if it's moving in the wrong direction. Even so, I love the technology, and if you're a serious reader, then there is no better solution for travel.
Mini PCs
Don't Buy: A UMPC
With their tiny keyboards and unwieldy designs, these odd-duckling systems, like the Wibrain B1H and Samsung Q1 Ultra, will satisfy no one. It's a category that, with the exception of vertical markets, is already in its death throes.
Maybe Buy: A Netbook
I know, you're saying to yourself, "Aren't UMPCs and netbooks the same thing?" Yes and no. There are some UMPC refugees in the new and rapidly growing netbook market, but unlike the Wibrain B1H, innovative products like the ASUS EeePC 4G and the Dell Inspiron Mini 9 look and work like traditional laptops. The big difference is cost. Understand, though, that netbooks have their limits. A $350 laptop is not going to do the same kind of technical calisthenics as one that costs $1,500 or $3,500.
Do Buy: A Laptop
I can tell you that the next PC I add to my home will be a laptop. They're small, light, portable, less power-hungry, and, thanks to myriad innovations, just as powerful as most mid-range and workstation desktops.
Desktop PCs
Don't Buy: A Big Old Box
Large, old-school desktop PCs are a blight in almost any room of the house. The Jurassic-age BTX-size case designs are relics of the 20th century that need to die. If you do want a somewhat traditional system, take a look at some of the mini boxes offered by HP (its Slimline series) and at the Apple Mac mini.
Maybe Buy: A PC with an Unusual Case Design
Dell Studio Hybrid is not only pretty to look at, but it's the rare GreenTech Approved (read: eco-friendly) desktop PC on the market. Sure, the power is borderline (just 2GB of RAM and only a 250GB hard drive), but it's enough for most people, and these systems slip neatly into any room in the home.
Do Buy: An All-in-One PC
If you'd rather ignore my advice about choosing a laptop as your next home desktop PC, then by all means consider an all-in-one PC. Sony has some gorgeous ones, like the Sony VAIO VGC-RT150Y, which can double as wall-mounted HDTVs. HP's second TouchSmart, in particular, is a wonder of design, elegance, and innovation. It seems like the perfect kitchen PC.— Next: Software and Games
Software
Don't Buy: Expensive Software
The age of shrink-wrapped $200 software is over. So much of what you want to do with your PC can be accomplished with downloadable and sometimes free software. Take a look at our Best Free Software story if you don't believe me.
Maybe Buy: Expensive Software
Yeah, I just contradicted myself. So what? The fact is, some people will always need the raw horsepower found only in expensive, client-based apps. I count Adobe CS4 (which includes Photoshop, InDesign, Premiere, and much more) among these.
Do Buy: Security Software
Get it for yourself. Give it to your friends. Viruses may be dead, but malware threats are alive, well, and proliferating as you read this. It's a $59 to $80 investment that you'll never regret.
Games
Don't Buy: Grand Theft Auto IV Knockoffs
I'm not a big fan of GTA4. The violence and misogyny are just too much for me. But if you're going to go for that kind of game, get the original and keep walking past blatant rip-offs like Saints Row 2.
Maybe Buy: Brain Age 2
Once you're done melting your brain with all that violence and mayhem, you might consider taking a mental break with Brain Age 2. The Nintendo DS game costs just around $20 and really does help improve mental acuity. I played the original for a month straight and became much smarter—I swear. Then I stopped and reverted to my dopey old self.
Do Buy: Spore
Enough, already with the moaning about DRM. Spore is a game for your entire family, and it's so vast that you'll all be playing for hours and hours and hours. Plus, it runs nicely on pretty much any new PC—no killer graphics capabilities required (though, they can improve the graphics quite a bit if you have them).
Get on Lance Ulanoff's RSS Feed.
by Lance Ulanoff
Buzz up!on Yahoo!
Powerful financial waves are buffeting the USS Economy in extraordinary and dangerous ways, making it clear that this will be a holiday buying season unlike any other. But if you think recession (some say depression) concerns are going to keep me from producing my fourth annual guidance report on what to buy, consider, and just plain avoid, you're sorely mistaken, my friends. Sure, the financial climate has me feeling crankier, but that only makes it easier to dismiss the bad and pointless products of the past 11 months. So let's get started with my latest attempt to help save you from yourself this holiday season.
Home Entertainment
Don't Buy: Expensive Blu-ray Player
Sorry folks, but I still think $250 is way too much to pay for a DVD player. I'll reconsider my position only if manufacturers come to their senses over the next two months and start selling Blu-ray players for $149 or less.
Maybe Buy: Toshiba XDE DVD Player
I know standard DVDs are yesterday's technology. But if you have a vast library of DVDs and your current player is seizing up, this upscaling, image-crisping DVD player can be had for a lot less than competing Blu-ray devices. And it'll make your current and vast libraries of DVDs look pretty darn good on your new HDTV.
Do Buy: Roku Netflix Player
This $99 set-top box will open up your living room to a whole library of video content and is way cheaper than a new Blu-ray player. The current Netflix on-demand selections are, admittedly, limited, but there are many great movies, with a decent number of newish ones in the mix. Plus, I expect that Netflix will eventually open up first-run films to this service.
Caveat: If you already own an Xbox 360, you'll be able to access the very same library of Netflix movies on demand. (One can only hope Sony will get around to adding Netflix functionality to the PS3.) In that case, maybe you just give yourself the gift of a Netflix account.
Video Cameras
Don't Buy: HD Camcorders
I've come to the difficult realization that most people are not videographers, and HD camcorders, with all their bells and whistles (and $500-plus price tags), are overkill for average consumers.
Maybe Buy: Digital Camera with HD Video-Capture Abilities
My wife never shot video until she got a digital camera with built-in video-capture abilities. Obviously, the transition to shooting in HD, when it's simply part of the camera you already own, is perfectly natural. The Samsung NV24HD, for example, is a decent 10-megapixel camera with built-in HD capabilities. Sure, it's only 720p, but for most people, that's probably high-def enough.
Do Buy: A YouTube Camcorder (aka Pocket Camcorder)
Digital cameras that shoot video are great, but to get that video off the camera, you'll likely have to remove the card and put it in your PC. Then you have to know what to do next. Or you can buy a Creative Vado, Flip Mino, or Kodak Zi6. For anywhere from $99 to $179, you can get an all-in-one device that lets you capture standard and high-def video and pretty much everything in between, depending on the model. Plus, you can effortlessly transfer the video from the device to a PC and then online to share with friends. I, for one, carry Creative's Vado. It's thinner and smaller than an iPod classic and, like most of these pocket video cams, comes equipped with a built-in USB dongle and software that can automatically upload your video to YouTube. No muss, no fuss, and you're capturing moments and sharing them with friends, family, and, if you choose, the world.
Cell Phones
Don't Buy: Palm Centro
Look, I loved my Palm Treo 700p when I got it in 2007, and I know Palm has sold a million Centros (basically, a stripped-down, value-priced Treo), but we have no idea where the Palm platform is going. Will there be an open-source version next year? Maybe, but I wouldn't hold my breath. Do you really want to be married to what could very well be a dying platform?
Maybe Buy: T-Mobile G1
If you're desperate to own the very first Google Android phone, then by all means buy the T-Mobile G1. However, the reality is that the phone is missing features like enterprise e-mail, a regular headset jack, and multimedia capabilities. Plus, it's a version one phone on a version one platform. Personally, I'd wait for version two.
Do Buy: Apple iPhone 3G or RIM BlackBerry Bold
For people without my virtual typing handicap, the Apple iPhone 3G is the ultimate, do-anything pocket device. On the other hand, if you have to have a keyboard, go with the RIM BlackBerry Bold 9000.— Next: Gadgets and PCs
Don't Buy: Do-Nothing Gadgets
I hate desktop tchotchkes that look pretty or funny but have no discernible utility. This includes the WowWee Chatterbots—desktop toys that comment on your computer-based actions—and all Hasbro I-Dogs, I-Penguins, I-Ducks (wait, they haven't released a duck version—yet), which add piddling speakers to your MP3 players and dance. Useless.
Maybe Buy: Ugobe Pleo
I have a Pleo in my office, and it is an engaging entertainment robot that's nice to hold and fun to play with. On the other hand, it's still too slow-moving to really keep my interest. And recent corporate shuffles at Ugobe—including an office move from California to Idaho (the new hub of technology!)—have me wondering about the long-term viability of the business. That said, if the company could lower the price by about $150, I might consider making it a "Do Buy."
Maybe Buy: A WowWee Robot
I've spent time with most of them, including the surprisingly powerful and somewhat difficult-to-use Rovio Telepresence robot. If I had to pick, though, I might go for the adorable Femisapien—at least it kisses you. These bots can move to the "Do Buy" column if they get a little more powerful, without turning into hobbyist toys.
Do Buy: An E-Book Reader
I'm encouraged that the new Sony Reader Digital Book supports gestures, but they forgot to add wireless content download. Meanwhile, the Amazon Kindle's update, if leaked photos are to be believed, looks as if it's moving in the wrong direction. Even so, I love the technology, and if you're a serious reader, then there is no better solution for travel.
Mini PCs
Don't Buy: A UMPC
With their tiny keyboards and unwieldy designs, these odd-duckling systems, like the Wibrain B1H and Samsung Q1 Ultra, will satisfy no one. It's a category that, with the exception of vertical markets, is already in its death throes.
Maybe Buy: A Netbook
I know, you're saying to yourself, "Aren't UMPCs and netbooks the same thing?" Yes and no. There are some UMPC refugees in the new and rapidly growing netbook market, but unlike the Wibrain B1H, innovative products like the ASUS EeePC 4G and the Dell Inspiron Mini 9 look and work like traditional laptops. The big difference is cost. Understand, though, that netbooks have their limits. A $350 laptop is not going to do the same kind of technical calisthenics as one that costs $1,500 or $3,500.
Do Buy: A Laptop
I can tell you that the next PC I add to my home will be a laptop. They're small, light, portable, less power-hungry, and, thanks to myriad innovations, just as powerful as most mid-range and workstation desktops.
Desktop PCs
Don't Buy: A Big Old Box
Large, old-school desktop PCs are a blight in almost any room of the house. The Jurassic-age BTX-size case designs are relics of the 20th century that need to die. If you do want a somewhat traditional system, take a look at some of the mini boxes offered by HP (its Slimline series) and at the Apple Mac mini.
Maybe Buy: A PC with an Unusual Case Design
Dell Studio Hybrid is not only pretty to look at, but it's the rare GreenTech Approved (read: eco-friendly) desktop PC on the market. Sure, the power is borderline (just 2GB of RAM and only a 250GB hard drive), but it's enough for most people, and these systems slip neatly into any room in the home.
Do Buy: An All-in-One PC
If you'd rather ignore my advice about choosing a laptop as your next home desktop PC, then by all means consider an all-in-one PC. Sony has some gorgeous ones, like the Sony VAIO VGC-RT150Y, which can double as wall-mounted HDTVs. HP's second TouchSmart, in particular, is a wonder of design, elegance, and innovation. It seems like the perfect kitchen PC.— Next: Software and Games
Software
Don't Buy: Expensive Software
The age of shrink-wrapped $200 software is over. So much of what you want to do with your PC can be accomplished with downloadable and sometimes free software. Take a look at our Best Free Software story if you don't believe me.
Maybe Buy: Expensive Software
Yeah, I just contradicted myself. So what? The fact is, some people will always need the raw horsepower found only in expensive, client-based apps. I count Adobe CS4 (which includes Photoshop, InDesign, Premiere, and much more) among these.
Do Buy: Security Software
Get it for yourself. Give it to your friends. Viruses may be dead, but malware threats are alive, well, and proliferating as you read this. It's a $59 to $80 investment that you'll never regret.
Games
Don't Buy: Grand Theft Auto IV Knockoffs
I'm not a big fan of GTA4. The violence and misogyny are just too much for me. But if you're going to go for that kind of game, get the original and keep walking past blatant rip-offs like Saints Row 2.
Maybe Buy: Brain Age 2
Once you're done melting your brain with all that violence and mayhem, you might consider taking a mental break with Brain Age 2. The Nintendo DS game costs just around $20 and really does help improve mental acuity. I played the original for a month straight and became much smarter—I swear. Then I stopped and reverted to my dopey old self.
Do Buy: Spore
Enough, already with the moaning about DRM. Spore is a game for your entire family, and it's so vast that you'll all be playing for hours and hours and hours. Plus, it runs nicely on pretty much any new PC—no killer graphics capabilities required (though, they can improve the graphics quite a bit if you have them).
Get on Lance Ulanoff's RSS Feed.
标准C++中的Iterator(迭代器)
标准C++中的Iterator(迭代器)简介(一)2007-12-23 22:42一、概述
Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。
由于Iterator模式的以上特性:与聚合对象耦合,在一定程度上限制了它的广泛运用,一般仅用于底层聚合支持类,如STL的list、vector、stack等容器类及ostream_iterator等扩展iterator。
根据STL中的分类,iterator包括:
Input Iterator:只能单步向前迭代元素,不允许修改由该类迭代器引用的元素。
Output Iterator:该类迭代器和Input Iterator极其相似,也只能单步向前迭代元素,不同的是该类迭代器对元素只有写的权力。
Forward Iterator:该类迭代器可以在一个正确的区间中进行读写操作,它拥有Input Iterator的所有特性,和Output Iterator的部分特性,以及单步向前迭代元素的能力。
Bidirectional Iterator:该类迭代器是在Forward Iterator的基础上提供了单步向后迭代元素的能力。
Random Access Iterator:该类迭代器能完成上面所有迭代器的工作,它自己独有的特性就是可以像指针那样进行算术计算,而不是仅仅只有单步向前或向后迭代。
这五类迭代器的从属关系,如下图所示,其中箭头A→B表示,A是B的强化类型,这也说明了如果一个算法要求B,那么A也可以应用于其中。
图1、五种迭代器之间的关系
vector 和deque提供的是RandomAccessIterator,list提供的是BidirectionalIterator,set和map提供的 iterators是 ForwardIterator,关于STL中iterator的更多信息,请阅读参考1或2。
二、结构
Iterator模式的结构如下图所示:
图2、Iterator模式类图示意
三、应用
Iterator模式有三个重要的作用:
1)它支持以不同的方式遍历一个聚合 复杂的聚合可用多种方式进行遍历,如二叉树的遍历,可以采用前序、中序或后序遍历。迭代器模式使得改变遍历算法变得很容易: 仅需用一个不同的迭代器的实例代替原先的实例即可,你也可以自己定义迭代器的子类以支持新的遍历,或者可以在遍历中增加一些逻辑,如有条件的遍历等。
2)迭代器简化了聚合的接口 有了迭代器的遍历接口,聚合本身就不再需要类似的遍历接口了,这样就简化了聚合的接口。
3)在同一个聚合上可以有多个遍历 每个迭代器保持它自己的遍历状态,因此你可以同时进行多个遍历。
4)此外,Iterator模式可以为遍历不同的聚合结构(需拥有相同的基类)提供一个统一的接口,即支持多态迭代。
简 单说来,迭代器模式也是Delegate原则的一个应用,它将对集合进行遍历的功能封装成独立的Iterator,不但简化了集合的接口,也使得修改、增 加遍历方式变得简单。从这一点讲,该模式与Bridge模式、Strategy模式有一定的相似性,但Iterator模式所讨论的问题与集合密切相关, 造成在Iterator在实现上具有一定的特殊性,具体将在示例部分进行讨论。
四、优缺点
正如前面所说,与集合密切相关,限制了 Iterator模式的广泛使用,就个人而言,我不大认同将Iterator作为模式提出的观点,但它又确实符合模式“经常出现的特定问题的解决方案”的 特质,以至于我又不得不承认它是个模式。在一般的底层集合支持类中,我们往往不愿“避轻就重”将集合设计成集合 + Iterator 的形式,而是将遍历的功能直接交由集合完成,以免犯了“过度设计”的诟病,但是,如果我们的集合类确实需要支持多种遍历方式(仅此一点仍不一定需要考虑 Iterator模式,直接交由集合完成往往更方便),或者,为了与系统提供或使用的其它机制,如STL算法,保持一致时,Iterator模式才值得考 虑。
五、举例
可以考虑使用两种方式来实现Iterator模式:内嵌类或者友元类。通常迭代类需访问集合类中的内部数据结构,为此,可在集合类中设置迭代类为friend class,但这不利于添加新的迭代类,因为需要修改集合类,添加friend class语句。也可以在抽象迭代类中定义protected型的存取集合类内部数据的函数,这样迭代子类就可以访问集合类数据了,这种方式比较容易添加新的迭代方式,但这种方式也存在明显的缺点:这些函数只能用于特定聚合类,并且,不可避免造成代码更加复杂。
STL的list::iterator、deque::iterator、rbtree::iterator等采用的都是外部Iterator类的形式,虽然STL的集合类的iterator分散在各个集合类中,但由于各Iterator类具有相同的基类,保持了相同的对外的接口(包括一些traits及tags等,感兴趣者请认真阅读参考1、2),从而使得它们看起来仍然像一个整体,同时也使得应用algorithm成为可能。我们如果要扩展STL的iterator,也需要注意这一点,否则,我们扩展的iterator将可能无法应用于各algorithm。
以下是一个遍历二叉树的Iterator的例子,为了方便支持多种遍历方式,并便于遍历方式的扩展,其中还使用了Strategy模式(见笔记21):
(注:1、虽然下面这个示例是本系列所有示例中花费我时间最多的一个,但我不得不承认,它非常不完善,感兴趣的朋友,可以考虑参考下面的参考材料将其补充完善,或提出宝贵改进意见。2、 我本想考虑将其封装成与STL风格一致的形式,使得我们遍历二叉树必须通过Iterator来进行,但由于二叉树在结构上较线性存储结构复杂,使访问必须 通过Iterator来进行,但这不可避免使得BinaryTree的访问变得异常麻烦,在具体应用中还需要认真考虑。3、以下只提供了Inorder<中序>遍历iterator的实现。)
Iterator(迭代器)模式又称Cursor(游标)模式,用于提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。或者这样说可能更容易理解:Iterator模式是运用于聚合对象的一种模式,通过运用该模式,使得我们可以在不知道对象内部表示的情况下,按照一定顺序(由iterator提供的方法)访问聚合对象中的各个元素。
由于Iterator模式的以上特性:与聚合对象耦合,在一定程度上限制了它的广泛运用,一般仅用于底层聚合支持类,如STL的list、vector、stack等容器类及ostream_iterator等扩展iterator。
根据STL中的分类,iterator包括:
Input Iterator:只能单步向前迭代元素,不允许修改由该类迭代器引用的元素。
Output Iterator:该类迭代器和Input Iterator极其相似,也只能单步向前迭代元素,不同的是该类迭代器对元素只有写的权力。
Forward Iterator:该类迭代器可以在一个正确的区间中进行读写操作,它拥有Input Iterator的所有特性,和Output Iterator的部分特性,以及单步向前迭代元素的能力。
Bidirectional Iterator:该类迭代器是在Forward Iterator的基础上提供了单步向后迭代元素的能力。
Random Access Iterator:该类迭代器能完成上面所有迭代器的工作,它自己独有的特性就是可以像指针那样进行算术计算,而不是仅仅只有单步向前或向后迭代。
这五类迭代器的从属关系,如下图所示,其中箭头A→B表示,A是B的强化类型,这也说明了如果一个算法要求B,那么A也可以应用于其中。
图1、五种迭代器之间的关系
vector 和deque提供的是RandomAccessIterator,list提供的是BidirectionalIterator,set和map提供的 iterators是 ForwardIterator,关于STL中iterator的更多信息,请阅读参考1或2。
二、结构
Iterator模式的结构如下图所示:
图2、Iterator模式类图示意
三、应用
Iterator模式有三个重要的作用:
1)它支持以不同的方式遍历一个聚合 复杂的聚合可用多种方式进行遍历,如二叉树的遍历,可以采用前序、中序或后序遍历。迭代器模式使得改变遍历算法变得很容易: 仅需用一个不同的迭代器的实例代替原先的实例即可,你也可以自己定义迭代器的子类以支持新的遍历,或者可以在遍历中增加一些逻辑,如有条件的遍历等。
2)迭代器简化了聚合的接口 有了迭代器的遍历接口,聚合本身就不再需要类似的遍历接口了,这样就简化了聚合的接口。
3)在同一个聚合上可以有多个遍历 每个迭代器保持它自己的遍历状态,因此你可以同时进行多个遍历。
4)此外,Iterator模式可以为遍历不同的聚合结构(需拥有相同的基类)提供一个统一的接口,即支持多态迭代。
简 单说来,迭代器模式也是Delegate原则的一个应用,它将对集合进行遍历的功能封装成独立的Iterator,不但简化了集合的接口,也使得修改、增 加遍历方式变得简单。从这一点讲,该模式与Bridge模式、Strategy模式有一定的相似性,但Iterator模式所讨论的问题与集合密切相关, 造成在Iterator在实现上具有一定的特殊性,具体将在示例部分进行讨论。
四、优缺点
正如前面所说,与集合密切相关,限制了 Iterator模式的广泛使用,就个人而言,我不大认同将Iterator作为模式提出的观点,但它又确实符合模式“经常出现的特定问题的解决方案”的 特质,以至于我又不得不承认它是个模式。在一般的底层集合支持类中,我们往往不愿“避轻就重”将集合设计成集合 + Iterator 的形式,而是将遍历的功能直接交由集合完成,以免犯了“过度设计”的诟病,但是,如果我们的集合类确实需要支持多种遍历方式(仅此一点仍不一定需要考虑 Iterator模式,直接交由集合完成往往更方便),或者,为了与系统提供或使用的其它机制,如STL算法,保持一致时,Iterator模式才值得考 虑。
五、举例
可以考虑使用两种方式来实现Iterator模式:内嵌类或者友元类。通常迭代类需访问集合类中的内部数据结构,为此,可在集合类中设置迭代类为friend class,但这不利于添加新的迭代类,因为需要修改集合类,添加friend class语句。也可以在抽象迭代类中定义protected型的存取集合类内部数据的函数,这样迭代子类就可以访问集合类数据了,这种方式比较容易添加新的迭代方式,但这种方式也存在明显的缺点:这些函数只能用于特定聚合类,并且,不可避免造成代码更加复杂。
STL的list::iterator、deque::iterator、rbtree::iterator等采用的都是外部Iterator类的形式,虽然STL的集合类的iterator分散在各个集合类中,但由于各Iterator类具有相同的基类,保持了相同的对外的接口(包括一些traits及tags等,感兴趣者请认真阅读参考1、2),从而使得它们看起来仍然像一个整体,同时也使得应用algorithm成为可能。我们如果要扩展STL的iterator,也需要注意这一点,否则,我们扩展的iterator将可能无法应用于各algorithm。
以下是一个遍历二叉树的Iterator的例子,为了方便支持多种遍历方式,并便于遍历方式的扩展,其中还使用了Strategy模式(见笔记21):
(注:1、虽然下面这个示例是本系列所有示例中花费我时间最多的一个,但我不得不承认,它非常不完善,感兴趣的朋友,可以考虑参考下面的参考材料将其补充完善,或提出宝贵改进意见。2、 我本想考虑将其封装成与STL风格一致的形式,使得我们遍历二叉树必须通过Iterator来进行,但由于二叉树在结构上较线性存储结构复杂,使访问必须 通过Iterator来进行,但这不可避免使得BinaryTree的访问变得异常麻烦,在具体应用中还需要认真考虑。3、以下只提供了Inorder<中序>遍历iterator的实现。)
2008年11月28日星期五
The 46 Free Desktop Software Applications
The 46 Free Desktop Software Applications, Webapps, and Projects We're Most Thankful For
Firefox (see also: The Power User's Guide to Firefox 3)
VLC Media Player (see also: Master Your Digital Media with VLC)
Ubuntu (see also: Hardy Heron Makes Linux Worth Another Look)
Open Office (see also: A First Look at OpenOffice.org 3.0)
Pidgin (see also: Ten Must-Have Plug-ins to Power Up Pidgin)
Launchy (see also: Take Launchy beyond application launching)
Digsby (see also: Digsby Improves Performance, Supports LinkedIn)
Gmail (see also: Our full Gmail coverage)
Adium (see also: Adium Chat Improves Menu Bar Item, Corrects Your IM Grammar )
CCleaner (see also: CCleaner 2.0 Decrapifies Your PC)
Picasa (see also: Organize your digital photos with Picasa)
AutoHotKey (see also: Turn Any Action into a Keyboard Shortcut)
Google
Quicksilver (see also: A beginner's guide to Quicksilver)
GIMP
Foobar 2000 (see also: Roll your own killer audio player with foobar2000)
Thunderbird (see also: Eight killer Thunderbird extensions)
7-Zip (see also: Top 10 Windows Downloads, #10: 7-Zip (file archive manager) )
DropBox (see also: Dropbox Syncs and Backs Up Files Between Computers Instantaneously)
uTorrent (see also: Our complete uTorrent coverage )
Winamp (see also: Our complete Winamp coverage)
Google Apps
AVG Antivirus (see also: AVG Free Anti-Virus 2008 Released, Much Improved)
Evernote (see also: Expand Your Brain with Evernote)
IrfanView (see also: Download of the Day: IrfanView (Windows) )
Opera (see also: Opera Updates to Version 9.6, Gets Faster, Adds Features)
Chrome (see also: The Power User's Guide to Google Chrome)
Google Calendar (see also: Black-belt scheduling with Google Calendar)
HandBrake (see also: HandBrake Media Converter Gets Even Better)
Skype (see also: Our complete Skype coverage)
Linux (see also: Our complete Linux coverage)
Paint.NET (see also: Top 10 Windows Downloads, #3: Paint.NET )
Ad-Aware (see also: Cleanse thy PC with Ad-Aware)
Avast Antivirus (see also: Download of the Day: Avast anti-virus)
Google Docs (see also: Our complete Google Docs coverage)
LogMeIn (see also: Use LogMeIn for remote tech support)
Transmission (see also: Manage Your BitTorrent Downloads with Transmission)
TrueCrypt (see also: Secure your data with TrueCrypt)
Amarok (see also: An Early Look at Amarok 2)
FileZilla (see also: FTP File Transfer Across Platforms with Filezilla 3.0)
Notepad++ (see also: Top 10 Windows Downloads, #6: Notepad++)
PortableApps.com (see also: Download of the Day: PortableApps Suite 1.0 (Windows))
Rocket Dock (see also: Download of the Day: RocketDock (Windows))
Spybot Search & Destroy (see also: Spybot Search and Destroy crushes evil)
UltraVNC (see also: Tech support with UltraVNC SingleClick)
VirtualBox (see also: VirtualBox 2.0 Adds 64-bit Support, Updated Interface)
A note on the numbers: Mozilla Firefox took first place in this exercise in gratitude with an insanely commanding lead; in fact, Firefox got more than three times the amount of votes the second-place mention (VLC) did. Here's a chart of the top eight on the list so you can see how the votes were spread out relative to one another.
Firefox (see also: The Power User's Guide to Firefox 3)
VLC Media Player (see also: Master Your Digital Media with VLC)
Ubuntu (see also: Hardy Heron Makes Linux Worth Another Look)
Open Office (see also: A First Look at OpenOffice.org 3.0)
Pidgin (see also: Ten Must-Have Plug-ins to Power Up Pidgin)
Launchy (see also: Take Launchy beyond application launching)
Digsby (see also: Digsby Improves Performance, Supports LinkedIn)
Gmail (see also: Our full Gmail coverage)
Adium (see also: Adium Chat Improves Menu Bar Item, Corrects Your IM Grammar )
CCleaner (see also: CCleaner 2.0 Decrapifies Your PC)
Picasa (see also: Organize your digital photos with Picasa)
AutoHotKey (see also: Turn Any Action into a Keyboard Shortcut)
Quicksilver (see also: A beginner's guide to Quicksilver)
GIMP
Foobar 2000 (see also: Roll your own killer audio player with foobar2000)
Thunderbird (see also: Eight killer Thunderbird extensions)
7-Zip (see also: Top 10 Windows Downloads, #10: 7-Zip (file archive manager) )
DropBox (see also: Dropbox Syncs and Backs Up Files Between Computers Instantaneously)
uTorrent (see also: Our complete uTorrent coverage )
Winamp (see also: Our complete Winamp coverage)
Google Apps
AVG Antivirus (see also: AVG Free Anti-Virus 2008 Released, Much Improved)
Evernote (see also: Expand Your Brain with Evernote)
IrfanView (see also: Download of the Day: IrfanView (Windows) )
Opera (see also: Opera Updates to Version 9.6, Gets Faster, Adds Features)
Chrome (see also: The Power User's Guide to Google Chrome)
Google Calendar (see also: Black-belt scheduling with Google Calendar)
HandBrake (see also: HandBrake Media Converter Gets Even Better)
Skype (see also: Our complete Skype coverage)
Linux (see also: Our complete Linux coverage)
Paint.NET (see also: Top 10 Windows Downloads, #3: Paint.NET )
Ad-Aware (see also: Cleanse thy PC with Ad-Aware)
Avast Antivirus (see also: Download of the Day: Avast anti-virus)
Google Docs (see also: Our complete Google Docs coverage)
LogMeIn (see also: Use LogMeIn for remote tech support)
Transmission (see also: Manage Your BitTorrent Downloads with Transmission)
TrueCrypt (see also: Secure your data with TrueCrypt)
Amarok (see also: An Early Look at Amarok 2)
FileZilla (see also: FTP File Transfer Across Platforms with Filezilla 3.0)
Notepad++ (see also: Top 10 Windows Downloads, #6: Notepad++)
PortableApps.com (see also: Download of the Day: PortableApps Suite 1.0 (Windows))
Rocket Dock (see also: Download of the Day: RocketDock (Windows))
Spybot Search & Destroy (see also: Spybot Search and Destroy crushes evil)
UltraVNC (see also: Tech support with UltraVNC SingleClick)
VirtualBox (see also: VirtualBox 2.0 Adds 64-bit Support, Updated Interface)
A note on the numbers: Mozilla Firefox took first place in this exercise in gratitude with an insanely commanding lead; in fact, Firefox got more than three times the amount of votes the second-place mention (VLC) did. Here's a chart of the top eight on the list so you can see how the votes were spread out relative to one another.
What Microsoft Got Right: The First 30 Years
Microsoft is one of the most successful companies in modern history. It revolutionized the way companies use IT to do business and helped elevate the importance of IT in terms of corporate strategy.
Since its inception 33 years ago, Microsoft has made many mistakes both large and small. But it also got a few big things very, very right. As the post-Gates era takes shape, we look back on five things Microsoft got right and what they teach us.
Software Is King
Microsoft was among the first companies to see software as the business, not just an add-on sale to hardware. It acted on that insight in a big way.
Before the PC, all software tended to be custom, written for and tied to a specific hardware platform. For example, IBM software ran only on IBM machines and Hewlett-Packard (HP) software on HP machines. Bill Gates and Microsoft untethered software from hardware, instead creating software that could run on almost any brand of PC. This simple idea dramatically expanded the market for Microsoft software, enabling it to drive prices down by spreading development cost across millions of potential customers (compared to only thousands for traditional hardware-specific programs). It was a risky idea because it put Microsoft at odds with hardware giants like IBM. But Microsoft bet big and won, helping spark a Big Bang of inexpensive, prepackaged, off-the-shelf software and the modern software industry.
Lesson: Question the rules. Change the game.
Outsource Your Sales Force
How did Microsoft grow so big so fast? In large part it was the company’s partner strategy. Today, more than 90% of Microsoft products are sold by somebody else. OEM partners such as HP sell most copies of Windows and large reseller partners such as CompuCom sell most copies of Microsoft’s enterprise software, including Exchange, SQL Server, and SharePoint. In fact, you’d have a difficult time trying to call Microsoft to order a product directly.
Bill Gates knew that a direct sales force could never scale quickly enough to match his ambitions. Instead, he built an army of partner companies and gave them the right to sell Microsoft software. Because Microsoft didn’t field its own direct sales force, these partners came to trust that Microsoft wouldn’t encroach upon their businesses and steal away their best customers. This partner community, from small mom-and-pop computer shops to the world’s largest systems integrators, enabled the company to achieve unprecedented sales volumes with astounding speed without having to spend huge sums to build a direct sales force and consulting practice.
Lesson: Create win-win partner situations to grow fast.
Technology for the Masses
Microsoft has consistently figured out how to make powerful technologies once exclusive to big business—business intelligence, intranets, systems management—accessible to smaller IT shops at a fraction of the cost. In the process, Microsoft has created and captured new customers en masse.
Microsoft’s formula? Build support for its server technologies into the Windows operating system and market low-cost server applications that leverage that support. In many ways, Microsoft is the Home Depot of IT software: it offers sophisticated server technologies IT departments can customize and deploy themselves at a price point that’s hard to resist.
Lesson: Don’t neglect your customers’ most important need: a better price.
Developers, Developers, Developers!
More than any other software company, Microsoft courts developers, lavishing them with powerful tools, free training, and low-cost support. Visual Basic enabled a whole generation of developers to create custom line-of-business applications on top of Office. Now Visual Studio is the tool of choice for serious corporate developers. Microsoft has been rewarded for this generosity by a torrent of third-party applications and custom solutions that have made Windows indispensable on the corporate desktop. Robust developer support for products such as the Office suite and SQL Server has also helped Microsoft products to flourish where competitors once had the field to themselves.
Lesson: Make it easy for partners to customize your product.
The Long View
Microsoft has always taken the long view. It routinely invests billions of dollars in expansive ventures such as Xbox, MSN, and Dynamics with an eye to far-off opportunities and threats. Once engaged, it very rarely retreats. The company will sustain breathtaking losses to gain a foothold in a market (think of Xbox) and endure hits to its image to change a business model that isn’t working (think of MSN). Microsoft continually looks inward and studies how it can improve itself. But despite some long false starts and outright failures (LAN Manager, Windows Mobile, and WebTV), Microsoft has assembled the industry’s largest portfolio of enterprise and consumer software—the least of which generates revenue in the hundreds of millions of dollars.
Since its inception 33 years ago, Microsoft has made many mistakes both large and small. But it also got a few big things very, very right. As the post-Gates era takes shape, we look back on five things Microsoft got right and what they teach us.
Software Is King
Microsoft was among the first companies to see software as the business, not just an add-on sale to hardware. It acted on that insight in a big way.
Before the PC, all software tended to be custom, written for and tied to a specific hardware platform. For example, IBM software ran only on IBM machines and Hewlett-Packard (HP) software on HP machines. Bill Gates and Microsoft untethered software from hardware, instead creating software that could run on almost any brand of PC. This simple idea dramatically expanded the market for Microsoft software, enabling it to drive prices down by spreading development cost across millions of potential customers (compared to only thousands for traditional hardware-specific programs). It was a risky idea because it put Microsoft at odds with hardware giants like IBM. But Microsoft bet big and won, helping spark a Big Bang of inexpensive, prepackaged, off-the-shelf software and the modern software industry.
Lesson: Question the rules. Change the game.
Outsource Your Sales Force
How did Microsoft grow so big so fast? In large part it was the company’s partner strategy. Today, more than 90% of Microsoft products are sold by somebody else. OEM partners such as HP sell most copies of Windows and large reseller partners such as CompuCom sell most copies of Microsoft’s enterprise software, including Exchange, SQL Server, and SharePoint. In fact, you’d have a difficult time trying to call Microsoft to order a product directly.
Bill Gates knew that a direct sales force could never scale quickly enough to match his ambitions. Instead, he built an army of partner companies and gave them the right to sell Microsoft software. Because Microsoft didn’t field its own direct sales force, these partners came to trust that Microsoft wouldn’t encroach upon their businesses and steal away their best customers. This partner community, from small mom-and-pop computer shops to the world’s largest systems integrators, enabled the company to achieve unprecedented sales volumes with astounding speed without having to spend huge sums to build a direct sales force and consulting practice.
Lesson: Create win-win partner situations to grow fast.
Technology for the Masses
Microsoft has consistently figured out how to make powerful technologies once exclusive to big business—business intelligence, intranets, systems management—accessible to smaller IT shops at a fraction of the cost. In the process, Microsoft has created and captured new customers en masse.
Microsoft’s formula? Build support for its server technologies into the Windows operating system and market low-cost server applications that leverage that support. In many ways, Microsoft is the Home Depot of IT software: it offers sophisticated server technologies IT departments can customize and deploy themselves at a price point that’s hard to resist.
Lesson: Don’t neglect your customers’ most important need: a better price.
Developers, Developers, Developers!
More than any other software company, Microsoft courts developers, lavishing them with powerful tools, free training, and low-cost support. Visual Basic enabled a whole generation of developers to create custom line-of-business applications on top of Office. Now Visual Studio is the tool of choice for serious corporate developers. Microsoft has been rewarded for this generosity by a torrent of third-party applications and custom solutions that have made Windows indispensable on the corporate desktop. Robust developer support for products such as the Office suite and SQL Server has also helped Microsoft products to flourish where competitors once had the field to themselves.
Lesson: Make it easy for partners to customize your product.
The Long View
Microsoft has always taken the long view. It routinely invests billions of dollars in expansive ventures such as Xbox, MSN, and Dynamics with an eye to far-off opportunities and threats. Once engaged, it very rarely retreats. The company will sustain breathtaking losses to gain a foothold in a market (think of Xbox) and endure hits to its image to change a business model that isn’t working (think of MSN). Microsoft continually looks inward and studies how it can improve itself. But despite some long false starts and outright failures (LAN Manager, Windows Mobile, and WebTV), Microsoft has assembled the industry’s largest portfolio of enterprise and consumer software—the least of which generates revenue in the hundreds of millions of dollars.
2008年11月27日星期四
Creative Commons
Creative Commons (CC) is a non-profit organization devoted to expanding the range of creative works available for others to build upon legally and to share.[1] The organization has released several copyright licenses known as Creative Commons licenses. These licenses allow creators to communicate which rights they reserve, and which rights they waive for the benefit of other creators.
David Berry and Giles Moss have credited Creative Commons with generating interest in the issue of intellectual property and contributing to the re-thinking of the role of the “commons” in the “information age”. Beyond that Creative Commons has provided "institutional, practical and legal support for individuals and groups wishing to experiment and communicate with culture more freely".[2]
Contents [hide]
1 Aim
2 Creative Commons governance
2.1 Board
2.2 Technical Advisory Board
2.3 Audit Committee
3 Types of Creative Commons Licenses
4 Legal test case
5 Creative Commons International
6 Projects using Creative Commons licenses
7 Criticism
8 Tools for discovering CC-licensed content
8.1 Audio and music
8.2 Photos and images
9 See also
10 Footnotes
11 References
12 External links
[edit] Aim
Creative Commons Japan Seminar, Tokyo 2007The Creative Commons licenses enable copyright holders to grant some or all of their rights to the public while retaining others through a variety of licensing and contract schemes including dedication to the public domain or open content licensing terms. The intention is to avoid the problems current copyright laws create for the sharing of information.
The project provides several free licenses that copyright owners can use when releasing their works on the Web. It also provides RDF/XML metadata that describes the license and the work, making it easier to automatically process and locate licensed works. Creative Commons also provides a "Founders' Copyright"[3] contract, intended to re-create the effects of the original U.S. Copyright created by the founders of the U.S. Constitution.
All these efforts, and more, are done to counter the effects of what Creative Commons considers to be a dominant and increasingly restrictive permission culture. In the words of Lawrence Lessig, founder of Creative Commons and former Chairman of the Board, it is "a culture in which creators get to create only with the permission of the powerful, or of creators from the past".[4] Lessig maintains that modern culture is dominated by traditional content distributors in order to maintain and strengthen their monopolies on cultural products such as popular music and popular cinema, and that Creative Commons can provide alternatives to these restrictions.[5][6]
[edit] Creative Commons governance
The current CEO of Creative Commons is Joi Ito. Mike Linksvayer is vice president, John Wilbanks is Executive Director of Science Commons, and Ahrash Bissell is the Executive Director of ccLearn.
[edit] Board
The current Creative Commons Board includes: Hal Abelson, James Boyle (Chair), Michael W. Carroll, Davis Guggenheim, Joi Ito, Lawrence Lessig, Laurie Racine, Eric Saltzman, Molly Shaffer Van Houweling, Jimmy Wales, and Esther Wojcicki.[7]
[edit] Technical Advisory Board
The Technical Advisory Board includes five members. These are: Hal Abelson, Ben Adida, Barbara Fox, Don McGovern and Eric Miller. Hal Abelson also serves on the Creative Commons Board.[7]
[edit] Audit Committee
Creative Commons also has an Audit Committee, with two members. These are: Molly Shaffer Van Houweling and Lawrence Lessig. Both serve on the Creative Commons Board.[7]
[edit] Types of Creative Commons Licenses
Main article: Creative Commons licenses
The following describes each of the six main licenses offered when you choose to publish your work with creative commons license.
Attribution Non-commercial No Derivatives (by-nc-nd) This license is the most restrictive of the six main licenses, allowing redistribution. This license is often called the “free advertising” license because it allows others to download your works and share them with others as long as they mention you and link back to you, but they can’t change them in any way or use them commercially.
Attribution Non-commercial Share Alike (by-nc-sa) This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms. Others can download and redistribute your work just like the by-nc-nd license, but they can also translate, make remixes, and produce new stories based on your work. All new work based on yours will carry the same license, so any derivatives will also be non-commercial in nature.
Attribution Non-commercial (by-nc) This license lets others remix, tweak, and build upon your work non-commercially, and although their new works must also acknowledge you and be non-commercial, they don’t have to license their derivative works on the same terms.
Attribution No Derivatives (by-nd) This license allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to you.
Attribution Share Alike (by-sa) This license lets others remix, tweak, and build upon your work even for commercial reasons, as long as they credit you and license their new creations under the identical terms. This license is often compared to open source software licenses. All new works based on yours will carry the same license, so any derivatives will also allow commercial use.
Attribution (by) This license lets others distribute, remix, tweak, and build upon your work, even commercially, as long as they credit you for the original creation. This is the most accommodating of licenses offered, in terms of what others can do with your works licensed under Attribution.
[edit] Legal test case
A Creative Commons license was first tested in court in early 2006, when podcaster Adam Curry sued a Dutch tabloid who published photos without permission from his Flickr page. The photos were licensed under the Creative Commons Non-Commercial license.
While the verdict was in favour of Curry, the tabloid avoided having to pay restitution to him as long as they did not repeat the offense. An analysis of the decision states, "The Dutch Court’s decision is especially noteworthy because it confirms that the conditions of a Creative Commons license automatically apply to the content licensed under it, and bind users of such content even without expressly agreeing to, or having knowledge of, the conditions of the license."[8]
[edit] Creative Commons International
Main article: Creative Commons International
The original non-localized Creative Commons licenses were written with the U.S. legal system in mind, so the wording could be incompatible within different local legislations and render the licenses unenforceable in various jurisdictions. To address this issue, Creative Commons International has started to port the various licenses to accommodate local copyright and private law. As of February 2008, there are 43 jurisdiction-specific licenses, with 8 other jurisdictions in drafting process, and more countries joining the worldwide project.[9]
[edit] Projects using Creative Commons licenses
Main article: List of projects using Creative Commons licenses
Several million pages of web content use Creative Commons licenses. Common Content was set up by Jeff Kramer with cooperation from Creative Commons, and is currently maintained by volunteers.[10] On its website CC provides case studies of projects using CC licenses across the world.[11]
[edit] Criticism
Matteo Pasquinelli (2008) describes two fronts of criticism: "those who claim the institution of a real commonality against Creative Commons restrictions (non-commercial, share-alike, etc.)[clarify] and those who point out Creative Commons complicity with global capitalism".[clarify] Pasquinelli specifically criticises Creative Commons for not establishing "productive commons".[clarify][12]
Critics have also argued that Creative Commons worsens license proliferation, by providing multiple licenses that are incompatible.[who?] Most notably 'attribution-sharealike' and 'attribution-noncommercial-sharealike' are incompatible, meaning that works under these licenses cannot be combined in a derivative work without obtaining permission from the license-holder.[13][14] Pro-copyright commentators from within the content industry argue either that Creative Commons is not useful, or that it undermines copyright.[15][citation needed]
[edit] Tools for discovering CC-licensed content
Creative Commons' Search Page
Creative Commons' Content Directories
Yahoo's Creative Commons Search
Google Advanced Search - select an option under Usage Rights, to search for CC content.
Common Content - now offline (accessed 16 November 2007).
Mozilla Firefox web browser with default Creative Commons search functionality
The Internet Archive - Project dedicated to maintaining an archive of multimedia resources, among which Creative Commons-licensed content
Ourmedia - Media archive supported by the Internet Archive
ccHost - Server web software used by ccmixter and Open Clip Art Library
MusiCC - "Your Free Social Booking"
David Berry and Giles Moss have credited Creative Commons with generating interest in the issue of intellectual property and contributing to the re-thinking of the role of the “commons” in the “information age”. Beyond that Creative Commons has provided "institutional, practical and legal support for individuals and groups wishing to experiment and communicate with culture more freely".[2]
Contents [hide]
1 Aim
2 Creative Commons governance
2.1 Board
2.2 Technical Advisory Board
2.3 Audit Committee
3 Types of Creative Commons Licenses
4 Legal test case
5 Creative Commons International
6 Projects using Creative Commons licenses
7 Criticism
8 Tools for discovering CC-licensed content
8.1 Audio and music
8.2 Photos and images
9 See also
10 Footnotes
11 References
12 External links
[edit] Aim
Creative Commons Japan Seminar, Tokyo 2007The Creative Commons licenses enable copyright holders to grant some or all of their rights to the public while retaining others through a variety of licensing and contract schemes including dedication to the public domain or open content licensing terms. The intention is to avoid the problems current copyright laws create for the sharing of information.
The project provides several free licenses that copyright owners can use when releasing their works on the Web. It also provides RDF/XML metadata that describes the license and the work, making it easier to automatically process and locate licensed works. Creative Commons also provides a "Founders' Copyright"[3] contract, intended to re-create the effects of the original U.S. Copyright created by the founders of the U.S. Constitution.
All these efforts, and more, are done to counter the effects of what Creative Commons considers to be a dominant and increasingly restrictive permission culture. In the words of Lawrence Lessig, founder of Creative Commons and former Chairman of the Board, it is "a culture in which creators get to create only with the permission of the powerful, or of creators from the past".[4] Lessig maintains that modern culture is dominated by traditional content distributors in order to maintain and strengthen their monopolies on cultural products such as popular music and popular cinema, and that Creative Commons can provide alternatives to these restrictions.[5][6]
[edit] Creative Commons governance
The current CEO of Creative Commons is Joi Ito. Mike Linksvayer is vice president, John Wilbanks is Executive Director of Science Commons, and Ahrash Bissell is the Executive Director of ccLearn.
[edit] Board
The current Creative Commons Board includes: Hal Abelson, James Boyle (Chair), Michael W. Carroll, Davis Guggenheim, Joi Ito, Lawrence Lessig, Laurie Racine, Eric Saltzman, Molly Shaffer Van Houweling, Jimmy Wales, and Esther Wojcicki.[7]
[edit] Technical Advisory Board
The Technical Advisory Board includes five members. These are: Hal Abelson, Ben Adida, Barbara Fox, Don McGovern and Eric Miller. Hal Abelson also serves on the Creative Commons Board.[7]
[edit] Audit Committee
Creative Commons also has an Audit Committee, with two members. These are: Molly Shaffer Van Houweling and Lawrence Lessig. Both serve on the Creative Commons Board.[7]
[edit] Types of Creative Commons Licenses
Main article: Creative Commons licenses
The following describes each of the six main licenses offered when you choose to publish your work with creative commons license.
Attribution Non-commercial No Derivatives (by-nc-nd) This license is the most restrictive of the six main licenses, allowing redistribution. This license is often called the “free advertising” license because it allows others to download your works and share them with others as long as they mention you and link back to you, but they can’t change them in any way or use them commercially.
Attribution Non-commercial Share Alike (by-nc-sa) This license lets others remix, tweak, and build upon your work non-commercially, as long as they credit you and license their new creations under the identical terms. Others can download and redistribute your work just like the by-nc-nd license, but they can also translate, make remixes, and produce new stories based on your work. All new work based on yours will carry the same license, so any derivatives will also be non-commercial in nature.
Attribution Non-commercial (by-nc) This license lets others remix, tweak, and build upon your work non-commercially, and although their new works must also acknowledge you and be non-commercial, they don’t have to license their derivative works on the same terms.
Attribution No Derivatives (by-nd) This license allows for redistribution, commercial and non-commercial, as long as it is passed along unchanged and in whole, with credit to you.
Attribution Share Alike (by-sa) This license lets others remix, tweak, and build upon your work even for commercial reasons, as long as they credit you and license their new creations under the identical terms. This license is often compared to open source software licenses. All new works based on yours will carry the same license, so any derivatives will also allow commercial use.
Attribution (by) This license lets others distribute, remix, tweak, and build upon your work, even commercially, as long as they credit you for the original creation. This is the most accommodating of licenses offered, in terms of what others can do with your works licensed under Attribution.
[edit] Legal test case
A Creative Commons license was first tested in court in early 2006, when podcaster Adam Curry sued a Dutch tabloid who published photos without permission from his Flickr page. The photos were licensed under the Creative Commons Non-Commercial license.
While the verdict was in favour of Curry, the tabloid avoided having to pay restitution to him as long as they did not repeat the offense. An analysis of the decision states, "The Dutch Court’s decision is especially noteworthy because it confirms that the conditions of a Creative Commons license automatically apply to the content licensed under it, and bind users of such content even without expressly agreeing to, or having knowledge of, the conditions of the license."[8]
[edit] Creative Commons International
Main article: Creative Commons International
The original non-localized Creative Commons licenses were written with the U.S. legal system in mind, so the wording could be incompatible within different local legislations and render the licenses unenforceable in various jurisdictions. To address this issue, Creative Commons International has started to port the various licenses to accommodate local copyright and private law. As of February 2008, there are 43 jurisdiction-specific licenses, with 8 other jurisdictions in drafting process, and more countries joining the worldwide project.[9]
[edit] Projects using Creative Commons licenses
Main article: List of projects using Creative Commons licenses
Several million pages of web content use Creative Commons licenses. Common Content was set up by Jeff Kramer with cooperation from Creative Commons, and is currently maintained by volunteers.[10] On its website CC provides case studies of projects using CC licenses across the world.[11]
[edit] Criticism
Matteo Pasquinelli (2008) describes two fronts of criticism: "those who claim the institution of a real commonality against Creative Commons restrictions (non-commercial, share-alike, etc.)[clarify] and those who point out Creative Commons complicity with global capitalism".[clarify] Pasquinelli specifically criticises Creative Commons for not establishing "productive commons".[clarify][12]
Critics have also argued that Creative Commons worsens license proliferation, by providing multiple licenses that are incompatible.[who?] Most notably 'attribution-sharealike' and 'attribution-noncommercial-sharealike' are incompatible, meaning that works under these licenses cannot be combined in a derivative work without obtaining permission from the license-holder.[13][14] Pro-copyright commentators from within the content industry argue either that Creative Commons is not useful, or that it undermines copyright.[15][citation needed]
[edit] Tools for discovering CC-licensed content
Creative Commons' Search Page
Creative Commons' Content Directories
Yahoo's Creative Commons Search
Google Advanced Search - select an option under Usage Rights, to search for CC content.
Common Content - now offline (accessed 16 November 2007).
Mozilla Firefox web browser with default Creative Commons search functionality
The Internet Archive - Project dedicated to maintaining an archive of multimedia resources, among which Creative Commons-licensed content
Ourmedia - Media archive supported by the Internet Archive
ccHost - Server web software used by ccmixter and Open Clip Art Library
MusiCC - "Your Free Social Booking"
KDE 4.2 Beta 1 Release Announcement
KDE 4.2 Beta 1 Provides First Look at Upcoming User Experience
KDE Commmunity Ships First Beta Release of KDE 4.2, Inviting Community to Test and Report Bugs.
November 26, 2008. The KDE Community today announced the immediate availability of "Caterpillar", (a.k.a KDE 4.2 Beta 1), the first testing release of the new KDE 4.2 desktop. Caterpillar is aimed at testers and reviewers. It should provide a solid ground to report bugs that need to be tackled before KDE 4.2.0 is released. Reviewers can use this beta to get a first look at the upcoming KDE 4.2 desktop which provides significant improvements all over the desktop and applications.
With 885 bugs closed in the past week, the KDE community is now in bugfixing mode in order to provide a smooth KDE 4.2.0 to end users in January.
A KDE 4.2 Beta 1 Desktop
Significant refinements of Plasma and KWin, the KDE workspace
For the 4.2 release, the KDE team has fixed literally thousands of bugs and has implemented dozens of features that were missing until now in KDE 4. 2 fixes your issues. This beta release gives you the opportunity to assist in ironing out the remaining wrinkles. The KDE release team has put together a list with the most significant improvements in 4.2 Beta 1:
Compositing desktop effects are enabled where hardware and drivers support it, with a basic default setup. Automatic checks confirm that compositing works before enabling it on the workspace.
New desktop effects have been added such as the Magic Lamp, Minimize effect, Cube and Sphere desktop switchers. Others, such as the desktop grid, have been improved. All effects have been polished and and feel natural due to the use of motion dynamics. The user interface for choosing effects has been reworked for easy selection of the most commonly used effects.
Central elements of the desktop experience have seen significant improvements to give a usable and coherent experience. These include grouping and multiple row layout in the task bar, icon hiding in the system tray, notifications and job tracking by Plasma, the ability to have icons on the desktop again by using a Folder View as the desktop background. Restored features and minor tweaks round out the work, such as the return of panel autohiding to maximise your productive screen space, icons now remain where they are placed in the Folder View, the location of new applets is improved, and window previews and tooltips are back in the panel and Task Bar.
New Plasma applets include applets for leaving messages on a locked screen, previewing files, switching desktop Activity, monitoring news feeds, and utilities like the pastebin applet, the calendar, timer, special character selector, a quicklaunch applet, a system monitor, among many others.
KRunner, the "Run command..." dialog has extended functionality through several new plugins, including spellchecking, konqueror browser history, power management control through PowerDevil, KDE Places, Recent Documents, and the ability to start specific sessions of the Kate editor, Konqueror and Konsole. The converter plugin now also supports quickly converting between units of speed, mass and distances.
The Plasma workspace can now load Google Gadgets. Plasma applets can be written in Ruby and Python. Support for applets written in JavaScript and Mac OS dashboard widgets has been further improved.
Wallpapers are now provided plugins, so developers can easily write custom wallpaper systems in KDE 4.2. Available wallpaper plugins in KDE 4.2 will be slideshows, Mandelbrot fractals, and of course regular static images.
Theming improvements in the Task Bar, Application Launcher, System Tray and most other Plasma components streamline the look and feel and increase consistency. A new System Settings module, Desktop Theme Details, gives the user control over each element of various Plasma themes.
Multi-screen support has been improved through the Kephal library, fixing many bugs when running KDE on more than one monitor.
Desktop as Folder View (traditional desktop)
New and Improved Applications
All applications have seen bugfixes, feature additions, user interface improvements and generally received more polish during the last 4 months of development. The following list gives some ideas about the areas of improvement.
Dolphin now supports previews of files in toolbars and has gained a slider to zoom in and out on file item views. It can now also show the full path in the breadcrumb bar.
Konqueror offers increased loading speed by prefetching domain name data in KHTML. A find-as-you-type bar improves navigation in webpages.
KMail has a powerful and attractive message header list, and reworked attachment view.
The KWrite and Kate text editors can now operate in Vi input mode, accomodating those used to the traditional UNIX editor.
PowerDevil, the new KDE4 power management infrastructure brings a modern, integrated tool for controlling various aspects of mobile devices.
Ark, the archiving tool has improved UI, gained support for password-protected archives and is accessible via a context menu from the file managers now.
A new printing configuration system brings back a number of features users have been missing in KDE 4.0 and 4.1. The components "printer-applet" and "system-config-printer" are shipped with the kdeadmin and kdeutils module.
KRDC, the remote desktop client improves support for Microsoft's Active Directory through LDAP.
Kontact has gained a new planner summary and support for drag and drop in the free/busy view.
KSnapshot now uses the window title when saving screenshots, making it easier to index them using search engines.
The secure file transfer protocols SFTP and FISH are now also supported by KDE on the Windows platform.
Killbots is a new game shipped with the kdegames module. Other games have improved user interaction and added themes and levels.
Educational apps such as KAlgebra, KStars, KTurtle and Parley have seen major improvements in UI and feature sets.
Okteta, the hex editor has significantly improved various aspects of its user interface.
This list of new features in KDE 4.2 is not comprehensive yet. Please refer to the feature plan for more details.
Improved Desktop Grid Effect
To find out more about the KDE 4 desktop and applications, please also refer to the KDE 4.1.0 and KDE 4.0.0 release notes. KDE 4.2 Beta 1 is not recommended for everyday use. This beta will be followed up by another beta on December 16th, a release candidate on January 6th and the final release of KDE 4.2.0 on January 27th, 6 months after the release of KDE 4.1.0.
Installing KDE 4.2 Beta 1 Binary Packages
Packagers. Some Linux/UNIX OS vendors have kindly provided binary packages of KDE 4.2 Beta 1, and in other cases community volunteers have done so. Some of these binary packages are available for free download via the KDE 4.2 Beta 1 Info Page. Additional binary packages, as well as updates to the packages now available, may become available over the coming weeks.
Package Locations. For a current list of available binary packages of which the KDE Project has been informed, please visit the KDE 4.2 Beta 1 Info Page.
Compiling KDE 4.2 Beta 1
The complete source code for KDE 4.1.80 may be freely downloaded. Instructions on compiling and installing KDE 4.1.80 are available from the KDE 4.2 Beta 1 Info Page.
About KDE
KDE is an international technology team that creates free and open source software for desktop and portable computing. Among KDE's products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet and web applications, multimedia, entertainment, educational, graphics and software development. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE4's full-featured applications run natively on Linux, BSD, Solaris, Windows and Mac OS X.
--------------------------------------------------------------------------------
Trademark Notices. KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group in the United States and other countries. All other trademarks and copyrights referred to in this announcement are the property of their respective owners.
KDE Commmunity Ships First Beta Release of KDE 4.2, Inviting Community to Test and Report Bugs.
November 26, 2008. The KDE Community today announced the immediate availability of "Caterpillar", (a.k.a KDE 4.2 Beta 1), the first testing release of the new KDE 4.2 desktop. Caterpillar is aimed at testers and reviewers. It should provide a solid ground to report bugs that need to be tackled before KDE 4.2.0 is released. Reviewers can use this beta to get a first look at the upcoming KDE 4.2 desktop which provides significant improvements all over the desktop and applications.
With 885 bugs closed in the past week, the KDE community is now in bugfixing mode in order to provide a smooth KDE 4.2.0 to end users in January.
A KDE 4.2 Beta 1 Desktop
Significant refinements of Plasma and KWin, the KDE workspace
For the 4.2 release, the KDE team has fixed literally thousands of bugs and has implemented dozens of features that were missing until now in KDE 4. 2 fixes your issues. This beta release gives you the opportunity to assist in ironing out the remaining wrinkles. The KDE release team has put together a list with the most significant improvements in 4.2 Beta 1:
Compositing desktop effects are enabled where hardware and drivers support it, with a basic default setup. Automatic checks confirm that compositing works before enabling it on the workspace.
New desktop effects have been added such as the Magic Lamp, Minimize effect, Cube and Sphere desktop switchers. Others, such as the desktop grid, have been improved. All effects have been polished and and feel natural due to the use of motion dynamics. The user interface for choosing effects has been reworked for easy selection of the most commonly used effects.
Central elements of the desktop experience have seen significant improvements to give a usable and coherent experience. These include grouping and multiple row layout in the task bar, icon hiding in the system tray, notifications and job tracking by Plasma, the ability to have icons on the desktop again by using a Folder View as the desktop background. Restored features and minor tweaks round out the work, such as the return of panel autohiding to maximise your productive screen space, icons now remain where they are placed in the Folder View, the location of new applets is improved, and window previews and tooltips are back in the panel and Task Bar.
New Plasma applets include applets for leaving messages on a locked screen, previewing files, switching desktop Activity, monitoring news feeds, and utilities like the pastebin applet, the calendar, timer, special character selector, a quicklaunch applet, a system monitor, among many others.
KRunner, the "Run command..." dialog has extended functionality through several new plugins, including spellchecking, konqueror browser history, power management control through PowerDevil, KDE Places, Recent Documents, and the ability to start specific sessions of the Kate editor, Konqueror and Konsole. The converter plugin now also supports quickly converting between units of speed, mass and distances.
The Plasma workspace can now load Google Gadgets. Plasma applets can be written in Ruby and Python. Support for applets written in JavaScript and Mac OS dashboard widgets has been further improved.
Wallpapers are now provided plugins, so developers can easily write custom wallpaper systems in KDE 4.2. Available wallpaper plugins in KDE 4.2 will be slideshows, Mandelbrot fractals, and of course regular static images.
Theming improvements in the Task Bar, Application Launcher, System Tray and most other Plasma components streamline the look and feel and increase consistency. A new System Settings module, Desktop Theme Details, gives the user control over each element of various Plasma themes.
Multi-screen support has been improved through the Kephal library, fixing many bugs when running KDE on more than one monitor.
Desktop as Folder View (traditional desktop)
New and Improved Applications
All applications have seen bugfixes, feature additions, user interface improvements and generally received more polish during the last 4 months of development. The following list gives some ideas about the areas of improvement.
Dolphin now supports previews of files in toolbars and has gained a slider to zoom in and out on file item views. It can now also show the full path in the breadcrumb bar.
Konqueror offers increased loading speed by prefetching domain name data in KHTML. A find-as-you-type bar improves navigation in webpages.
KMail has a powerful and attractive message header list, and reworked attachment view.
The KWrite and Kate text editors can now operate in Vi input mode, accomodating those used to the traditional UNIX editor.
PowerDevil, the new KDE4 power management infrastructure brings a modern, integrated tool for controlling various aspects of mobile devices.
Ark, the archiving tool has improved UI, gained support for password-protected archives and is accessible via a context menu from the file managers now.
A new printing configuration system brings back a number of features users have been missing in KDE 4.0 and 4.1. The components "printer-applet" and "system-config-printer" are shipped with the kdeadmin and kdeutils module.
KRDC, the remote desktop client improves support for Microsoft's Active Directory through LDAP.
Kontact has gained a new planner summary and support for drag and drop in the free/busy view.
KSnapshot now uses the window title when saving screenshots, making it easier to index them using search engines.
The secure file transfer protocols SFTP and FISH are now also supported by KDE on the Windows platform.
Killbots is a new game shipped with the kdegames module. Other games have improved user interaction and added themes and levels.
Educational apps such as KAlgebra, KStars, KTurtle and Parley have seen major improvements in UI and feature sets.
Okteta, the hex editor has significantly improved various aspects of its user interface.
This list of new features in KDE 4.2 is not comprehensive yet. Please refer to the feature plan for more details.
Improved Desktop Grid Effect
To find out more about the KDE 4 desktop and applications, please also refer to the KDE 4.1.0 and KDE 4.0.0 release notes. KDE 4.2 Beta 1 is not recommended for everyday use. This beta will be followed up by another beta on December 16th, a release candidate on January 6th and the final release of KDE 4.2.0 on January 27th, 6 months after the release of KDE 4.1.0.
Installing KDE 4.2 Beta 1 Binary Packages
Packagers. Some Linux/UNIX OS vendors have kindly provided binary packages of KDE 4.2 Beta 1, and in other cases community volunteers have done so. Some of these binary packages are available for free download via the KDE 4.2 Beta 1 Info Page. Additional binary packages, as well as updates to the packages now available, may become available over the coming weeks.
Package Locations. For a current list of available binary packages of which the KDE Project has been informed, please visit the KDE 4.2 Beta 1 Info Page.
Compiling KDE 4.2 Beta 1
The complete source code for KDE 4.1.80 may be freely downloaded. Instructions on compiling and installing KDE 4.1.80 are available from the KDE 4.2 Beta 1 Info Page.
About KDE
KDE is an international technology team that creates free and open source software for desktop and portable computing. Among KDE's products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet and web applications, multimedia, entertainment, educational, graphics and software development. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE4's full-featured applications run natively on Linux, BSD, Solaris, Windows and Mac OS X.
--------------------------------------------------------------------------------
Trademark Notices. KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group in the United States and other countries. All other trademarks and copyrights referred to in this announcement are the property of their respective owners.
2008年11月26日星期三
15 Things Every Web Developer Should Be Thankful For
15 Things Every Web Developer Should Be Thankful For
November 25, 2008 / Asides
With Thanksgiving only a couple days away, it’s appropriate to look back on the things that we appreciate best about our jobs. Let’s face it: Web Developers have the best jobs around, right? We’re incredibly lucky to have the professions we do.
Here are 15 things that we all should be thankful for. These are the technologies that we couldn’t live without, or that have previously paved the way and allowed us to be web developers.
1. Mosaic
Graphic designers everywhere should reserve a day in November to give thanks to the software that’s enabled our careers. Without Mosaic’s picture support, the Internet doesn’t need good design. The 1993 launch of this web browsing software opened up a brand new world to web developers and web browsers alike.
Photo by Marc_Smith.
2. Firefox
Firefox ended the long tyranny of IE oppression for experienced web users. The extension-enabled browser has forced IE to play catch up and improve their lukewarm browser, which hadn’t seen an update for 5 years.
Aside from pushing a standards-based browsing initiative, the ability to extend Firefox has made the developers life much easier. There are oodles of extensions that are nearly essential to the developer.
Photo by psd.
3. Browsershots.org
Every web developer knows the awful pain that is making designs constant across different browsers. Thanks to Browsershots, we can easily see a screenshot of any page across a multitude of different browsers, showing potential problems that might arise across different browsers, and giving new reason to invent curses for legacy IE versions.
4. Firebug
Thanks to Firefox, we now have a browser that is also an important tool for the web developer. Firebug is a must-have extension for the web developer. With this nifty little extension you can view just about any aspect of the web page, visible or behind the scenes, and modify it real-time. It’s incredibly useful for designers and programmers alike.
Photo by zeroK.
5. Google Code
If you’re trying to find a useful snippet of code, there’s no place better than Google Code. Not only is it a great place to search for entire libraries, you can find useful bits of code that might be hard to find otherwise. If you’re wanting to house a project, you’ll be especially thankful for G Code, as it’s a free and easy way to have a working community for a project without hosting costs.
Also, with Google Code you can use Google’s bandwidth for the javascript libraries included in your projects. Using jQuery? Just call Google’s hosted version and be on your way. No need to slow your own server down with Google’s gracious offer.
6. Frameworks
Frameworks have given developers a major reason to be thankful. Gone are the days of building websites around repetitive code. Using frameworks like Rails, Django or CakePHP on websites needing database interaction and user permissions takes a major burden off of the programmer. They can spend less time on common, tedious code and more on the interesting and unique. It’s a powerful paradigm shift in programming.
Here are some of the major frameworks used today, in no particular order.
Ruby on Rails (Ruby)
CakePHP (PHP)
Django (Python)
Zend (PHP)
CodeIgnitor (PHP)
Symfony (PHP)
Photo by Nathan Borror.
7. Open Source projects
Mad props should be bestowed upon the Open Source Initiative and all the software it promotes. It is a fact that we wouldn’t have a) the Internet or b) much of the technology that it runs on without open source projects. Most of the biggest and best projects are open sourced software, and they all run on the basis that the people building and contributing to them are doing it for free. Granted, these folks might make a hefty profit on consulting services and other opportunities around the projects, they’re still opening up the code base for developers to modify and improve, as they see fit.
Open Source is the Internet’s best contribution yet. The free exchange of ideas encouraged by Open Source is the best thing that’s happened to the web, especially for web developers. Show of hands: Who hasn’t ever used open source software to build a site or project? I’m guessing none of us. That is plenty to be thankful for.
Photo by Josh Parrish.
8. Creative Commons
On the heels of Open Source is Creative Commons licensing. You can modify, reuse and redistribute Creative Commons-licensed material, in exchange for (at the most) attribution. Ultimately, Creative Commons protects the original work, but allows people to modify and reuse at will.
Creative Commons is a very big benefit for designers and bloggers alike. The pictures seen in posts on this blog? Creative Commons licensed. There is absolutely nothing better for content producers than free media that can be reused and remixed.
9. Paypal
Love ‘em or hate ‘em, Paypal and other payment gateways have made collecting payments a much friendlier task on the web. Sure, there are horror stories and bad experiences using their product, but Paypal has revolutionized the way money is exchanged on the Internet. They have an easy to use API, and if you’re wanting something even simpler, they offer a painless web interface to receive money from.
If Paypal has done you wrong in the past and you’re looking for a better alternative to send and receive money, you might check out a CNN article on five Paypal alternatives. Definitely worth the read.
10. Javascript Libraries
Javascript is always one of the most popular aspects of web development, and a big reason for that is the advent of Javascript libraries. Javascript libraries, (like frameworks), have eliminated the much of the need for custom Javascript programming. Aside from the fact that the core files in the Javascript libraries do a great many functions themselves, the ability to use custom plugins gives even more functionality to the library.
Not having to do custom Javascript programming for specific effects has given me a much greater respect for Javascript libs this holiday season. Here are some of the more popular Javascript libraries:
jQuery
Dojo
Scriptaculous
Prototype
MooTools
MochiKit
11. Amazon S3 and EC2
Amazon’s on demand services S3 and EC2 have developer’s lives a lot simpler. Not only do they not have to worry about traffic influxes and scaling headaches, they don’t have to spend buckets of cash on reserve servers. The pay-what-you-use business model to web hosting and file serving is a godsend for developers.
The launch of these “cloud” services has also spawn the change of many hosts to move to the pay-as-you-go model. Amazon’s innovation has helped spurn change for the betterment of web development.
Photo by Nicholas T.
12. Anti-RSI software
There is no friend like RSI-preventing software. RSI (or Repetitive Strain Injury) is typically in the form of carpal tunnel for web developers and typing zealots. Because the typical developer or designer spends at least 8 hours sitting in front of a computer screen all day, there is a likelyhood that RSI will creep into the wrists, hands, forearms, elbows, shoulders, back… and the list can go on and on.
Thanks goodness for RSI software that forces you to take breaks on a regular basis. Many times I’ll find myself fixated at the computer until I finish xyz, and consequently it’s over 50 minutes before I’ve gotten out of my chair away from the computer. With RSI software, you can have a reminder flash on your computer at set intervals that ensures you’re moving your limbs and warding off RSI. If you’re on a Mac, try AntiRSI, Windows and Linux users can try Workrave.
Photo by Dave Parker.
13. Advanced Text Editors
Advanced text editors have sped up the development time by adding a myriad of useful features that can benefit nearly anyone who writes in code, blogger to advanced programmer. Whether you prefer Textmate, Emacs, Vim or some other editor, text editors can save plenty of time on the development cycle.
Photo by D’Arcy Norman.
14. CSS
CSS seems to be one of those technologies that is taken for granted. Can anyone remember what the pre-CSS days were like? It wasn’t pretty. Modifying a web layout’s design meant going through each page and changing each inline style. Ugh. Thanks to the wonderment that is CSS, we can make one change in a single file, and Poof!, it’s reflected across the entire site. Simple, clean, and much less involved.
There are times when I’m not that thankful for CSS (see: Internet Explorer), but for the most part it’s a technology that we’re much better off having.
CSS editor CSSEdit.
15. Coffee
Ah, coffee. I don’t think I’m in the minority when I say that coffee is a staple to my day. Web workers in general crave the bean, and without it the day doesn’t go as well. There’s something about the smell of a fresh pot of coffee that makes the senses come alive. Many a cup of joe has sustained me through long nights of writing and coding deadlines. I doubt I would have made many of those deadlines without the aide of our caffeinated friend.
Photo by Chris Owens.
Bonus: Laptops
Laptops can completely change the effectiveness of a developer. Instead of being confined to the same room, chair, keyboard and monitor each day, the laptop allows for a much-needed change. While the screen real estate may not be as big as your office setup, it offers one thing the other can’t: Variety. Laptops enable you to work from anywhere.
I’ve found that since switching to a laptop, my RSI (see #12) has essentially gone away. I’m constantly working in different chairs and have my hands resting in different positions, which in turn is continuously working different muscle groups. I’m extra thankful for laptops.
Photo by Johan Larsson.
How About You?
What are you thankful for? What should be included on this list? Reply below!
If you enjoyed this post, support it by saving it to Delicious.
November 25, 2008 / Asides
With Thanksgiving only a couple days away, it’s appropriate to look back on the things that we appreciate best about our jobs. Let’s face it: Web Developers have the best jobs around, right? We’re incredibly lucky to have the professions we do.
Here are 15 things that we all should be thankful for. These are the technologies that we couldn’t live without, or that have previously paved the way and allowed us to be web developers.
1. Mosaic
Graphic designers everywhere should reserve a day in November to give thanks to the software that’s enabled our careers. Without Mosaic’s picture support, the Internet doesn’t need good design. The 1993 launch of this web browsing software opened up a brand new world to web developers and web browsers alike.
Photo by Marc_Smith.
2. Firefox
Firefox ended the long tyranny of IE oppression for experienced web users. The extension-enabled browser has forced IE to play catch up and improve their lukewarm browser, which hadn’t seen an update for 5 years.
Aside from pushing a standards-based browsing initiative, the ability to extend Firefox has made the developers life much easier. There are oodles of extensions that are nearly essential to the developer.
Photo by psd.
3. Browsershots.org
Every web developer knows the awful pain that is making designs constant across different browsers. Thanks to Browsershots, we can easily see a screenshot of any page across a multitude of different browsers, showing potential problems that might arise across different browsers, and giving new reason to invent curses for legacy IE versions.
4. Firebug
Thanks to Firefox, we now have a browser that is also an important tool for the web developer. Firebug is a must-have extension for the web developer. With this nifty little extension you can view just about any aspect of the web page, visible or behind the scenes, and modify it real-time. It’s incredibly useful for designers and programmers alike.
Photo by zeroK.
5. Google Code
If you’re trying to find a useful snippet of code, there’s no place better than Google Code. Not only is it a great place to search for entire libraries, you can find useful bits of code that might be hard to find otherwise. If you’re wanting to house a project, you’ll be especially thankful for G Code, as it’s a free and easy way to have a working community for a project without hosting costs.
Also, with Google Code you can use Google’s bandwidth for the javascript libraries included in your projects. Using jQuery? Just call Google’s hosted version and be on your way. No need to slow your own server down with Google’s gracious offer.
6. Frameworks
Frameworks have given developers a major reason to be thankful. Gone are the days of building websites around repetitive code. Using frameworks like Rails, Django or CakePHP on websites needing database interaction and user permissions takes a major burden off of the programmer. They can spend less time on common, tedious code and more on the interesting and unique. It’s a powerful paradigm shift in programming.
Here are some of the major frameworks used today, in no particular order.
Ruby on Rails (Ruby)
CakePHP (PHP)
Django (Python)
Zend (PHP)
CodeIgnitor (PHP)
Symfony (PHP)
Photo by Nathan Borror.
7. Open Source projects
Mad props should be bestowed upon the Open Source Initiative and all the software it promotes. It is a fact that we wouldn’t have a) the Internet or b) much of the technology that it runs on without open source projects. Most of the biggest and best projects are open sourced software, and they all run on the basis that the people building and contributing to them are doing it for free. Granted, these folks might make a hefty profit on consulting services and other opportunities around the projects, they’re still opening up the code base for developers to modify and improve, as they see fit.
Open Source is the Internet’s best contribution yet. The free exchange of ideas encouraged by Open Source is the best thing that’s happened to the web, especially for web developers. Show of hands: Who hasn’t ever used open source software to build a site or project? I’m guessing none of us. That is plenty to be thankful for.
Photo by Josh Parrish.
8. Creative Commons
On the heels of Open Source is Creative Commons licensing. You can modify, reuse and redistribute Creative Commons-licensed material, in exchange for (at the most) attribution. Ultimately, Creative Commons protects the original work, but allows people to modify and reuse at will.
Creative Commons is a very big benefit for designers and bloggers alike. The pictures seen in posts on this blog? Creative Commons licensed. There is absolutely nothing better for content producers than free media that can be reused and remixed.
9. Paypal
Love ‘em or hate ‘em, Paypal and other payment gateways have made collecting payments a much friendlier task on the web. Sure, there are horror stories and bad experiences using their product, but Paypal has revolutionized the way money is exchanged on the Internet. They have an easy to use API, and if you’re wanting something even simpler, they offer a painless web interface to receive money from.
If Paypal has done you wrong in the past and you’re looking for a better alternative to send and receive money, you might check out a CNN article on five Paypal alternatives. Definitely worth the read.
10. Javascript Libraries
Javascript is always one of the most popular aspects of web development, and a big reason for that is the advent of Javascript libraries. Javascript libraries, (like frameworks), have eliminated the much of the need for custom Javascript programming. Aside from the fact that the core files in the Javascript libraries do a great many functions themselves, the ability to use custom plugins gives even more functionality to the library.
Not having to do custom Javascript programming for specific effects has given me a much greater respect for Javascript libs this holiday season. Here are some of the more popular Javascript libraries:
jQuery
Dojo
Scriptaculous
Prototype
MooTools
MochiKit
11. Amazon S3 and EC2
Amazon’s on demand services S3 and EC2 have developer’s lives a lot simpler. Not only do they not have to worry about traffic influxes and scaling headaches, they don’t have to spend buckets of cash on reserve servers. The pay-what-you-use business model to web hosting and file serving is a godsend for developers.
The launch of these “cloud” services has also spawn the change of many hosts to move to the pay-as-you-go model. Amazon’s innovation has helped spurn change for the betterment of web development.
Photo by Nicholas T.
12. Anti-RSI software
There is no friend like RSI-preventing software. RSI (or Repetitive Strain Injury) is typically in the form of carpal tunnel for web developers and typing zealots. Because the typical developer or designer spends at least 8 hours sitting in front of a computer screen all day, there is a likelyhood that RSI will creep into the wrists, hands, forearms, elbows, shoulders, back… and the list can go on and on.
Thanks goodness for RSI software that forces you to take breaks on a regular basis. Many times I’ll find myself fixated at the computer until I finish xyz, and consequently it’s over 50 minutes before I’ve gotten out of my chair away from the computer. With RSI software, you can have a reminder flash on your computer at set intervals that ensures you’re moving your limbs and warding off RSI. If you’re on a Mac, try AntiRSI, Windows and Linux users can try Workrave.
Photo by Dave Parker.
13. Advanced Text Editors
Advanced text editors have sped up the development time by adding a myriad of useful features that can benefit nearly anyone who writes in code, blogger to advanced programmer. Whether you prefer Textmate, Emacs, Vim or some other editor, text editors can save plenty of time on the development cycle.
Photo by D’Arcy Norman.
14. CSS
CSS seems to be one of those technologies that is taken for granted. Can anyone remember what the pre-CSS days were like? It wasn’t pretty. Modifying a web layout’s design meant going through each page and changing each inline style. Ugh. Thanks to the wonderment that is CSS, we can make one change in a single file, and Poof!, it’s reflected across the entire site. Simple, clean, and much less involved.
There are times when I’m not that thankful for CSS (see: Internet Explorer), but for the most part it’s a technology that we’re much better off having.
CSS editor CSSEdit.
15. Coffee
Ah, coffee. I don’t think I’m in the minority when I say that coffee is a staple to my day. Web workers in general crave the bean, and without it the day doesn’t go as well. There’s something about the smell of a fresh pot of coffee that makes the senses come alive. Many a cup of joe has sustained me through long nights of writing and coding deadlines. I doubt I would have made many of those deadlines without the aide of our caffeinated friend.
Photo by Chris Owens.
Bonus: Laptops
Laptops can completely change the effectiveness of a developer. Instead of being confined to the same room, chair, keyboard and monitor each day, the laptop allows for a much-needed change. While the screen real estate may not be as big as your office setup, it offers one thing the other can’t: Variety. Laptops enable you to work from anywhere.
I’ve found that since switching to a laptop, my RSI (see #12) has essentially gone away. I’m constantly working in different chairs and have my hands resting in different positions, which in turn is continuously working different muscle groups. I’m extra thankful for laptops.
Photo by Johan Larsson.
How About You?
What are you thankful for? What should be included on this list? Reply below!
If you enjoyed this post, support it by saving it to Delicious.
OpenRISC project
The aim of the OpenRISC project is to create a free, open source computing platform available under the GNU (L)GPL license. Platform must be versatile to fit various target applications. Platform is based on three main ingredients:
free, open source 32/64-bit RISC/DSP architecture
set of free, open source implementations of the architecture
complete set of free, open source software development tools, operating systems and software applications/libraries
However the OpenRISC project does not impose any restrictions on third parties to create their own proprietary implementations of the OpenRISC 1000 architecture or port their own software development tools, operating systems and applications to the OpenRISC.
The OpenRISC 1000 architecture is the latest in the development of modern open architectures and the base for a family of 32- and 64-bit RISC/DSP processors. Open architecture allows a spectrum of chip and system implementations at a variety of price/performance points for a range of applications. Designed with emphasis on performance, simplicity, low power consumption, scalability, and versatility, it targets medium and high performance networking, portable, embedded, and automotive applications.
free, open source 32/64-bit RISC/DSP architecture
set of free, open source implementations of the architecture
complete set of free, open source software development tools, operating systems and software applications/libraries
However the OpenRISC project does not impose any restrictions on third parties to create their own proprietary implementations of the OpenRISC 1000 architecture or port their own software development tools, operating systems and applications to the OpenRISC.
The OpenRISC 1000 architecture is the latest in the development of modern open architectures and the base for a family of 32- and 64-bit RISC/DSP processors. Open architecture allows a spectrum of chip and system implementations at a variety of price/performance points for a range of applications. Designed with emphasis on performance, simplicity, low power consumption, scalability, and versatility, it targets medium and high performance networking, portable, embedded, and automotive applications.
搜索引擎基本工作原理
■ 全文搜索引擎
在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。
........................................................................................
■ 目录索引
与全文搜索引擎相比,目录索引有许多不同之处。
首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主观印象,决定是否接纳你的网站。
其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo!这样的超级索引,登录更是困难。(由于登录Yahoo!的难度最大,而它又是商家网络营销必争之地,所以我们会在后面用专门的篇幅介绍登录Yahoo雅虎的技巧)
此外,在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录(Directory)。
最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整,当然事先是不会和你商量的。
目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。
目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google就借用Open Directory目录提供分类查询。而象 Yahoo! 这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围(注)。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如国内搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo。
在搜索引擎分类部分我们提到过全文搜索引擎从网站提取信息建立网页数据库的概念。搜索引擎的自动信息搜集功能分两种。一种是定期搜索,即每隔一段时间(比如Google一般是28天),搜索引擎主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,它会自动提取网站的信息和网址加入自己的数据库。
另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,它在一定时间内(2天到数月不等)定向向你的网站派出“蜘蛛”程序,扫描你的网站并将有关信息存入数据库,以备用户查询。由于近年来搜索引擎索引规则发生了很大变化,主动提交网址并不保证你的网站能进入搜索引擎数据库,因此目前最好的办法是多获得一些外部链接,让搜索引擎有更多机会找到你并自动将你的网站收录。
当用户以关键词查找信息时,搜索引擎会在数据库中进行搜寻,如果找到与用户要求内容相符的网站,便采用特殊的算法——通常根据网页中关键词的匹配程度,出现的位置/频次,链接质量等——计算出各网页的相关度及排名等级,然后根据关联度高低,按顺序将这些网页链接返回给用户。
........................................................................................
■ 目录索引
与全文搜索引擎相比,目录索引有许多不同之处。
首先,搜索引擎属于自动网站检索,而目录索引则完全依赖手工操作。用户提交网站后,目录编辑人员会亲自浏览你的网站,然后根据一套自定的评判标准甚至编辑人员的主观印象,决定是否接纳你的网站。
其次,搜索引擎收录网站时,只要网站本身没有违反有关的规则,一般都能登录成功。而目录索引对网站的要求则高得多,有时即使登录多次也不一定成功。尤其象Yahoo!这样的超级索引,登录更是困难。(由于登录Yahoo!的难度最大,而它又是商家网络营销必争之地,所以我们会在后面用专门的篇幅介绍登录Yahoo雅虎的技巧)
此外,在登录搜索引擎时,我们一般不用考虑网站的分类问题,而登录目录索引时则必须将网站放在一个最合适的目录(Directory)。
最后,搜索引擎中各网站的有关信息都是从用户网页中自动提取的,所以用户的角度看,我们拥有更多的自主权;而目录索引则要求必须手工另外填写网站信息,而且还有各种各样的限制。更有甚者,如果工作人员认为你提交网站的目录、网站信息不合适,他可以随时对其进行调整,当然事先是不会和你商量的。
目录索引,顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。如以关键词搜索,返回的结果跟搜索引擎一样,也是根据信息关联程度排列网站,只不过其中人为因素要多一些。如果按分层目录查找,某一目录中网站的排名则是由标题字母的先后顺序决定(也有例外)。
目前,搜索引擎与目录索引有相互融合渗透的趋势。原来一些纯粹的全文搜索引擎现在也提供目录搜索,如Google就借用Open Directory目录提供分类查询。而象 Yahoo! 这些老牌目录索引则通过与Google等搜索引擎合作扩大搜索范围(注)。在默认搜索模式下,一些目录类搜索引擎首先返回的是自己目录中匹配的网站,如国内搜狐、新浪、网易等;而另外一些则默认的是网页搜索,如Yahoo。
实时操作系统比较
RTOS在国内主要有vxworks和pSOS,现在还有nuclear、QNX、WinCE。
说起好坏吗,其实,vxWorks要好一些,可能;不知道以前国内研究所一直用的VRTX是不是都被vxworks所替代了呢。据说因为VRTX是最早商业化的RTOS,60年代就开始卖了,所以呢,全是汇编,改都改不过来,还有就是对TCP/IP的支持一直不好,vxWorks是从VRTX公司出来的人做的,号称make VrtX Works!,所以就有了vxWorks的名字。
nuclear是卖源代码的,而且不卖licence,就是说,你设计了一台路由器,生产的时候不用为你的每一台路由器都付30美圆的licence费用给nuclear的那个公司。
QNX和WinCE都似乎更注重于GUI图形界面方面的东西,当然,QNX好象还号称在别的方面也很出色,它是一家加拿大的公司做的。QNX我曾经有一张DEMO盘,1.44M的小盘,用它启动,就能够实现图形界面和MODEM拨号上网。(偶现在懒得去找那张DEMO盘了,实在想要就发个mail给我,偶去找来给你,在学校FTP那个应该也是,我没用过)但是请别以为QNX就是用在一般DESKTOP PC机上的啊。QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从68K的CPU上面开发成熟,然后再移植到X86体系上面来的(对68K不熟悉?这在嵌入式开发里面用的很广泛啊,motorola公司的,VME上面用的太多了),但是QNX就是直接在X86上面开发的然后近年才在68K等CPU上面能用。WinCE么,刚出来的时候还是soft realtime,不是hard realtime,(不知道这个概念?在那本“入门书”上面有!),所以一开始的时候大家就很鄙视WinCE,觉得。。。//hehe。。。但是,你看看现在WinCE那浩大声势?哈哈
pSOS吗,和vxWorks一起,是最最成熟的RTOS啦,打个比方,用pSOS和vxWorks来开发路由器、交换机、大型电讯设备、卫星通讯设备、航天器、军事控制设备,那是最合适的啦,您知道吗,有些东西是不能死锁的,稳定性是第一位的,比如747掉下来就死翘翘了:)当然啦,还有系统硬件设计上面的问题,比如双机热备份冗余设计之类的,不然电话交换机一坏,电讯局就整天挨批啦!那么QNX和WinCE呢,用来设计机顶盒、手持设备(手掌电脑、手机)、GPS设备(?)之类的需要漂漂界面的地方。
以上介绍的都是要卖钱的RTOS,估摸着您一般会买不起:(
穷人的RTOS在哪里?ucOS就是了,免费的,在学校FTP站点有人放过,不过好象不全;支持好多单片机、甚至支持DSP!还有eCOS在学校FTP也有热心人下好了,但是可惜不支持X86。免费的还有好几种呢,一种是美国军方以前用的叫什么了(RTEMS?错了)有几个站点,比如www.ucos-ii.com还有。。忘了!你如果IP能出国,去那个叫Alxxxx的搜索引擎找找看,比yahoo好多了!Yahoo上面也有那个Alxxxx的连接。
RTOS在全世界有好几百种,很多大公司都有自己的RTOS,lucent的还是免费的呢。
高性能但是又不用钱的RTOS,呜呜,象linux那样?看来我们是该想点办法了啊。
其实一个实用的RTOS,除了本身OS核心的性能要好之外,还有开发工具的好坏、编译器、调试器之类的,调过单片机程序的哥们一定很有感触吧。更重要的还有现在日新月异的各种新技术要往RTOS上面加。。。比如tcp/ip以及这么多的新的网络协议(比如internet 2),web/browser,java(呵呵,不能叫“新”了)
那么多RTOS,你会问,我们怎么办呢?其实学了一种,别的也就大同小异了。还有一个概念就是,应用层的程序和RTOS之间用一个虚拟的接口接起来,以后无论你移植到哪个RTOS都方便得很,而且软件可以在虚拟的接口上面先调试,在硬件板子还没有出来之前软件就可以先调试了。开发RTOS和使用RTOS是两件事。使用RTOS开发的应用程序和RTOS是一起烧进FLSH芯片里面去使用,相当于你使用了RTOS厂商的BIN代码。
说起好坏吗,其实,vxWorks要好一些,可能;不知道以前国内研究所一直用的VRTX是不是都被vxworks所替代了呢。据说因为VRTX是最早商业化的RTOS,60年代就开始卖了,所以呢,全是汇编,改都改不过来,还有就是对TCP/IP的支持一直不好,vxWorks是从VRTX公司出来的人做的,号称make VrtX Works!,所以就有了vxWorks的名字。
nuclear是卖源代码的,而且不卖licence,就是说,你设计了一台路由器,生产的时候不用为你的每一台路由器都付30美圆的licence费用给nuclear的那个公司。
QNX和WinCE都似乎更注重于GUI图形界面方面的东西,当然,QNX好象还号称在别的方面也很出色,它是一家加拿大的公司做的。QNX我曾经有一张DEMO盘,1.44M的小盘,用它启动,就能够实现图形界面和MODEM拨号上网。(偶现在懒得去找那张DEMO盘了,实在想要就发个mail给我,偶去找来给你,在学校FTP那个应该也是,我没用过)但是请别以为QNX就是用在一般DESKTOP PC机上的啊。QNX是在X86体系上面开发出来的,这和别的RTOS不一样,别的好多RTOS都是从68K的CPU上面开发成熟,然后再移植到X86体系上面来的(对68K不熟悉?这在嵌入式开发里面用的很广泛啊,motorola公司的,VME上面用的太多了),但是QNX就是直接在X86上面开发的然后近年才在68K等CPU上面能用。WinCE么,刚出来的时候还是soft realtime,不是hard realtime,(不知道这个概念?在那本“入门书”上面有!),所以一开始的时候大家就很鄙视WinCE,觉得。。。//hehe。。。但是,你看看现在WinCE那浩大声势?哈哈
pSOS吗,和vxWorks一起,是最最成熟的RTOS啦,打个比方,用pSOS和vxWorks来开发路由器、交换机、大型电讯设备、卫星通讯设备、航天器、军事控制设备,那是最合适的啦,您知道吗,有些东西是不能死锁的,稳定性是第一位的,比如747掉下来就死翘翘了:)当然啦,还有系统硬件设计上面的问题,比如双机热备份冗余设计之类的,不然电话交换机一坏,电讯局就整天挨批啦!那么QNX和WinCE呢,用来设计机顶盒、手持设备(手掌电脑、手机)、GPS设备(?)之类的需要漂漂界面的地方。
以上介绍的都是要卖钱的RTOS,估摸着您一般会买不起:(
穷人的RTOS在哪里?ucOS就是了,免费的,在学校FTP站点有人放过,不过好象不全;支持好多单片机、甚至支持DSP!还有eCOS在学校FTP也有热心人下好了,但是可惜不支持X86。免费的还有好几种呢,一种是美国军方以前用的叫什么了(RTEMS?错了)有几个站点,比如www.ucos-ii.com还有。。忘了!你如果IP能出国,去那个叫Alxxxx的搜索引擎找找看,比yahoo好多了!Yahoo上面也有那个Alxxxx的连接。
RTOS在全世界有好几百种,很多大公司都有自己的RTOS,lucent的还是免费的呢。
高性能但是又不用钱的RTOS,呜呜,象linux那样?看来我们是该想点办法了啊。
其实一个实用的RTOS,除了本身OS核心的性能要好之外,还有开发工具的好坏、编译器、调试器之类的,调过单片机程序的哥们一定很有感触吧。更重要的还有现在日新月异的各种新技术要往RTOS上面加。。。比如tcp/ip以及这么多的新的网络协议(比如internet 2),web/browser,java(呵呵,不能叫“新”了)
那么多RTOS,你会问,我们怎么办呢?其实学了一种,别的也就大同小异了。还有一个概念就是,应用层的程序和RTOS之间用一个虚拟的接口接起来,以后无论你移植到哪个RTOS都方便得很,而且软件可以在虚拟的接口上面先调试,在硬件板子还没有出来之前软件就可以先调试了。开发RTOS和使用RTOS是两件事。使用RTOS开发的应用程序和RTOS是一起烧进FLSH芯片里面去使用,相当于你使用了RTOS厂商的BIN代码。
2008年11月25日星期二
About Google Code Jam.
Do you enjoy solving tough problems and grappling with technical challenges? Then enter Google Code Jam!
Google Code Jam is a coding competition in which professional and student programmers are asked to solve complex algorithmic challenges in a limited amount of time. The contest is all-inclusive: Google Code Jam lets you program in the coding language and development environment of your choice.
Google Code Jam begins in July and continues in August, when you will compete in online rounds against contestants from around the world. The Top 500 participants will advance to onsite competitions at a local Google office to compete against those in their region (Asia Pacific; Europe, Middle East and Africa; and the Americas). The Top 100 will participate in the final round at the Google Headquarters in Mountain View, California on Friday, November 14.
Don't be left out! Make sure to register between June 17 and July 17, and show your coding creativity in Google Code Jam.
Google Code Jam is a coding competition in which professional and student programmers are asked to solve complex algorithmic challenges in a limited amount of time. The contest is all-inclusive: Google Code Jam lets you program in the coding language and development environment of your choice.
Google Code Jam begins in July and continues in August, when you will compete in online rounds against contestants from around the world. The Top 500 participants will advance to onsite competitions at a local Google office to compete against those in their region (Asia Pacific; Europe, Middle East and Africa; and the Americas). The Top 100 will participate in the final round at the Google Headquarters in Mountain View, California on Friday, November 14.
Don't be left out! Make sure to register between June 17 and July 17, and show your coding creativity in Google Code Jam.
IT开发的75条管理方法
1. 你们的项目组使用源代码管理工具了么?
应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。
2. 你们的项目组使用缺陷管理系统了么?
应该用。ClearQuest太复杂,我的推荐是BugZilla。
3. 你们的测试组还在用Word写测试用例么?
不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test Manager,也可以
是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。
4. 你们的项目组有没有建立一个门户网站?
要有一个门户网站,用来放Contact Info、Baselined Schedule、News等等。推荐Sharepoint
Portal Server 2003来实现,15分钟就搞定。买不起SPS 2003可以用WSS (Windows Sharepoint
Service)。
5. 你们的项目组用了你能买到最好的工具么?
应该用尽量好的工具来工作。比如,应该用VS.NET而不是Notepad来写C#。用Notepad写程序多
半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好的”。
6. 你们的程序员工作在安静的环境里么?
需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。
7. 你们的员工每个人都有一部电话么?
需要每人一部电话。而且电话最好是带留言功能的。当然,上这么一套带留言电话系统开销不
小。不过至少每人一部电话要有,千万别搞得经常有人站起来喊:“某某某电话”。《人件》
里面就强烈谴责这种做法。
8. 你们每个人都知道出了问题应该找谁么?
应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续Dispatch给其他人
。
9. 你遇到过有人说“我以为…”么?
要消灭“我以为”。Never assume anything。
10. 你们的项目组中所有的人都坐在一起么?
需要。我反对Virtual Team,也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好
坐在一起,好处多得不得了。
11. 你们的进度表是否反映最新开发进展情况?
应该反映。但是,应该用Baseline的方法来管理进度表:维护一份稳定的Schedule,再维护一
份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手
段。
12. 你们的工作量是先由每个人自己估算的么?
应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有其他原因,比
如政治任务工期固定等。
13. 你们的开发人员从项目一开始就加班么?
不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不合理。当然,
一些对日软件外包必须天天加班,那属于剥削的范畴。
14. 你们的项目计划中Buffer Time是加在每个小任务后面的么?
不要。Buffer Time加在每个小任务后面,很容易轻易的就被消耗掉。Buffer Time要整段的加
在一个Milestone或者checkpoint前面。
15. 值得再多花一些时间,从95%做到100%好值得,非常值得。
尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。
16. 登记新缺陷时,是否写清了重现步骤?
要。这属于Dev和Test之间的沟通手段。面对面沟通需要,详细填写Repro Steps也需要。
17. 写新代码前会把已知缺陷解决么?要。每个人的缺陷不能超过10个或15个,否则必须先解
决老的bug才能继续写新代码。
18. 你们对缺陷的轻重缓急有事先的约定么?
必须有定义。Severity要分1、2、3,约定好:蓝屏和Data Lost算Sev 1,Function Error算
Sev 2,界面上的算Sev 3。但这种约定可以根据产品质量现状适当进行调整。
19. 你们对意见不一的缺陷有三国会议么?必须要有。要有一个明确的决策过程。这类似于CCB
(Change Control Board)的概念。
20. 所有的缺陷都是由登记的人最后关闭的么?
Bug应该由Opener关闭。Dev不能私自关闭Bug。
21. 你们的程序员厌恶修改老的代码么?
厌恶是正常的。解决方法是组织Code Review,单独留出时间来。XP也是一个方法。
22. 你们项目组有Team Morale Activity么?
每个月都要搞一次,吃饭、唱歌、Outing、打球、开卡丁车等等,一定要有。不要剩这些钱。
23. 你们项目组有自己的Logo么?
要有自己的Logo。至少应该有自己的Codename。
24. 你们的员工有印有公司Logo的T-Shirt么?
要有。能增强归属感。当然,T-Shirt要做的好看一些,最好用80支的棉来做。别没穿几次就破
破烂烂的。
25. 总经理至少每月参加次项目组会议要的。
要让team member觉得高层关注这个项目。
26. 你们是给每个Dev开一个分支么?
反对。Branch的管理以及Merge的工作量太大,而且容易出错。
27. 有人长期不Check-In代码么?
不可以。对大部分项目来说,最多两三天就应该Check-In。
28. 在Check-In代码时都填写注释了么?
要写的,至少一两句话,比如“解决了Bug No.225”。如果往高处拔,这也算做“配置审计”
的一部分。
29. 有没有设定每天Check-In的最后期限?
要的,要明确Check-In Deadline。否则会Build Break。
30. 你们能把所有源码一下子编译成安装文件吗?
要的。这是每日编译(Daily Build)的基础。而且必须要能够做成自动的。
31. 你们的项目组做每日编译么?
当然要做。有三样东西是软件项目/产品开发必备的:1. bug management; 2. source
control; 3. daily build。
32. 你们公司有没有积累一个项目风险列表?
要。Risk Inventory。否则,下个项目开始的时候,又只能拍脑袋分析Risk了。
33. 设计越简单越好越简单越好。
设计时候多一句话,将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope
management。
34. 尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。BizTalk和Sharepoint就
是最好的例子,有这两个作为基础,可以把起点提高很多。或者可以尽量多用现成的Control之
类的。或者尽量用XML,而不是自己去Parse一个文本文件;尽量用RegExp,而不是自己从头操
作字符串,等等等等。这就是“软件复用”的体现。
35. 你们会隔一段时间就停下来夯实代码么?
要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月增强安全。Btw
,“夯”这个字念“hang”,第一声。
36. 你们的项目组每个人都写Daily Report么?
要写。五分钟就够了,写10句话左右,告诉自己小组的人今天我干了什么。一则为了沟通,二
则鞭策自己(要是游手好闲一天,自己都会不好意思写的)。
37. 你们的项目经理会发出Weekly Report么?
要。也是为了沟通。内容包括目前进度,可能的风险,质量状况,各种工作的进展等。
38. 你们项目组是否至少每周全体开会一次?
要。一定要开会。程序员讨厌开会,但每个礼拜开会时间加起来至少应该有4小时。包括team
meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。
39. 你们项目组的会议、讨论都有记录么?
会前发meeting request和agenda,会中有人负责主持和记录,会后有人负责发meeting
minutes,这都是effective meeting的要点。而且,每个会议都要形成agreements和action
items。
40. 其他部门知道你们项目组在干什么么?
要发一些Newsflash给整个大组织。Show your team’s value。否则,当你坐在电梯里面,其
他部门的人问:“你们在干嘛”,你回答“ABC项目”的时候,别人全然不知,那种感觉不太好
。
41. 通过Email进行所有正式沟通
Email的好处是免得抵赖。但也要避免矫枉过正,最好的方法是先用电话和当面说,然后Email
来确认。
42. 为项目组建立多个Mailing Group
如果在AD+Exchange里面,就建Distribution List。比如,我会建ABC Project Core Team,
ABC Project Dev Team,ABC Project All Testers,ABC Project Extended Team等等。这样
发起Email来方便,而且能让该收到email的人都收到、不该收到不被骚扰。
43. 每个人都知道哪里可以找到全部的文档么?
应该每个人都知道。这叫做知识管理(Knowledge Management)。最方便的就是把文档放在一
个集中的File Share,更好的方法是用Sharepoint。
44. 你做决定、做变化时,告诉大家原因了么?
要告诉大家原因。Empower team member的手段之一是提供足够的information,这是MSF一开篇
的几个原则之一。的确如此,tell me why是人之常情,tell me why了才能有understanding。
中国人做事喜欢搞限制,限制信息,似乎能够看到某一份文件的人就是有身份的人。大错特错
。权威、权力,不在于是不是能access information/data,而在于是不是掌握资源。
45. Stay agile and expect change 要这样。
需求一定会变的,已经写好的代码一定会被要求修改的。做好心理准备,对change不要抗拒,
而是expect change。
46. 你们有没有专职的软件测试人员?
要有专职测试。如果人手不够,可以peer test,交换了测试。千万别自己测试自己的。
47. 你们的测试有一份总的计划来规定做什么和怎么做么?这就是Test Plan。要不要做性能测
试?要不要做Usability测试?什么时候开始测试性能?测试通过的标准是什么?用什么手段,
自动的还是手动的?这些问题需要用Test Plan来回答。
48. 你是先写Test Case然后再测试的么?
应该如此。应该先设计再编程、先test case再测试。当然,事情是灵活的。我有时候在做第一
遍测试的同时补上test case。至于先test case再开发,我不喜欢,因为不习惯,太麻烦,至
于别人推荐,那试试看也无妨。
49. 你是否会为各种输入组合创建测试用例?
不要,不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动生成各种边界条件
的组合——但要想清楚,你是否有时间去运行那么多test case。
50. 你们的程序员能看到测试用例么?
要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的:提高质量。
51. 你们是否随便抓一些人来做易用性测试?
要这么做。自己看自己写的程序界面,怎么看都是顺眼的。这叫做审美疲劳——臭的看久了也
就不臭了,不方便的永久了也就习惯了。
52. 你对自动测试的期望正确么?
别期望太高。依我看,除了性能测试以外,还是暂时先忘掉“自动测试”吧,忘掉WinRunner和
LoadRunner吧。对于国内的软件测试的现状来说,只能“矫枉必须过正”了。
53. 你们的性能测试是等所有功能都开发完才做的么?
不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正,早死早升天。
54. 你注意到测试中的杀虫剂效应了么?
虫子有抗药性,Bug也有。发现的新Bug越来越少是正常的。这时候,最好大家交换一下测试的
area,或者用用看其他工具和手法,就又会发现一些新bug了。
55. 你们项目组中有人能说出产品的当前整体质量情况么?
要有。当老板问起这个产品目前质量如何,Test Lead/Manager应该负责回答。
56. 你们有单元测试么?
单元测试要有的。不过没有单元测试也不是不可以,我做过没有单元测试的项目,也做成功了
——可能是侥幸,可能是大家都是熟手的关系。还是那句话,软件工程是非常实践、非常工程
、非常灵活的一套方法,某些方法在某些情况下会比另一些方法好,反之亦然。
57. 你们的程序员是写完代码就扔过墙的么?
大忌。写好一块程序以后,即便不做单元测试,也应该自己先跑一跑。虽然有了专门的测试人
员,做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法,程序太烂
的话,测试有权踢回去。
58. 你们的程序中所有的函数都有输入检查么?
不要。虽然说做输入检查是write secure code的要点,但不要做太多的输入检查,有些内部函
数之间的参数传递就不必检查输入了,省点功夫。同样的道理,未必要给所有的函数都写注释
。写一部分主要的就够了。
59. 产品有统一的错误处理机制和报错界面么?
要有。最好能有统一的error message,然后每个error message都带一个error number。这样
,用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因,就像
SQL Server的错误那样。同样,ASP.NET也要有统一的Exception处理。可以参考有关的
Application Block。
60. 你们有统一的代码书写规范么?
要有。Code Convention很多,搞一份来发给大家就可以了。当然,要是有FxCop这种工具来检
查代码就更好了。
61. 你们的每个人都了解项目的商业意义么?
要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息
化作先驱者,或者时不时的告诉team member,这个项目能够为某某某国家部门每年节省多少多
少百万的纳税人的钱,这样就有动力了。平凡的事情也是可以有个崇高的目标的。
62. 产品各部分的界面和操作习惯一致么?
要这样。要让用户觉得整个程序好像是一个人写出来的那样。
63. 有可以作为宣传亮点的Cool Feature么?
要。这是增强团队凝聚力、信心的。而且,“一俊遮百丑”,有亮点就可以掩盖一些问题。这
样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。或者说,cool feature或
者说亮点可以作为质量问题的一个事后弥补措施。
64. 尽可能缩短产品的启动时间要这样。
软件启动时间(Start-Up time)是客户对性能好坏的第一印象。
65. 不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误:太看重性能、
稳定性、存储效率,但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾,协调这
些是PM的工作。
66. 你们根据详细产品功能说明书做开发么?
要这样。要有设计才能开发,这是必须的。设计文档,应该说清楚这个产品会怎么运行,应该
采取一些讲故事的方法。设计的时候千万别钻细节,别钻到数据库、代码等具体实现里面去,
那些是后面的事情,一步步来不能着急。
67. 开始开发和测试之前每个人都仔细审阅功能设计么?
要做。Function Spec review是用来统一思想的。而且,review过以后形成了一致意见,将来
再也没有人可以说“你看,当初我就是反对这么设计的,现在吃苦头了吧”
68. 所有人都始终想着The Whole Image么?要这样。项目里面每个人虽然都只是在制造一片叶
子,但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领,反
对过分的把软件制造看成流水线、车间。参见第61条。
69. Dev工作的划分是单纯纵向或横向的么?
不能单纯的根据功能模块分,或者单纯根据表现层、中间层、数据库层分。我推荐这么做:首
先根据功能模块分,然后每个“层”都有一个Owner来Review所有人的设计和代码,保证
consistency。
70. 你们的程序员写程序设计说明文档么?
要。不过我听说微软的程序员1999年以前也不写。所以说,写不写也不是绝对的,偷懒有时候
也是可以的。参见第56条。
71. 你在招人面试时让他写一段程序么?
要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等
,既不偏向过于考算法,也不偏向过于考特定的API。
72. 你们有没有技术交流讲座?
要的。每一两个礼拜搞一次内部的Tech Talk或者Chalk Talk吧。让组员之间分享技术心得,这
笔花钱送到外面去培训划算。
73. 你们的程序员都能专注于一件事情么?
要让程序员专注一件事。例如说,一个部门有两个项目和10个人,一种方法是让10个人同时参
加两个项目,每个项目上每个人都花50%时间;另一种方法是5 个人去项目A,5个人去项目B,
每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂,但很多领导实践起
来就把属下当成可以任意拆分的资源了。
74. 你们的程序员会夸大完成某项工作所需要的时间么?
会的,这是常见的,尤其会在项目后期夸大做某个change所需要的时间,以次来抵制change。
解决的方法是坐下来慢慢磨,磨掉程序员的逆反心理,一起分析,并把估算时间的颗粒度变小
。
75. 尽量不要用Virtual Heads 最好不要用Virtual Heads。
Virtual heads意味着resource is not secure,shared resource会降低resource的工作效率
,容易增加出错的机会,会让一心二用的人没有太多时间去review spec、review design。一
个dedicated的人,要强过两个只能投入50%时间和精力的人。我是吃过亏的:7个part time的
tester,发现的Bug和干的活,加起来还不如两个full-time的。参见第73条。73条是针对程序
员的,75条是针对 Resource Manager的。
我现在做的项目是采用如下方法管理的:
BD:基础设计。在这个文档里,我们把程序的界面全部画出来;界面上的功能全部描述完整。
如:一个查询界面的条件是什么,查询出来的结果如何显示等等。
FD:功能设计。在这个文档里,对BD阶段的各个页面里包含的数据逻辑处理做说明。如:查询
时调用的数据处理函数该如何设计,入口参数,返回参数,关联的表等等各方面的说明。
因为程序的界面已经定了,数据处理逻辑也定了。所以,就开始编码阶段。当编码过程中发生
什么问题,程序的整个功能还是必须满足BD和FD设计文档中的要求。程序中的各种疑问,都以
BD和FD文档中的说明为准。
基本上我们一个小项目的开发周期为2个月,BD为2-3周,FD1周,PG(编程)2-3周,CT(测试)2
周。
测试完毕后交出去的就是成品,基本上不会再有系统要求变更的问题了。如果有变更,且不在
BD设计范围内,那就是新增需求。就是一个新项目了。[/size]
应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。
2. 你们的项目组使用缺陷管理系统了么?
应该用。ClearQuest太复杂,我的推荐是BugZilla。
3. 你们的测试组还在用Word写测试用例么?
不要用Word写测试用例(Test Case)。应该用一个专门的系统,可以是Test Manager,也可以
是自己开发一个ASP.NET的小网站。主要目的是Track和Browse。
4. 你们的项目组有没有建立一个门户网站?
要有一个门户网站,用来放Contact Info、Baselined Schedule、News等等。推荐Sharepoint
Portal Server 2003来实现,15分钟就搞定。买不起SPS 2003可以用WSS (Windows Sharepoint
Service)。
5. 你们的项目组用了你能买到最好的工具么?
应该用尽量好的工具来工作。比如,应该用VS.NET而不是Notepad来写C#。用Notepad写程序多
半只是一种炫耀。但也要考虑到经费,所以说是“你能买到最好的”。
6. 你们的程序员工作在安静的环境里么?
需要安静环境。这点极端重要,而且要保证每个人的空间大于一定面积。
7. 你们的员工每个人都有一部电话么?
需要每人一部电话。而且电话最好是带留言功能的。当然,上这么一套带留言电话系统开销不
小。不过至少每人一部电话要有,千万别搞得经常有人站起来喊:“某某某电话”。《人件》
里面就强烈谴责这种做法。
8. 你们每个人都知道出了问题应该找谁么?
应该知道。任何一个Feature至少都应该有一个Owner,当然,Owner可以继续Dispatch给其他人
。
9. 你遇到过有人说“我以为…”么?
要消灭“我以为”。Never assume anything。
10. 你们的项目组中所有的人都坐在一起么?
需要。我反对Virtual Team,也反对Dev在美国、Test在中国这种开发方式。能坐在一起就最好
坐在一起,好处多得不得了。
11. 你们的进度表是否反映最新开发进展情况?
应该反映。但是,应该用Baseline的方法来管理进度表:维护一份稳定的Schedule,再维护一
份最新更改。Baseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手
段。
12. 你们的工作量是先由每个人自己估算的么?
应该让每个人自己估算。要从下而上估算工作量,而不是从上往下分派。除非有其他原因,比
如政治任务工期固定等。
13. 你们的开发人员从项目一开始就加班么?
不要这样。不要一开始就搞疲劳战。从项目一开始就加班,只能说明项目进度不合理。当然,
一些对日软件外包必须天天加班,那属于剥削的范畴。
14. 你们的项目计划中Buffer Time是加在每个小任务后面的么?
不要。Buffer Time加在每个小任务后面,很容易轻易的就被消耗掉。Buffer Time要整段的加
在一个Milestone或者checkpoint前面。
15. 值得再多花一些时间,从95%做到100%好值得,非常值得。
尤其当项目后期人困马乏的时候,要坚持。这会给产品带来质的区别。
16. 登记新缺陷时,是否写清了重现步骤?
要。这属于Dev和Test之间的沟通手段。面对面沟通需要,详细填写Repro Steps也需要。
17. 写新代码前会把已知缺陷解决么?要。每个人的缺陷不能超过10个或15个,否则必须先解
决老的bug才能继续写新代码。
18. 你们对缺陷的轻重缓急有事先的约定么?
必须有定义。Severity要分1、2、3,约定好:蓝屏和Data Lost算Sev 1,Function Error算
Sev 2,界面上的算Sev 3。但这种约定可以根据产品质量现状适当进行调整。
19. 你们对意见不一的缺陷有三国会议么?必须要有。要有一个明确的决策过程。这类似于CCB
(Change Control Board)的概念。
20. 所有的缺陷都是由登记的人最后关闭的么?
Bug应该由Opener关闭。Dev不能私自关闭Bug。
21. 你们的程序员厌恶修改老的代码么?
厌恶是正常的。解决方法是组织Code Review,单独留出时间来。XP也是一个方法。
22. 你们项目组有Team Morale Activity么?
每个月都要搞一次,吃饭、唱歌、Outing、打球、开卡丁车等等,一定要有。不要剩这些钱。
23. 你们项目组有自己的Logo么?
要有自己的Logo。至少应该有自己的Codename。
24. 你们的员工有印有公司Logo的T-Shirt么?
要有。能增强归属感。当然,T-Shirt要做的好看一些,最好用80支的棉来做。别没穿几次就破
破烂烂的。
25. 总经理至少每月参加次项目组会议要的。
要让team member觉得高层关注这个项目。
26. 你们是给每个Dev开一个分支么?
反对。Branch的管理以及Merge的工作量太大,而且容易出错。
27. 有人长期不Check-In代码么?
不可以。对大部分项目来说,最多两三天就应该Check-In。
28. 在Check-In代码时都填写注释了么?
要写的,至少一两句话,比如“解决了Bug No.225”。如果往高处拔,这也算做“配置审计”
的一部分。
29. 有没有设定每天Check-In的最后期限?
要的,要明确Check-In Deadline。否则会Build Break。
30. 你们能把所有源码一下子编译成安装文件吗?
要的。这是每日编译(Daily Build)的基础。而且必须要能够做成自动的。
31. 你们的项目组做每日编译么?
当然要做。有三样东西是软件项目/产品开发必备的:1. bug management; 2. source
control; 3. daily build。
32. 你们公司有没有积累一个项目风险列表?
要。Risk Inventory。否则,下个项目开始的时候,又只能拍脑袋分析Risk了。
33. 设计越简单越好越简单越好。
设计时候多一句话,将来可能就带来无穷无尽的烦恼。应该从一开始就勇敢的砍。这叫scope
management。
34. 尽量利用现有的产品、技术、代码千万别什么东西都自己Coding。BizTalk和Sharepoint就
是最好的例子,有这两个作为基础,可以把起点提高很多。或者可以尽量多用现成的Control之
类的。或者尽量用XML,而不是自己去Parse一个文本文件;尽量用RegExp,而不是自己从头操
作字符串,等等等等。这就是“软件复用”的体现。
35. 你们会隔一段时间就停下来夯实代码么?
要。最好一个月左右一次。传言去年年初Windows组在Stevb的命令下停过一个月增强安全。Btw
,“夯”这个字念“hang”,第一声。
36. 你们的项目组每个人都写Daily Report么?
要写。五分钟就够了,写10句话左右,告诉自己小组的人今天我干了什么。一则为了沟通,二
则鞭策自己(要是游手好闲一天,自己都会不好意思写的)。
37. 你们的项目经理会发出Weekly Report么?
要。也是为了沟通。内容包括目前进度,可能的风险,质量状况,各种工作的进展等。
38. 你们项目组是否至少每周全体开会一次?
要。一定要开会。程序员讨厌开会,但每个礼拜开会时间加起来至少应该有4小时。包括team
meeting, spec review meeting, bug triage meeting。千万别大家闷头写code。
39. 你们项目组的会议、讨论都有记录么?
会前发meeting request和agenda,会中有人负责主持和记录,会后有人负责发meeting
minutes,这都是effective meeting的要点。而且,每个会议都要形成agreements和action
items。
40. 其他部门知道你们项目组在干什么么?
要发一些Newsflash给整个大组织。Show your team’s value。否则,当你坐在电梯里面,其
他部门的人问:“你们在干嘛”,你回答“ABC项目”的时候,别人全然不知,那种感觉不太好
。
41. 通过Email进行所有正式沟通
Email的好处是免得抵赖。但也要避免矫枉过正,最好的方法是先用电话和当面说,然后Email
来确认。
42. 为项目组建立多个Mailing Group
如果在AD+Exchange里面,就建Distribution List。比如,我会建ABC Project Core Team,
ABC Project Dev Team,ABC Project All Testers,ABC Project Extended Team等等。这样
发起Email来方便,而且能让该收到email的人都收到、不该收到不被骚扰。
43. 每个人都知道哪里可以找到全部的文档么?
应该每个人都知道。这叫做知识管理(Knowledge Management)。最方便的就是把文档放在一
个集中的File Share,更好的方法是用Sharepoint。
44. 你做决定、做变化时,告诉大家原因了么?
要告诉大家原因。Empower team member的手段之一是提供足够的information,这是MSF一开篇
的几个原则之一。的确如此,tell me why是人之常情,tell me why了才能有understanding。
中国人做事喜欢搞限制,限制信息,似乎能够看到某一份文件的人就是有身份的人。大错特错
。权威、权力,不在于是不是能access information/data,而在于是不是掌握资源。
45. Stay agile and expect change 要这样。
需求一定会变的,已经写好的代码一定会被要求修改的。做好心理准备,对change不要抗拒,
而是expect change。
46. 你们有没有专职的软件测试人员?
要有专职测试。如果人手不够,可以peer test,交换了测试。千万别自己测试自己的。
47. 你们的测试有一份总的计划来规定做什么和怎么做么?这就是Test Plan。要不要做性能测
试?要不要做Usability测试?什么时候开始测试性能?测试通过的标准是什么?用什么手段,
自动的还是手动的?这些问题需要用Test Plan来回答。
48. 你是先写Test Case然后再测试的么?
应该如此。应该先设计再编程、先test case再测试。当然,事情是灵活的。我有时候在做第一
遍测试的同时补上test case。至于先test case再开发,我不喜欢,因为不习惯,太麻烦,至
于别人推荐,那试试看也无妨。
49. 你是否会为各种输入组合创建测试用例?
不要,不要搞边界条件组合。当心组合爆炸。有很多test case工具能够自动生成各种边界条件
的组合——但要想清楚,你是否有时间去运行那么多test case。
50. 你们的程序员能看到测试用例么?
要。让Dev看到Test Case吧。我们都是为了同一个目的走到一起来的:提高质量。
51. 你们是否随便抓一些人来做易用性测试?
要这么做。自己看自己写的程序界面,怎么看都是顺眼的。这叫做审美疲劳——臭的看久了也
就不臭了,不方便的永久了也就习惯了。
52. 你对自动测试的期望正确么?
别期望太高。依我看,除了性能测试以外,还是暂时先忘掉“自动测试”吧,忘掉WinRunner和
LoadRunner吧。对于国内的软件测试的现状来说,只能“矫枉必须过正”了。
53. 你们的性能测试是等所有功能都开发完才做的么?
不能这样。性能测试不能被归到所谓的“系统测试”阶段。早测早改正,早死早升天。
54. 你注意到测试中的杀虫剂效应了么?
虫子有抗药性,Bug也有。发现的新Bug越来越少是正常的。这时候,最好大家交换一下测试的
area,或者用用看其他工具和手法,就又会发现一些新bug了。
55. 你们项目组中有人能说出产品的当前整体质量情况么?
要有。当老板问起这个产品目前质量如何,Test Lead/Manager应该负责回答。
56. 你们有单元测试么?
单元测试要有的。不过没有单元测试也不是不可以,我做过没有单元测试的项目,也做成功了
——可能是侥幸,可能是大家都是熟手的关系。还是那句话,软件工程是非常实践、非常工程
、非常灵活的一套方法,某些方法在某些情况下会比另一些方法好,反之亦然。
57. 你们的程序员是写完代码就扔过墙的么?
大忌。写好一块程序以后,即便不做单元测试,也应该自己先跑一跑。虽然有了专门的测试人
员,做开发的人也不可以一点测试都不做。微软还有Test Release Document的说法,程序太烂
的话,测试有权踢回去。
58. 你们的程序中所有的函数都有输入检查么?
不要。虽然说做输入检查是write secure code的要点,但不要做太多的输入检查,有些内部函
数之间的参数传递就不必检查输入了,省点功夫。同样的道理,未必要给所有的函数都写注释
。写一部分主要的就够了。
59. 产品有统一的错误处理机制和报错界面么?
要有。最好能有统一的error message,然后每个error message都带一个error number。这样
,用户可以自己根据error number到user manual里面去看看错误的具体描述和可能原因,就像
SQL Server的错误那样。同样,ASP.NET也要有统一的Exception处理。可以参考有关的
Application Block。
60. 你们有统一的代码书写规范么?
要有。Code Convention很多,搞一份来发给大家就可以了。当然,要是有FxCop这种工具来检
查代码就更好了。
61. 你们的每个人都了解项目的商业意义么?
要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在为中国某某行业的信息
化作先驱者,或者时不时的告诉team member,这个项目能够为某某某国家部门每年节省多少多
少百万的纳税人的钱,这样就有动力了。平凡的事情也是可以有个崇高的目标的。
62. 产品各部分的界面和操作习惯一致么?
要这样。要让用户觉得整个程序好像是一个人写出来的那样。
63. 有可以作为宣传亮点的Cool Feature么?
要。这是增强团队凝聚力、信心的。而且,“一俊遮百丑”,有亮点就可以掩盖一些问题。这
样,对于客户来说,会感觉产品从质量角度来说还是acceptable的。或者说,cool feature或
者说亮点可以作为质量问题的一个事后弥补措施。
64. 尽可能缩短产品的启动时间要这样。
软件启动时间(Start-Up time)是客户对性能好坏的第一印象。
65. 不要过于注重内在品质而忽视了第一眼的外在印象程序员容易犯这个错误:太看重性能、
稳定性、存储效率,但忽视了外在感受。而高层经理、客户正相反。这两方面要兼顾,协调这
些是PM的工作。
66. 你们根据详细产品功能说明书做开发么?
要这样。要有设计才能开发,这是必须的。设计文档,应该说清楚这个产品会怎么运行,应该
采取一些讲故事的方法。设计的时候千万别钻细节,别钻到数据库、代码等具体实现里面去,
那些是后面的事情,一步步来不能着急。
67. 开始开发和测试之前每个人都仔细审阅功能设计么?
要做。Function Spec review是用来统一思想的。而且,review过以后形成了一致意见,将来
再也没有人可以说“你看,当初我就是反对这么设计的,现在吃苦头了吧”
68. 所有人都始终想着The Whole Image么?要这样。项目里面每个人虽然都只是在制造一片叶
子,但每个人都应该知道自己在制造的那片叶子所在的树是怎么样子的。我反对软件蓝领,反
对过分的把软件制造看成流水线、车间。参见第61条。
69. Dev工作的划分是单纯纵向或横向的么?
不能单纯的根据功能模块分,或者单纯根据表现层、中间层、数据库层分。我推荐这么做:首
先根据功能模块分,然后每个“层”都有一个Owner来Review所有人的设计和代码,保证
consistency。
70. 你们的程序员写程序设计说明文档么?
要。不过我听说微软的程序员1999年以前也不写。所以说,写不写也不是绝对的,偷懒有时候
也是可以的。参见第56条。
71. 你在招人面试时让他写一段程序么?
要的。我最喜欢让人做字符串和链表一类的题目。这种题目有很多循环、判断、指针、递归等
,既不偏向过于考算法,也不偏向过于考特定的API。
72. 你们有没有技术交流讲座?
要的。每一两个礼拜搞一次内部的Tech Talk或者Chalk Talk吧。让组员之间分享技术心得,这
笔花钱送到外面去培训划算。
73. 你们的程序员都能专注于一件事情么?
要让程序员专注一件事。例如说,一个部门有两个项目和10个人,一种方法是让10个人同时参
加两个项目,每个项目上每个人都花50%时间;另一种方法是5 个人去项目A,5个人去项目B,
每个人都100%在某一个项目上。我一定选后面一种。这个道理很多人都懂,但很多领导实践起
来就把属下当成可以任意拆分的资源了。
74. 你们的程序员会夸大完成某项工作所需要的时间么?
会的,这是常见的,尤其会在项目后期夸大做某个change所需要的时间,以次来抵制change。
解决的方法是坐下来慢慢磨,磨掉程序员的逆反心理,一起分析,并把估算时间的颗粒度变小
。
75. 尽量不要用Virtual Heads 最好不要用Virtual Heads。
Virtual heads意味着resource is not secure,shared resource会降低resource的工作效率
,容易增加出错的机会,会让一心二用的人没有太多时间去review spec、review design。一
个dedicated的人,要强过两个只能投入50%时间和精力的人。我是吃过亏的:7个part time的
tester,发现的Bug和干的活,加起来还不如两个full-time的。参见第73条。73条是针对程序
员的,75条是针对 Resource Manager的。
我现在做的项目是采用如下方法管理的:
BD:基础设计。在这个文档里,我们把程序的界面全部画出来;界面上的功能全部描述完整。
如:一个查询界面的条件是什么,查询出来的结果如何显示等等。
FD:功能设计。在这个文档里,对BD阶段的各个页面里包含的数据逻辑处理做说明。如:查询
时调用的数据处理函数该如何设计,入口参数,返回参数,关联的表等等各方面的说明。
因为程序的界面已经定了,数据处理逻辑也定了。所以,就开始编码阶段。当编码过程中发生
什么问题,程序的整个功能还是必须满足BD和FD设计文档中的要求。程序中的各种疑问,都以
BD和FD文档中的说明为准。
基本上我们一个小项目的开发周期为2个月,BD为2-3周,FD1周,PG(编程)2-3周,CT(测试)2
周。
测试完毕后交出去的就是成品,基本上不会再有系统要求变更的问题了。如果有变更,且不在
BD设计范围内,那就是新增需求。就是一个新项目了。[/size]
Java虚拟机原理
一、什么是Java虚拟机
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机
Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
3.Java虚拟机支持的数据类型
Java虚拟机支持Java语言的基本数据类型如下:
byte://1字节有符号整数的补码
short://2字节有符号整数的补码
int://4字节有符号整数的补码
long://8字节有符号整数的补码
float://4字节IEEE754单精度浮点数
double://8字节IEEE754双精度浮点数
char://2字节无符号Unicode字符
几乎所有的Java类型检查都是在编译时完成的。上面列出的原始数据类型的数据在Java执行时不需要用硬件标记。*作这些原始数据类型数据的字节码(指令)本身就已经指出了*作数的数据类型,例如iadd、ladd、fadd和dadd指令都是把两个数相加,其*作数类型别是int、long、 float和double。虚拟机没有给boolean(布尔)类型设置单独的指令。boolean型的数据是由integer指令,包括integer 返回来处理的。boolean型的数组则是用byte数组来处理的。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的较旧的计算机,在运行 Java数值计算程序时,可能会非常慢。
虚拟机支持的其它数据类型包括:
object//对一个Javaobject(对象)的4字节引用
returnAddress//4字节,用于jsr/ret/jsr-w/ret-w指令
注:Java数组被当作object处理。
虚拟机的规范对于object内部的结构没有任何特殊的要求。在Sun公司的实现中,对object的引用是一个句柄,其中包含一对指针:一个指针指向该object的方法表,另一个指向该object的数据。用Java虚拟机的字节码表示的程序应该遵守类型规定。Java虚拟机的实现应拒绝执行违反了类型规定的字节码程序。Java虚拟机由于字节码定义的限制似乎只能运行于32位地址空间的机器上。但是可以创建一个Java虚拟机,它自动地把字节码转换成64位的形式。从Java虚拟机支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,这样使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可
移植性。
二、Java虚拟机体系结构
Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。
1.Java指令集
Java虚拟机支持大约248个字节码。每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。Java指令集相当于Java程序的汇编语言。
Java指令集中的指令包含一个单字节的*作符,用于指定要执行的*作,还有0个或多个*作数,提供*作所需的参数或数据。许多指令没有*作数,仅由一个单字节的*作符构成。 虚拟机的内层循环的执行过程如下:
do{
取一个*作符字节;
根据*作符的值执行一个动作;
}while(程序未结束)
由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中*作数的数量和大小是由*作符决定的。如果*作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为:
第一个字节*256+第二个字节字节码指令流一般只是字节对齐的。指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。
2.寄存器
Java虚拟机的寄存器用于保存机器的运行状态,与微处理器中的某些专用寄存器类似。
Java虚拟机的寄存器有四种:
pc:Java程序计数器。
optop:指向*作数栈顶端的指针。
frame:指向当前执行方法的执行环境的指针。
vars:指向当前执行方法的局部变量区第一个变量的指针。
Java虚拟机
Java虚拟机是栈式的,它不定义或使用寄存器来传递或接受参数,其目的是为了保证指令集的简洁性和实现时的高效性(特别是对于寄存器数目不多的处理器)。
所有寄存器都是32位的。
3.栈
Java虚拟机的栈有三个区域:局部变量区、运行环境区、*作数区。
(1)局部变量区 每个Java方法使用一个固定大小的局部变量集。它们按照与vars寄存器的字偏移量来寻址。局部变量都是32位的。长整数和双精度浮点数占据了两个局部变量的空间,却按照第一个局部变量的索引来寻址。(例如,一个具有索引n的局部变量,如果是一个双精度浮点数,那么它实际占据了索引n和n+1所代表的存储空间。)虚拟机规范并不要求在局部变量中的64位的值是64位对齐的。虚拟机提供了把局部变量中的值装载到*作数栈的指令, 也提供了把*作数栈中的值写入局部变量的指令。
(2)运行环境区 在运行环境中包含的信息用于动态链接,正常的方法返回以及异常传播。
·动态链接
运行环境包括对指向当前类和当前方法的解释器符号表的指针,用于支持方法代码的动态链接。方法的class文件代码在引用要调用的方法和要访问的变量时使用符号。动态链接把符号形式的方法调用翻译成实际方法调用,装载必要的类以解释还没有定义的符号,并把变量访问翻译成与这些变量运行时的存储结构相应的偏移地址。动态链接方法和变量使得方法中使用的其它类的变化不会影响到本程序的代码。
·正常的方法返回
如果当前方法正常地结束了,在执行了一条具有正确类型的返回指令时,调用的方法会得到一个返回值。执行环境在正常返回的情况下用于恢复调用者的寄存器,并把调用者的程序计数器增加一个恰当的数值,以跳过已执行过的方法调用指令,然后在调用者的执行环境中继续执行下去。
·异常和错误传播
异常情况在Java中被称作Error(错误)或Exception(异常),是Throwable类的子类,在程序中的原因是:①动态链接错,如无法找到所需的class文件。②运行时错,如对一个空指针的引用
·程序使用了throw语句。
当异常发生时,Java虚拟机采取如下措施:
·检查与当前方法相联系的catch子句表。每个catch子句包含其有效指令范围,能够处理的异常类型,以及处理异常的代码块地址。
·与异常相匹配的catch子句应该符合下面的条件:造成异常的指令在其指令范围之内,发生的异常类型是其能处理的异常类型的子类型。如果找到了匹配的catch子句,那么系统转移到指定的异常处理块处执行;如果没有找到异常处理块,重复寻找匹配的catch子句的过程,直到当前方法的所有嵌套的 catch子句都被检查过。
·由于虚拟机从第一个匹配的catch子句处继续执行,所以catch子句表中的顺序是很重要的。因为Java代码是结构化的,因此总可以把某个方法的所有的异常处理器都按序排列到一个表中,对任意可能的程序计数器的值,都可以用线性的顺序找到合适的异常处理块,以处理在该程序计数器值下发生的异常情况。
·如果找不到匹配的catch子句,那么当前方法得到一个"未截获异常"的结果并返回到当前方法的调用者,好像异常刚刚在其调用者中发生一样。如果在调用者中仍然没有找到相应的异常处理块,那么这种错误传播将被继续下去。如果错误被传播到最顶层,那么系统将调用一个缺省的异常处理块。
(3)*作数栈区 机器指令只从*作数栈中取*作数,对它们进行*作,并把结果返回到栈中。选择栈结构的原因是:在只有少量寄存器或非通用寄存器的机器(如Intel486)上,也能够高效地模拟虚拟机的行为。*作数栈是32位的。它用于给方法传递参数,并从方法接收结果,也用于支持*作的参数,并保存*作的结果。例如,iadd指令将两个整数相加。相加的两个整数应该是*作数栈顶的两个字。这两个字是由先前的指令压进堆栈的。这两个整数将从堆栈弹出、相加,并把结果压回到*作数栈中。
每个原始数据类型都有专门的指令对它们进行必须的*作。每个*作数在栈中需要一个存储位置,除了long和double型,它们需要两个位置。* 作数只能被适用于其类型的*作符所*作。例如,压入两个int类型的数,如果把它们当作是一个long类型的数则是非法的。在Sun的虚拟机实现中,这个限制由字节码验证器强制实行。但是,有少数*作(*作符dupe和swap),用于对运行时数据区进行*作时是不考虑类型的。
4.无用单元收集堆
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java语言具有无用单元收集能力:它不给程序员显式释放对象的能力。Java不规定具体使用的无用单元收集算法,可以根据系统的需求使用各种各样的算法。
5.方法区
方法区与传统语言中的编译后代码或是Unix进程中的正文段类似。它保存方法代码(编译后的java代码)和符号表。在当前的Java实现中,方法代码不包括在无用单元收集堆中,但计划在将来的版本中实现。每个类文件包含了一个Java类或一个Java界面的编译后的代码。可以说类文件是Java 语言的执行代码文件。为了保证类文件的平台无关性,Java虚拟机规范中对类文件的格式也作了详细的说明。其具体细节请参考Sun公司的Java虚拟机规范。
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机
Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
3.Java虚拟机支持的数据类型
Java虚拟机支持Java语言的基本数据类型如下:
byte://1字节有符号整数的补码
short://2字节有符号整数的补码
int://4字节有符号整数的补码
long://8字节有符号整数的补码
float://4字节IEEE754单精度浮点数
double://8字节IEEE754双精度浮点数
char://2字节无符号Unicode字符
几乎所有的Java类型检查都是在编译时完成的。上面列出的原始数据类型的数据在Java执行时不需要用硬件标记。*作这些原始数据类型数据的字节码(指令)本身就已经指出了*作数的数据类型,例如iadd、ladd、fadd和dadd指令都是把两个数相加,其*作数类型别是int、long、 float和double。虚拟机没有给boolean(布尔)类型设置单独的指令。boolean型的数据是由integer指令,包括integer 返回来处理的。boolean型的数组则是用byte数组来处理的。虚拟机使用IEEE754格式的浮点数。不支持IEEE格式的较旧的计算机,在运行 Java数值计算程序时,可能会非常慢。
虚拟机支持的其它数据类型包括:
object//对一个Javaobject(对象)的4字节引用
returnAddress//4字节,用于jsr/ret/jsr-w/ret-w指令
注:Java数组被当作object处理。
虚拟机的规范对于object内部的结构没有任何特殊的要求。在Sun公司的实现中,对object的引用是一个句柄,其中包含一对指针:一个指针指向该object的方法表,另一个指向该object的数据。用Java虚拟机的字节码表示的程序应该遵守类型规定。Java虚拟机的实现应拒绝执行违反了类型规定的字节码程序。Java虚拟机由于字节码定义的限制似乎只能运行于32位地址空间的机器上。但是可以创建一个Java虚拟机,它自动地把字节码转换成64位的形式。从Java虚拟机支持的数据类型可以看出,Java对数据类型的内部格式进行了严格规定,这样使得各种Java虚拟机的实现对数据的解释是相同的,从而保证了Java的与平台无关性和可
移植性。
二、Java虚拟机体系结构
Java虚拟机由五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。
1.Java指令集
Java虚拟机支持大约248个字节码。每个字节码执行一种基本的CPU运算,例如,把一个整数加到寄存器,子程序转移等。Java指令集相当于Java程序的汇编语言。
Java指令集中的指令包含一个单字节的*作符,用于指定要执行的*作,还有0个或多个*作数,提供*作所需的参数或数据。许多指令没有*作数,仅由一个单字节的*作符构成。 虚拟机的内层循环的执行过程如下:
do{
取一个*作符字节;
根据*作符的值执行一个动作;
}while(程序未结束)
由于指令系统的简单性,使得虚拟机执行的过程十分简单,从而有利于提高执行的效率。指令中*作数的数量和大小是由*作符决定的。如果*作数比一个字节大,那么它存储的顺序是高位字节优先。例如,一个16位的参数存放时占用两个字节,其值为:
第一个字节*256+第二个字节字节码指令流一般只是字节对齐的。指令tableswitch和lookup是例外,在这两条指令内部要求强制的4字节边界对齐。
2.寄存器
Java虚拟机的寄存器用于保存机器的运行状态,与微处理器中的某些专用寄存器类似。
Java虚拟机的寄存器有四种:
pc:Java程序计数器。
optop:指向*作数栈顶端的指针。
frame:指向当前执行方法的执行环境的指针。
vars:指向当前执行方法的局部变量区第一个变量的指针。
Java虚拟机
Java虚拟机是栈式的,它不定义或使用寄存器来传递或接受参数,其目的是为了保证指令集的简洁性和实现时的高效性(特别是对于寄存器数目不多的处理器)。
所有寄存器都是32位的。
3.栈
Java虚拟机的栈有三个区域:局部变量区、运行环境区、*作数区。
(1)局部变量区 每个Java方法使用一个固定大小的局部变量集。它们按照与vars寄存器的字偏移量来寻址。局部变量都是32位的。长整数和双精度浮点数占据了两个局部变量的空间,却按照第一个局部变量的索引来寻址。(例如,一个具有索引n的局部变量,如果是一个双精度浮点数,那么它实际占据了索引n和n+1所代表的存储空间。)虚拟机规范并不要求在局部变量中的64位的值是64位对齐的。虚拟机提供了把局部变量中的值装载到*作数栈的指令, 也提供了把*作数栈中的值写入局部变量的指令。
(2)运行环境区 在运行环境中包含的信息用于动态链接,正常的方法返回以及异常传播。
·动态链接
运行环境包括对指向当前类和当前方法的解释器符号表的指针,用于支持方法代码的动态链接。方法的class文件代码在引用要调用的方法和要访问的变量时使用符号。动态链接把符号形式的方法调用翻译成实际方法调用,装载必要的类以解释还没有定义的符号,并把变量访问翻译成与这些变量运行时的存储结构相应的偏移地址。动态链接方法和变量使得方法中使用的其它类的变化不会影响到本程序的代码。
·正常的方法返回
如果当前方法正常地结束了,在执行了一条具有正确类型的返回指令时,调用的方法会得到一个返回值。执行环境在正常返回的情况下用于恢复调用者的寄存器,并把调用者的程序计数器增加一个恰当的数值,以跳过已执行过的方法调用指令,然后在调用者的执行环境中继续执行下去。
·异常和错误传播
异常情况在Java中被称作Error(错误)或Exception(异常),是Throwable类的子类,在程序中的原因是:①动态链接错,如无法找到所需的class文件。②运行时错,如对一个空指针的引用
·程序使用了throw语句。
当异常发生时,Java虚拟机采取如下措施:
·检查与当前方法相联系的catch子句表。每个catch子句包含其有效指令范围,能够处理的异常类型,以及处理异常的代码块地址。
·与异常相匹配的catch子句应该符合下面的条件:造成异常的指令在其指令范围之内,发生的异常类型是其能处理的异常类型的子类型。如果找到了匹配的catch子句,那么系统转移到指定的异常处理块处执行;如果没有找到异常处理块,重复寻找匹配的catch子句的过程,直到当前方法的所有嵌套的 catch子句都被检查过。
·由于虚拟机从第一个匹配的catch子句处继续执行,所以catch子句表中的顺序是很重要的。因为Java代码是结构化的,因此总可以把某个方法的所有的异常处理器都按序排列到一个表中,对任意可能的程序计数器的值,都可以用线性的顺序找到合适的异常处理块,以处理在该程序计数器值下发生的异常情况。
·如果找不到匹配的catch子句,那么当前方法得到一个"未截获异常"的结果并返回到当前方法的调用者,好像异常刚刚在其调用者中发生一样。如果在调用者中仍然没有找到相应的异常处理块,那么这种错误传播将被继续下去。如果错误被传播到最顶层,那么系统将调用一个缺省的异常处理块。
(3)*作数栈区 机器指令只从*作数栈中取*作数,对它们进行*作,并把结果返回到栈中。选择栈结构的原因是:在只有少量寄存器或非通用寄存器的机器(如Intel486)上,也能够高效地模拟虚拟机的行为。*作数栈是32位的。它用于给方法传递参数,并从方法接收结果,也用于支持*作的参数,并保存*作的结果。例如,iadd指令将两个整数相加。相加的两个整数应该是*作数栈顶的两个字。这两个字是由先前的指令压进堆栈的。这两个整数将从堆栈弹出、相加,并把结果压回到*作数栈中。
每个原始数据类型都有专门的指令对它们进行必须的*作。每个*作数在栈中需要一个存储位置,除了long和double型,它们需要两个位置。* 作数只能被适用于其类型的*作符所*作。例如,压入两个int类型的数,如果把它们当作是一个long类型的数则是非法的。在Sun的虚拟机实现中,这个限制由字节码验证器强制实行。但是,有少数*作(*作符dupe和swap),用于对运行时数据区进行*作时是不考虑类型的。
4.无用单元收集堆
Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java语言具有无用单元收集能力:它不给程序员显式释放对象的能力。Java不规定具体使用的无用单元收集算法,可以根据系统的需求使用各种各样的算法。
5.方法区
方法区与传统语言中的编译后代码或是Unix进程中的正文段类似。它保存方法代码(编译后的java代码)和符号表。在当前的Java实现中,方法代码不包括在无用单元收集堆中,但计划在将来的版本中实现。每个类文件包含了一个Java类或一个Java界面的编译后的代码。可以说类文件是Java 语言的执行代码文件。为了保证类文件的平台无关性,Java虚拟机规范中对类文件的格式也作了详细的说明。其具体细节请参考Sun公司的Java虚拟机规范。
2008年11月24日星期一
NetBook
A netbook is a small to medium sized, light-weight, low-cost, energy-efficient laptop, generally optimized for internet based services such as web browsing and e-mailing.
Contents [hide]
1 History
2 Hardware
3 Software
4 Sales
5 Gallery
6 See also
7 References
[edit] History
The concept of the netbook stems from subnotebooks, while the term itself was introduced by Psion in 1999[1] and re-introduced by Intel in the first quarter of 2008 shortly after they withdrew from the OLPC Association.[2][3]
In 2007, Asus unveiled the Intel Celeron-based ASUS Eee PC range running a customised version of Linux (or, user installed, Microsoft Windows XP) on a 7 inch color screen[citation needed]. These machines measure just 8.9 × 6.5in and have less-than-full-sized keyboards. The Eee PC has been a top seller on Amazon.com[4] and is often sold out in retail stores. The EEE's success is largely attributed to the relatively low price (around $350/£230/€300) compared with standard-sized laptops, which easily priced above $1000 at that time.
In mid February 2008, Everex launched its VIA chipset based CloudBook, running gOS. The CloudBook is based on the VIA nanobook reference design. Unlike its closest competitor, the Eee PC, the CloudBook uses a hard-disk. The design of the cloudbook is optimized so it can be held in one hand while typing, or in two hands when using the mouse-cursor control, with the left thumb controlling the two "mouse buttons", and the right thumb a small trackpad, both mousepad and keys are placed directly under the screen.
On April 3, 2008, Microsoft announced a program to extend the availability of Windows XP in "ultra low-cost PCs", past its original deadline for ending the support of this operating system, as long as hardware developers deploy it on systems with limited hardware specifications.[5] Commentators have seen this announcement as a market movement both to prevent mobile PCs eating market share of full-featured desktop and laptop PCs,[6] and to stop the advance of Linux installations on this format.[7]
In June 2008, MSI launched the MSI Wind PC, with features such as Bluetooth and a 10" LED, backlit, 1024x600 screen. This new laptop is the first built with Intel Atom low power technology and competes with the HP 2133 Mini-Note PC which has a 8.9" screen and is capable of a higher resolution. Both laptops are offered with SUSE Linux Enterprise Desktop (from Novell) and Microsoft Windows pre-installed; HP offers Windows Vista on their laptop while MSI ships with only XP Home edition.[8][9]
On September 4, 2008, Dell launched its netbook, the Inspiron Mini 9 starting at a RRP of $399 USD for Microsoft Windows XP, and $349 USD for Ubuntu Linux. The Inspiron Mini 9 has a 8.9" WSVGA LCD (1024x600, Bluetooth, 802.11g, 4-16 GB SSD Storage, 512M-1GB DDR RAM and an Intel Atom N270 (1.6GHz). It is available in Black or White. The Inspiron Mini 9 is named Vostro A90 in the UK market.
虽然微软是互联网业软件巨头,但微软一直在努力,不断更新自己的软件产品,而微软把Linux当作对手很久,近期Windows 收入有所下滑,与Linux以及netbooks相关。
据悉,netbooks厂商宏基,以及华硕运行的Linux占据30%左右,最后一个季度Windows 销量低于预期,Windows操作系统占据70%以上。
宏基厂商以及华硕高层表示,在他们的电脑上,30%以上运行Linux操作系统。当然,这是有原因的,这两家厂商占据90%以上的netbooks市场。而netbooks主要是选择Windows 以及Linux,因此,Windows 收入下滑也是可以理解的,Linux的市场份额在上升,而微软Windows 已经基本达到饱和状态。
2009年全球netbook市场容量预计将达3000万至3500万台,其中宏基将会占领40%-50%的市场份额,也就是说宏基明年欲卖出1200万至1500万台netbook产品。
业内人士表示,netbook市场将是微软真正的威胁,这给用户机会去尝试新的软件产品、操作系统,增加他们的选择机会,微软就多一份威胁。
当然,Windows 收入还包括Vista所带来的收入,如果微软没有延长Windows XP的销售期限,或许Windows 的市场将更少,而Linux将争夺更多的市场份额。
此外,netbooks将以上升状态一直持续到2010年,Linux市场份额一直在上升,如果微软Windows 7不能够让用户满意,那么Linux市场份额将更多,微软的威胁将更大。
Contents [hide]
1 History
2 Hardware
3 Software
4 Sales
5 Gallery
6 See also
7 References
[edit] History
The concept of the netbook stems from subnotebooks, while the term itself was introduced by Psion in 1999[1] and re-introduced by Intel in the first quarter of 2008 shortly after they withdrew from the OLPC Association.[2][3]
In 2007, Asus unveiled the Intel Celeron-based ASUS Eee PC range running a customised version of Linux (or, user installed, Microsoft Windows XP) on a 7 inch color screen[citation needed]. These machines measure just 8.9 × 6.5in and have less-than-full-sized keyboards. The Eee PC has been a top seller on Amazon.com[4] and is often sold out in retail stores. The EEE's success is largely attributed to the relatively low price (around $350/£230/€300) compared with standard-sized laptops, which easily priced above $1000 at that time.
In mid February 2008, Everex launched its VIA chipset based CloudBook, running gOS. The CloudBook is based on the VIA nanobook reference design. Unlike its closest competitor, the Eee PC, the CloudBook uses a hard-disk. The design of the cloudbook is optimized so it can be held in one hand while typing, or in two hands when using the mouse-cursor control, with the left thumb controlling the two "mouse buttons", and the right thumb a small trackpad, both mousepad and keys are placed directly under the screen.
On April 3, 2008, Microsoft announced a program to extend the availability of Windows XP in "ultra low-cost PCs", past its original deadline for ending the support of this operating system, as long as hardware developers deploy it on systems with limited hardware specifications.[5] Commentators have seen this announcement as a market movement both to prevent mobile PCs eating market share of full-featured desktop and laptop PCs,[6] and to stop the advance of Linux installations on this format.[7]
In June 2008, MSI launched the MSI Wind PC, with features such as Bluetooth and a 10" LED, backlit, 1024x600 screen. This new laptop is the first built with Intel Atom low power technology and competes with the HP 2133 Mini-Note PC which has a 8.9" screen and is capable of a higher resolution. Both laptops are offered with SUSE Linux Enterprise Desktop (from Novell) and Microsoft Windows pre-installed; HP offers Windows Vista on their laptop while MSI ships with only XP Home edition.[8][9]
On September 4, 2008, Dell launched its netbook, the Inspiron Mini 9 starting at a RRP of $399 USD for Microsoft Windows XP, and $349 USD for Ubuntu Linux. The Inspiron Mini 9 has a 8.9" WSVGA LCD (1024x600, Bluetooth, 802.11g, 4-16 GB SSD Storage, 512M-1GB DDR RAM and an Intel Atom N270 (1.6GHz). It is available in Black or White. The Inspiron Mini 9 is named Vostro A90 in the UK market.
虽然微软是互联网业软件巨头,但微软一直在努力,不断更新自己的软件产品,而微软把Linux当作对手很久,近期Windows 收入有所下滑,与Linux以及netbooks相关。
据悉,netbooks厂商宏基,以及华硕运行的Linux占据30%左右,最后一个季度Windows 销量低于预期,Windows操作系统占据70%以上。
宏基厂商以及华硕高层表示,在他们的电脑上,30%以上运行Linux操作系统。当然,这是有原因的,这两家厂商占据90%以上的netbooks市场。而netbooks主要是选择Windows 以及Linux,因此,Windows 收入下滑也是可以理解的,Linux的市场份额在上升,而微软Windows 已经基本达到饱和状态。
2009年全球netbook市场容量预计将达3000万至3500万台,其中宏基将会占领40%-50%的市场份额,也就是说宏基明年欲卖出1200万至1500万台netbook产品。
业内人士表示,netbook市场将是微软真正的威胁,这给用户机会去尝试新的软件产品、操作系统,增加他们的选择机会,微软就多一份威胁。
当然,Windows 收入还包括Vista所带来的收入,如果微软没有延长Windows XP的销售期限,或许Windows 的市场将更少,而Linux将争夺更多的市场份额。
此外,netbooks将以上升状态一直持续到2010年,Linux市场份额一直在上升,如果微软Windows 7不能够让用户满意,那么Linux市场份额将更多,微软的威胁将更大。
SnagIt 9.0.2
一个非常优秀的屏幕、文本和视频捕获与转换程序。 可以捕获Windows屏幕、DOS屏幕;RM电影、游戏画面;菜单、窗口、客户区窗口、最后一个激活的窗口或用鼠标定义的区域。图象可被存为BMP、PCX、TIF、GIF或JPEG格式,也可以存为系列动画。使用JPEG可以指定所需的压缩级(从1%到99%)。可以选择是否包括光标,添加水印。另外还具有自动缩放,颜色减少,单色转换,抖动,以及转换为灰度级。 此外,保存屏幕捕获的图象前,可以用其自带的编辑器编辑;也可以选择自动将其送至SnagIt打印机或Windows剪贴板中,也可以直接用E-mail发送。 SnagIt具有将显示在Windows桌面上的文本块转换为机器可读文本的独特能力,这里甚至无需CUT和PASTE。 程序支持DDE,所以其他程序可以控制和自动捕获屏幕。新版还能嵌入Word、PowerPoint和IE浏览器中。
CUDA计算未来 专访NVIDIA首席科学家D.K
3月26日,适逢NVIDIA首席科家David Kirk(柯大为)在北京清华大学做学术报告,笔者得以有机会采访到这位当代PC图形界的传奇人物。David从1997年开始出任NVIDIA首席科家,是NVIDIA GPU技术和产品的奠基人之一,他领导NVIDIA很多GPU的研发并在2003年获得图形业至高奖——多媒体业务奖,David同时也是NVIDIA CUDA的创始人与奠基人。
● David Kirk谈CUDA和计算的革命
David Kirk此行主要是宣传NVIDIA的CUDA(Compute Unified Device Architecture的简称,意为计算统一设备构架)并以此预见3D图形的未来,这些概念则围绕着GPU来展开。
David Kirk表示GPU的功能还不仅仅是在已经取得巨大成就的图形方面,现在有很多新的领域在使用GPU。比如物理模拟、信号处理中的一些音频、视频的处理等等,还有计算机科学以及数据库的管理。此外一些与计算相关的科学,比如像生物学、金融学等等都可以通过GPU的应用来极大地加强计算机在该领域中的运算能力,这些都依赖于CUDA。
CUDA兼有软件和硬件的性质,是为GPU所重新设计的一个新的架构,它使得开发人员可以用C语言而不是原来的OpenGL或DirectX来对硬件进行控制。通过使用基于GPU的C语言编程,就可以实现原来非图形的应用的上百倍加速,让GPU有更多新的应用领域。NVIDAI从GeForce 8800系列开始到以后所有GeForce 8/9系列、Quadro 5600之后的新产品,所有Tesla产品都可支持CUDA,同时CUDA官方网站的SDK目前累计已经被下载了5万人次。
David Kirk
David Kirk认为这是一个新的时代的开始,这种异质性的、非同性的运算的新的时代的开始,会是一个多核CPU和多核GPU共存的时代,而在很多密集并行计算场合,CUDA优势明显。伊利诺依大学的生物化学实验中,通过CUDA方案可以让计算速度较单一PC CPU计算快200倍。在另一个研究神经元作用的公司里,这个同比数据是130倍。另一方面,CUDA也能够脱离现有3D API另辟蹊径的进行图形计算和绘制,在某些场合,它甚至比专用的OpenGL或D3D更有效。
● 水瓶和飞机?David Kirk谈CPU+GPU
在回答记者的CPU+GPU整合方案前景问题时,David Kirk比喻有人说要把GPU集成到CPU里面去,就好比把一架飞机放到这装水的瓶子里一样,这是不可能的,因为飞机本身太大了。GPU要比CPU复杂很多,如果要把一个现代非常高性能的GPU集成到CPU里面,跟这个比喻是一样的效果。
David Kirk还说对于低端市场,集成可能是更为需要的,如果CPU和GPU都做得很好,人们自然就想把它们放在一块儿,降低入门门槛,减少人们由于买低端的产品需要花的钱。但是对于比较高端的用户来说,人们追求的是性能,对成本的考虑不像低端那么多,所以他们可能要的是更高性能、“更大"的GPU或者CPU。
谈及未来,David Kirk觉得这两个处理器应该是合作的关系,因为各自的强项是不一样的,CPU的强项是控制、管理数据流然后决策等等,而GPU更强的地方是在于对数据的处理,以及同时处理大量类似的运算等等。它们各自不能相互取代,未来对于编程人员来说,他们必须要意识到这些硬件各自的能力和它们的特性,从而能更好的发挥这两个处理器不同的特点。
● 天生并行架构 CUDA编程简单
在谈到CUDA及GPU对于通用计算的并行控制时David.B Kirk说,对于CPU并没有特别的适用于并行计算的处理器来说,要对它进行并行编程和线程编程是非常危险、非常困难的,容易在程序运行过程中出现问题。但是对于利用CUDA和GPU运算的硬件来说,都是有非常明确的控制的,而且硬件有相应的参数,比如管理同步的问题,以及出现预测的问题之后有什么样的规则进行处理等等。对于CPU来说,完全没有可预测性,对并行线程的运算也没有任何支持的,也没有任何的硬件功能管理。所以,GPU具有在并行运算当中多线程的天生优势;而对于CPU进行编程,对程序员来说,他们需要一些多线程编程的支持,但是这些支持并不多。它要承担一定的责任,但是硬件本身也承担了很大的工作量。
● 逼近现实 CUDA和光线追踪及未来图形
David Kirk认为线追踪实际上也只是对于光的传播路径近似的表现。由于CUDA是一种编程环境,所以用户可以写任何程序。当然也可以写光线追踪的程序在上面。“现在有人们认为光线追踪是最完整的解决办法,但我认为未必是,它只是解决办法中的一个。因为对于未来来说,不可能只有一种方法能进行图形制作。25年前我就开始研究光线追踪的问题,但这25年来并没有新的东西,只不过效率提高了。所以我相信,对于同一幅画来说,我们应该有多种方法进行制作。而且到目前为止,最快的光线追踪程序是在NVIDIA GeForce 8800系列上运行的,这个程序可能是目前最快的光线追踪。”David Kirk如是说。
当笔者问及GPU如何继续实现缩短视觉虚拟世界与真实世界的差别时,David Kirk表示这正是NVIDIA来说努力的方向,希望能够减少我们所希望实现与能够实现的图形之间的差距。因为人们总会问,到底图形和GPU的下一步是什么。David Kirk认为最重要的是要认识到离我们所希望实现的还差得很远,无论是硬件的性能上还是算法的改善上,都有很长的道路和很大的提升空间。无论从GPU硬件角度,还是从算法的软件角度来说,NVIDIA还有非常多的事情要做。
● 国内CUDA应用
DavidKirk提及,清华就有一位教授在用CUDA进行分子动力学的模拟,而不少清华大学的其他的研究人员也在用CUDA进行相关的开发工作,这正是他来到中国来的原因。DavidKirk希望能到各处去,让大学、研究机构更多地使用它,并且在大学里更多地教授CUDA的相关知识,使得在这项技术的使用上中国可以领先于其他国家。
● David Kirk谈CUDA和计算的革命
David Kirk此行主要是宣传NVIDIA的CUDA(Compute Unified Device Architecture的简称,意为计算统一设备构架)并以此预见3D图形的未来,这些概念则围绕着GPU来展开。
David Kirk表示GPU的功能还不仅仅是在已经取得巨大成就的图形方面,现在有很多新的领域在使用GPU。比如物理模拟、信号处理中的一些音频、视频的处理等等,还有计算机科学以及数据库的管理。此外一些与计算相关的科学,比如像生物学、金融学等等都可以通过GPU的应用来极大地加强计算机在该领域中的运算能力,这些都依赖于CUDA。
CUDA兼有软件和硬件的性质,是为GPU所重新设计的一个新的架构,它使得开发人员可以用C语言而不是原来的OpenGL或DirectX来对硬件进行控制。通过使用基于GPU的C语言编程,就可以实现原来非图形的应用的上百倍加速,让GPU有更多新的应用领域。NVIDAI从GeForce 8800系列开始到以后所有GeForce 8/9系列、Quadro 5600之后的新产品,所有Tesla产品都可支持CUDA,同时CUDA官方网站的SDK目前累计已经被下载了5万人次。
David Kirk
David Kirk认为这是一个新的时代的开始,这种异质性的、非同性的运算的新的时代的开始,会是一个多核CPU和多核GPU共存的时代,而在很多密集并行计算场合,CUDA优势明显。伊利诺依大学的生物化学实验中,通过CUDA方案可以让计算速度较单一PC CPU计算快200倍。在另一个研究神经元作用的公司里,这个同比数据是130倍。另一方面,CUDA也能够脱离现有3D API另辟蹊径的进行图形计算和绘制,在某些场合,它甚至比专用的OpenGL或D3D更有效。
● 水瓶和飞机?David Kirk谈CPU+GPU
在回答记者的CPU+GPU整合方案前景问题时,David Kirk比喻有人说要把GPU集成到CPU里面去,就好比把一架飞机放到这装水的瓶子里一样,这是不可能的,因为飞机本身太大了。GPU要比CPU复杂很多,如果要把一个现代非常高性能的GPU集成到CPU里面,跟这个比喻是一样的效果。
David Kirk还说对于低端市场,集成可能是更为需要的,如果CPU和GPU都做得很好,人们自然就想把它们放在一块儿,降低入门门槛,减少人们由于买低端的产品需要花的钱。但是对于比较高端的用户来说,人们追求的是性能,对成本的考虑不像低端那么多,所以他们可能要的是更高性能、“更大"的GPU或者CPU。
谈及未来,David Kirk觉得这两个处理器应该是合作的关系,因为各自的强项是不一样的,CPU的强项是控制、管理数据流然后决策等等,而GPU更强的地方是在于对数据的处理,以及同时处理大量类似的运算等等。它们各自不能相互取代,未来对于编程人员来说,他们必须要意识到这些硬件各自的能力和它们的特性,从而能更好的发挥这两个处理器不同的特点。
● 天生并行架构 CUDA编程简单
在谈到CUDA及GPU对于通用计算的并行控制时David.B Kirk说,对于CPU并没有特别的适用于并行计算的处理器来说,要对它进行并行编程和线程编程是非常危险、非常困难的,容易在程序运行过程中出现问题。但是对于利用CUDA和GPU运算的硬件来说,都是有非常明确的控制的,而且硬件有相应的参数,比如管理同步的问题,以及出现预测的问题之后有什么样的规则进行处理等等。对于CPU来说,完全没有可预测性,对并行线程的运算也没有任何支持的,也没有任何的硬件功能管理。所以,GPU具有在并行运算当中多线程的天生优势;而对于CPU进行编程,对程序员来说,他们需要一些多线程编程的支持,但是这些支持并不多。它要承担一定的责任,但是硬件本身也承担了很大的工作量。
● 逼近现实 CUDA和光线追踪及未来图形
David Kirk认为线追踪实际上也只是对于光的传播路径近似的表现。由于CUDA是一种编程环境,所以用户可以写任何程序。当然也可以写光线追踪的程序在上面。“现在有人们认为光线追踪是最完整的解决办法,但我认为未必是,它只是解决办法中的一个。因为对于未来来说,不可能只有一种方法能进行图形制作。25年前我就开始研究光线追踪的问题,但这25年来并没有新的东西,只不过效率提高了。所以我相信,对于同一幅画来说,我们应该有多种方法进行制作。而且到目前为止,最快的光线追踪程序是在NVIDIA GeForce 8800系列上运行的,这个程序可能是目前最快的光线追踪。”David Kirk如是说。
当笔者问及GPU如何继续实现缩短视觉虚拟世界与真实世界的差别时,David Kirk表示这正是NVIDIA来说努力的方向,希望能够减少我们所希望实现与能够实现的图形之间的差距。因为人们总会问,到底图形和GPU的下一步是什么。David Kirk认为最重要的是要认识到离我们所希望实现的还差得很远,无论是硬件的性能上还是算法的改善上,都有很长的道路和很大的提升空间。无论从GPU硬件角度,还是从算法的软件角度来说,NVIDIA还有非常多的事情要做。
● 国内CUDA应用
DavidKirk提及,清华就有一位教授在用CUDA进行分子动力学的模拟,而不少清华大学的其他的研究人员也在用CUDA进行相关的开发工作,这正是他来到中国来的原因。DavidKirk希望能到各处去,让大学、研究机构更多地使用它,并且在大学里更多地教授CUDA的相关知识,使得在这项技术的使用上中国可以领先于其他国家。
在线文件转换服务 Zamzar
昨天 riku 介绍了一款在线文件转换服务 Zamzar:
"提供了很多的转换格式,总体上分为文档、图片、音乐及视频四大类,详细的转换类型可见其提供的一张转换格式支持表。与 Media-Convert 相比,Zamzar 可上传 100MB 的单个文件,比其可上传 50MB 要多出一倍。在操作方法上,Zamzar 会把转换好的文件地址通过Email发送给用户,让用户自行下载。"
看得出来,Zamzar 在 Media-Convert 已经上线一段时间以后推出,必然会要以一些超越的精神来面对,无论是 UI 还是容量都有之与 Media-Convert 相比更为出色的一面,虹试用的时候还是比较注意此类服务的一个基本需要点:速度。上传速度、转换速度和获取转换之后的文件的下载速度,不过结果并不是太理想,Zamzar 和 Media-Convert 基本上还是差不多,这也是在线工具遇到的一个现有的瓶颈问题,就是网络环境因素的影响。
从这一层面上来看,除非是一些不太急于处理的文件,或者使用的是瘦客户端(SmartClient),这一类的服务确实还离开时用比较远。当本地软件中文件转换还相当方便的今天(虽然存在盗版软件的问题),在线工具(Web Apps)需要经历的考验还很多。
"提供了很多的转换格式,总体上分为文档、图片、音乐及视频四大类,详细的转换类型可见其提供的一张转换格式支持表。与 Media-Convert 相比,Zamzar 可上传 100MB 的单个文件,比其可上传 50MB 要多出一倍。在操作方法上,Zamzar 会把转换好的文件地址通过Email发送给用户,让用户自行下载。"
看得出来,Zamzar 在 Media-Convert 已经上线一段时间以后推出,必然会要以一些超越的精神来面对,无论是 UI 还是容量都有之与 Media-Convert 相比更为出色的一面,虹试用的时候还是比较注意此类服务的一个基本需要点:速度。上传速度、转换速度和获取转换之后的文件的下载速度,不过结果并不是太理想,Zamzar 和 Media-Convert 基本上还是差不多,这也是在线工具遇到的一个现有的瓶颈问题,就是网络环境因素的影响。
从这一层面上来看,除非是一些不太急于处理的文件,或者使用的是瘦客户端(SmartClient),这一类的服务确实还离开时用比较远。当本地软件中文件转换还相当方便的今天(虽然存在盗版软件的问题),在线工具(Web Apps)需要经历的考验还很多。
Ulteo桌面虚拟化解决方案
" 在承诺推出桌面虚拟化解决方案之后,开源虚拟桌面公司Ulteo,宣布发布了首个可安装的Open Source Virtual Desktop企业版。它能让IT部门更容易管理和更快捷的部署,该版本可以轻易的安装在Linux和Windows环境下,能在几分钟内加载和运行,向企业用户提供富桌面应用程序。"
NVIDIA推出了一种新型超级电脑
NVIDIA推出了一种新型超级电脑——Tesla个人电脑——售价低于1万美元的每秒4万亿次浮点运算的桌面电脑。
这台桌面电脑包含4个Tesla C1060计算处理器,这些GPU不再用于图像输出而是仅用于计算。每个Tesla GPU拥有240核心,能提供每秒1万亿次单精度浮点运算和每秒8千亿次双精确度浮点运算。CPU + GPU能通过NVIDIA开发的CUDA进行编程,CUDA编译器/开发工具箱可免费下载。目前已有数十款软件移植到CUDA,包括Mathematica,LabView,ANSYS Mechanical,以及数十个来自分子动力学、量子化学、电磁学的科学代码。
这台桌面电脑包含4个Tesla C1060计算处理器,这些GPU不再用于图像输出而是仅用于计算。每个Tesla GPU拥有240核心,能提供每秒1万亿次单精度浮点运算和每秒8千亿次双精确度浮点运算。CPU + GPU能通过NVIDIA开发的CUDA进行编程,CUDA编译器/开发工具箱可免费下载。目前已有数十款软件移植到CUDA,包括Mathematica,LabView,ANSYS Mechanical,以及数十个来自分子动力学、量子化学、电磁学的科学代码。
2008年11月23日星期日
30 FireFox Add Ons to do just about anything
http://techcityinc.com/2008/11/30-firefox-add-ons-to-do-just-about-anything/
Firefox is one browser that offers you thousands of extensions and add-ons to get the job done without wasting any time. I’ve compiled a list of best 30 Firefox add ons that will help you do just about anything. On the top of my head and my personal favorite
1. Fast Dial
Fast Dial is a great FireFox add-on and a feature that you all have probably seen in Opera already. Fast Dial replaces blank tabs with a panel of thumbnails of your favorite sites. So whenever you open a new tab it will show you the list of websites you have added. From there simply click the thumbnail to open the website immediately. Plus point for Fast Dial is that it allows you to add up to 100 websites with the customization options.
Download : Fast Dial
2. ImageShack
Another add-on that really comes in Handy is the ImageShack Firefox add on. When you’re browsing the internet there are lots of websites you come across and there are certain pictures that you really like. A good way to collect all the pictures is by installing this add on. Simply Right click on any image and click “Transload Image to Imageshack”. Once done those pictures will be uploaded in your Picture Gallery before you know it.
Register on Imageshack, click tools and get the toolbar.
3. StumbleUpon Toolbar
Bookmarking becomes really easy with Stumbleupon Toolbar. Once it’s installed in your browser simply click “I Like It” from the toolbar and consider it as a bookmark in your profile. Plus it’s also a good way to promote any article you like.
Start Stumbling
4. ClipMark
Clipmark allows you to capture Text and Videos exactly how you want others to see instead of simply copy and pasting links. All these clips will be saved on clipmarks.com and can easily be syndicated to FriendFeed, Twitter, Facebook or other sites. You can also post anything you clip directly to your blog like Blogger, Wordpress, Typepad and more.
Download : Clipmark
5. Blogger Bar
This Firefox Toolbar allows you to Search Blogger, and Blogger Profiles and includes a “Blog This” function, which allows you to Blog a link, and information about the current page you’re on. Brings the power of Blogger into a single toolbar.
Download : Blogger Bar
6۔ TwitterBar
It seems like everyone who there uses Twitter. TwitterBar allows you to post to Twitter from Firefox’s address bar. That definitely saves lots of time. A small unobtrusive grey icon sits to the right of your address bar; clicking on it will post your tweet, and you can hover your mouse over it to see how many characters you have left.
Download : Twitterbar
7. Wordpress Sidebar
Since we’re on the topic here’s a very helpful add on that allows you to log in to your wordpress account from the sidebar of your browser.
Download : Wordpress Sidebar
8. Adsense Notifier
Add on publishers really can’t stay away from. It allows you to check your Adsense earnings on the status bar and it automatically updates the status every now and then. You don’t have to login to your account again and again to see if you got more clicks or not. Unfortunately it’s not available for Firefox 3 yet but we’re expecting anew update soon so till then hang on!
Download for older versions : Adsense Notifier
9. JustBlogIt
JustBlogIt is a Firefox extension to allow easy right-click posting to a weblog. From any website your new blog post is only a right-click away. What I like about JustblogIt is that it supports posting to a variety of weblog system types and is not specific to just one. You can also use the custom setting to add any weblog type you want.
Download : Justblogit
10. Universal Uploader
FireFox extension that allows you to upload/download files from your favorite websites using a simple interface. Currently it supports
Box.net
Flickr
Picasa
Youtube
Facebook
Webshots
Omnidrive
Smugmug
SmeStorage
Google Docs
Snaphappi (new), a digital photo processing website
Adobe Share (new)
Slideshare (new) (Share your presentations online)
and its growing
Download : Universal Uploader
11. Create short URLs
If you’re annoyed with really long URLs like then this tag is for you. Just right click on the page and click wapURL and you will be presented with a short URL. This is great if you need to send text messages or emails. When you use the short URL the key passed is looked up against our database and the user in then redirected to your requested URL. I have seen a lot of guys using it now a days. It’s pretty popular among the social media guys
Download : Create Short URLS
12. FastDic
FastDic extension provides a fast way to look up word in dictionary. Hold the Alt,Ctrl or Shift keys and click any word in web page. Then word is automatically selected by extension and word’s meaning page is open in new tab,new window or sidebar. This is a really helpful add on.
Instruction of how you can install it in Firefox 3
“To make it work in Firefox 3+ To make it work in Firefox 3+: 1. Go on the ‘See All Versions’ page 2. Right click on the latest version, then ‘Save Link As…’ 3. on your computer, open the saved .xpi file with WinRar or something similar 4. extract the ‘install.rdf’ file from the archive and open it in Notepad 5. change em:maxVersion 2.bla bla to 3.* 6. replace the ‘install.rdf’ file in the archive with this modified version 7. drag the modified .xpi on Firefox and install it”
Dictionary pages can opened in 4 flavor
· to New Window : Dictionary page is open on small window (450 X 358)
· to New Tab: Dictionary page is open on a new tab window
· to SideBar: Dicionary page is open on FireFox’s side bar
· to New Window : Dicionary page is open on window (700 X 500)
· This can be configured on Options dialog
Download : FastDic
13. FireShot
Fireshot is great add on that gives you the ability to capture web pages in the form of screenshots. You can then edit it, add annotations and upload to free screenshot hosting, save as PNG, GIF, JPEG, BMP, print copy to clipboard, send to external editor or e-mail it.
It’s also possible to choose whether you want to capture entire web page or take screenshot of only visible part of the web page.
Download : FireShot
14. DownThemAll
DownthemAll is a power Firefox extension that that adds new advanced download capabilities to your browser. It’s probably one of the best download manager/accelerator built inside Firefox. It assists you in downloading multiple files from a page with just a few clicks. I must say it is one popular Firefox add on because there are 315,650 weekly downloads and 17,721,691 total downloads so far.
Download : DownThemAll
15. Digg
One of the very regular extensions that that allows you to interact with Digg.com and see information about the web page you are currently viewing while you use Firefox. You can
View new stories
View Popular, Upcoming, Top, and Hot Stories
Friends activity
Discover New Content on the Web
The extension allows you to see whether or not the web page you are currently viewing has been submitted to Digg. If the page has not yet been submitted to digg, the extension allows you to submit it.
Download : Digg Add on
16. FoxyTunes
This add on is for the people who like to listen to music while they’re surfing the internet. FoxyTunes lets you control almost any media player and find lyrics, covers, videos, bios and much more with a click right from your browser.
Download : FoxyTunes
17. GreaseMonkey
GreaseMonkey is a must have add on. Greasemonkey is the necessary extension to run the ceaseless stream of Greasmonkey scripts that allow you to customize sites from Facebook to Gmail. Hundreds of scripts, for a wide variety of popular sites, are already available at http://userscripts.org. You can write your own scripts, too. Check out http://wiki.greasespot.net/ to get started.
Download : GreaseMonkey
18. Webmail Notifier
It allows you to check your emails without logging in to the actual website. If it really gets frustrating for you to log in to the website each time just to see if you have received any new email or any unread mails left. You don’t need to worry about it anymore. With WebMail Notifier you will be able to check emails without logging in to the actual website. WebMail Notifier checks your webmail accounts and notifies the number of unread emails on your statusbar. It currently support
mail.google.com(Gmail & Google Apps)
mail.yahoo.com
mail.live.com(hotmail,msn,live)
www.daum.net(hanmail.net)
www.naver.com
www.empas.com
www.nate.com
If you want other webmail provider, you can make your own script but you need to be enough knowledgeable to change the user scripts.
Download : Webmail Notifier
19. DownloadHelper
DownloadHelper is a way to discover many sites showing Web videos from all around the world. It not only let you download videos from the internet but it also allows you to convert them to many different formats. Just surf the Web as you are used to, when DownloadHelper detects it can do something for you, the icon gets animated and a menu allows you to download files by simply clicking an item.
Download : DownloadHelper
20. Meebo
I simply love this add on. It’s your one stop to instant messaging across all major IM networks built right into Firefox. It works great with AIM, Yahoo, Msn and Gtalk. I guess that is all we need.
Download : Meebo
21. Del.icio.us Toolbar
It is a great way to bookmark your favorite links. It integrates your bookmarks and tags with Firefox and keeps them in sync for easy, convenient access. It offers
Search and browse your Delicious bookmarks
Keep up to date on your Network and Links For You
Access your bookmarks from any computer at any time
Keep your bookmarks organized using tags
Share your bookmarks with friends or anyone on the Web
Import your existing Firefox bookmarks
Download : Del.icio.us
22. Facebook
Its time to join the 600K fellow Boost users and customize your Facebook experience with 300+ facebook skins, 30+ special features, selectable options, custom album viewers, video downloader and more!
Key features
Autopoke and EZPoke options
Test the New Facebook Layout
Hidden Album Access
View all photos of a user
Hide/Show all applications
Auto-refresh homepage
Rollover any picture for full size view
Hide all applications and related info
Ability to load all album images in one page
Hundreds of Skins
Selectable Features - Use only what you want!
Quick Access Options Icon in Status Bar
Skins for school banners
Rollover all profile pic thumbnails
Auto-Login with saved password
One-click pokes
3 Supercharged Album options
Skinned banners
Download : Facebook toolbar
23. DictionarySearch
A great add on that allows you to highlight a word, right click it, select define and get a definition in a new tab.
Download : DictionarySearch
24. FireGestures
FireGestures is a Firefox extension which enables you to execute various commands with five types of mouse gestures:
Mouse Gestures (Move mouse with holding right-click)
Wheel Gestures (Scroll wheel with holding right-click)
Rocker Gestures (Left-click with holding right-click and vice versa)
Keypress Gestures (Mouse gesture with holding Ctrl / Shift key)
Tab Wheel Gestures (Scrolling wheel on the tab bar)
They have a good record of 69,089 weekly downloads and 1,938,829 total downloads
Download : FireGestures
25. Google Toolbar
You all must be familiar with this extension of Firefox. Google toolbar for firefox allows you to add buttons to the toolbar to seach your favorite sites. You can bookmark frequently visited pages and access them from anywhere. Search smarter with instant suggestions as you type in the search box and share web page with friends via Blog or Email
Download : Google Toolbar
26. Next Image
Next Image is one incredibly useful Firefox extension. This plugin adds context menu items for navigating forward and backwards through a group of images. Simple hold shift and press right or left and it increments the URL one digit up or down. It’s useful when going from page to page or picture to picture as long as they’re in series. It specially comes in handy when you’re on your laptop.
Download : Next Image
27. Adblock plus
If you easily get annoyed by all those ads and banners on the internet that often take longer to download than everything else on the page then this add on is for you. Just install Adblock Plus now and get rid of them.
Download : AdBlock Plus
28. BugMeNot
An excellent extension that allows you to bypass compulsory web registration via the right-click context menu. Don’t want to register to read an article? BugMeNot gives you other people’s logins.
Download : BugMeNot
29. HideBad
This one specially goes out for those naughty people out there. Lets just pretend you’re not only going to use it in your office so that your Boss doesn’t know what you’re doing. HideBad quickly closes tabs that you do not want others to see. Also clears your history and such at your discretion and replace the current tabs with safe ones. It can clear the following at the user’s choice:
History
Recently Closed Tabs list
Saved form info
Saved passwords
Download history
Cookies
Cache
Searchbar
Download : HideBad
30. FireFTP
It has to be one of my favorite add ons. FireFTP is a free, secure, cross-platform FTP client for Mozilla Firefox which provides easy and intuitive access to FTP servers. It includes more advanced features such as: directory comparison, syncing directories while navigating, SFTP, SSL encryption, search/filtering, integrity checks, remote editing, drag & drop, file hashing, and much more
Download : FireFtp
If you enjoyed this post, please feel free to subscribe to my RSS Feed for latest updates.
Tags: add ons, Blogging, Browsers, Firefox, firefox extensions, Internet
Firefox is one browser that offers you thousands of extensions and add-ons to get the job done without wasting any time. I’ve compiled a list of best 30 Firefox add ons that will help you do just about anything. On the top of my head and my personal favorite
1. Fast Dial
Fast Dial is a great FireFox add-on and a feature that you all have probably seen in Opera already. Fast Dial replaces blank tabs with a panel of thumbnails of your favorite sites. So whenever you open a new tab it will show you the list of websites you have added. From there simply click the thumbnail to open the website immediately. Plus point for Fast Dial is that it allows you to add up to 100 websites with the customization options.
Download : Fast Dial
2. ImageShack
Another add-on that really comes in Handy is the ImageShack Firefox add on. When you’re browsing the internet there are lots of websites you come across and there are certain pictures that you really like. A good way to collect all the pictures is by installing this add on. Simply Right click on any image and click “Transload Image to Imageshack”. Once done those pictures will be uploaded in your Picture Gallery before you know it.
Register on Imageshack, click tools and get the toolbar.
3. StumbleUpon Toolbar
Bookmarking becomes really easy with Stumbleupon Toolbar. Once it’s installed in your browser simply click “I Like It” from the toolbar and consider it as a bookmark in your profile. Plus it’s also a good way to promote any article you like.
Start Stumbling
4. ClipMark
Clipmark allows you to capture Text and Videos exactly how you want others to see instead of simply copy and pasting links. All these clips will be saved on clipmarks.com and can easily be syndicated to FriendFeed, Twitter, Facebook or other sites. You can also post anything you clip directly to your blog like Blogger, Wordpress, Typepad and more.
Download : Clipmark
5. Blogger Bar
This Firefox Toolbar allows you to Search Blogger, and Blogger Profiles and includes a “Blog This” function, which allows you to Blog a link, and information about the current page you’re on. Brings the power of Blogger into a single toolbar.
Download : Blogger Bar
6۔ TwitterBar
It seems like everyone who there uses Twitter. TwitterBar allows you to post to Twitter from Firefox’s address bar. That definitely saves lots of time. A small unobtrusive grey icon sits to the right of your address bar; clicking on it will post your tweet, and you can hover your mouse over it to see how many characters you have left.
Download : Twitterbar
7. Wordpress Sidebar
Since we’re on the topic here’s a very helpful add on that allows you to log in to your wordpress account from the sidebar of your browser.
Download : Wordpress Sidebar
8. Adsense Notifier
Add on publishers really can’t stay away from. It allows you to check your Adsense earnings on the status bar and it automatically updates the status every now and then. You don’t have to login to your account again and again to see if you got more clicks or not. Unfortunately it’s not available for Firefox 3 yet but we’re expecting anew update soon so till then hang on!
Download for older versions : Adsense Notifier
9. JustBlogIt
JustBlogIt is a Firefox extension to allow easy right-click posting to a weblog. From any website your new blog post is only a right-click away. What I like about JustblogIt is that it supports posting to a variety of weblog system types and is not specific to just one. You can also use the custom setting to add any weblog type you want.
Download : Justblogit
10. Universal Uploader
FireFox extension that allows you to upload/download files from your favorite websites using a simple interface. Currently it supports
Box.net
Flickr
Picasa
Youtube
Webshots
Omnidrive
Smugmug
SmeStorage
Google Docs
Snaphappi (new), a digital photo processing website
Adobe Share (new)
Slideshare (new) (Share your presentations online)
and its growing
Download : Universal Uploader
11. Create short URLs
If you’re annoyed with really long URLs like then this tag is for you. Just right click on the page and click wapURL and you will be presented with a short URL. This is great if you need to send text messages or emails. When you use the short URL the key passed is looked up against our database and the user in then redirected to your requested URL. I have seen a lot of guys using it now a days. It’s pretty popular among the social media guys
Download : Create Short URLS
12. FastDic
FastDic extension provides a fast way to look up word in dictionary. Hold the Alt,Ctrl or Shift keys and click any word in web page. Then word is automatically selected by extension and word’s meaning page is open in new tab,new window or sidebar. This is a really helpful add on.
Instruction of how you can install it in Firefox 3
“To make it work in Firefox 3+ To make it work in Firefox 3+: 1. Go on the ‘See All Versions’ page 2. Right click on the latest version, then ‘Save Link As…’ 3. on your computer, open the saved .xpi file with WinRar or something similar 4. extract the ‘install.rdf’ file from the archive and open it in Notepad 5. change em:maxVersion 2.bla bla to 3.* 6. replace the ‘install.rdf’ file in the archive with this modified version 7. drag the modified .xpi on Firefox and install it”
Dictionary pages can opened in 4 flavor
· to New Window : Dictionary page is open on small window (450 X 358)
· to New Tab: Dictionary page is open on a new tab window
· to SideBar: Dicionary page is open on FireFox’s side bar
· to New Window : Dicionary page is open on window (700 X 500)
· This can be configured on Options dialog
Download : FastDic
13. FireShot
Fireshot is great add on that gives you the ability to capture web pages in the form of screenshots. You can then edit it, add annotations and upload to free screenshot hosting, save as PNG, GIF, JPEG, BMP, print copy to clipboard, send to external editor or e-mail it.
It’s also possible to choose whether you want to capture entire web page or take screenshot of only visible part of the web page.
Download : FireShot
14. DownThemAll
DownthemAll is a power Firefox extension that that adds new advanced download capabilities to your browser. It’s probably one of the best download manager/accelerator built inside Firefox. It assists you in downloading multiple files from a page with just a few clicks. I must say it is one popular Firefox add on because there are 315,650 weekly downloads and 17,721,691 total downloads so far.
Download : DownThemAll
15. Digg
One of the very regular extensions that that allows you to interact with Digg.com and see information about the web page you are currently viewing while you use Firefox. You can
View new stories
View Popular, Upcoming, Top, and Hot Stories
Friends activity
Discover New Content on the Web
The extension allows you to see whether or not the web page you are currently viewing has been submitted to Digg. If the page has not yet been submitted to digg, the extension allows you to submit it.
Download : Digg Add on
16. FoxyTunes
This add on is for the people who like to listen to music while they’re surfing the internet. FoxyTunes lets you control almost any media player and find lyrics, covers, videos, bios and much more with a click right from your browser.
Download : FoxyTunes
17. GreaseMonkey
GreaseMonkey is a must have add on. Greasemonkey is the necessary extension to run the ceaseless stream of Greasmonkey scripts that allow you to customize sites from Facebook to Gmail. Hundreds of scripts, for a wide variety of popular sites, are already available at http://userscripts.org. You can write your own scripts, too. Check out http://wiki.greasespot.net/ to get started.
Download : GreaseMonkey
18. Webmail Notifier
It allows you to check your emails without logging in to the actual website. If it really gets frustrating for you to log in to the website each time just to see if you have received any new email or any unread mails left. You don’t need to worry about it anymore. With WebMail Notifier you will be able to check emails without logging in to the actual website. WebMail Notifier checks your webmail accounts and notifies the number of unread emails on your statusbar. It currently support
mail.google.com(Gmail & Google Apps)
mail.yahoo.com
mail.live.com(hotmail,msn,live)
www.daum.net(hanmail.net)
www.naver.com
www.empas.com
www.nate.com
If you want other webmail provider, you can make your own script but you need to be enough knowledgeable to change the user scripts.
Download : Webmail Notifier
19. DownloadHelper
DownloadHelper is a way to discover many sites showing Web videos from all around the world. It not only let you download videos from the internet but it also allows you to convert them to many different formats. Just surf the Web as you are used to, when DownloadHelper detects it can do something for you, the icon gets animated and a menu allows you to download files by simply clicking an item.
Download : DownloadHelper
20. Meebo
I simply love this add on. It’s your one stop to instant messaging across all major IM networks built right into Firefox. It works great with AIM, Yahoo, Msn and Gtalk. I guess that is all we need.
Download : Meebo
21. Del.icio.us Toolbar
It is a great way to bookmark your favorite links. It integrates your bookmarks and tags with Firefox and keeps them in sync for easy, convenient access. It offers
Search and browse your Delicious bookmarks
Keep up to date on your Network and Links For You
Access your bookmarks from any computer at any time
Keep your bookmarks organized using tags
Share your bookmarks with friends or anyone on the Web
Import your existing Firefox bookmarks
Download : Del.icio.us
22. Facebook
Its time to join the 600K fellow Boost users and customize your Facebook experience with 300+ facebook skins, 30+ special features, selectable options, custom album viewers, video downloader and more!
Key features
Autopoke and EZPoke options
Test the New Facebook Layout
Hidden Album Access
View all photos of a user
Hide/Show all applications
Auto-refresh homepage
Rollover any picture for full size view
Hide all applications and related info
Ability to load all album images in one page
Hundreds of Skins
Selectable Features - Use only what you want!
Quick Access Options Icon in Status Bar
Skins for school banners
Rollover all profile pic thumbnails
Auto-Login with saved password
One-click pokes
3 Supercharged Album options
Skinned banners
Download : Facebook toolbar
23. DictionarySearch
A great add on that allows you to highlight a word, right click it, select define and get a definition in a new tab.
Download : DictionarySearch
24. FireGestures
FireGestures is a Firefox extension which enables you to execute various commands with five types of mouse gestures:
Mouse Gestures (Move mouse with holding right-click)
Wheel Gestures (Scroll wheel with holding right-click)
Rocker Gestures (Left-click with holding right-click and vice versa)
Keypress Gestures (Mouse gesture with holding Ctrl / Shift key)
Tab Wheel Gestures (Scrolling wheel on the tab bar)
They have a good record of 69,089 weekly downloads and 1,938,829 total downloads
Download : FireGestures
25. Google Toolbar
You all must be familiar with this extension of Firefox. Google toolbar for firefox allows you to add buttons to the toolbar to seach your favorite sites. You can bookmark frequently visited pages and access them from anywhere. Search smarter with instant suggestions as you type in the search box and share web page with friends via Blog or Email
Download : Google Toolbar
26. Next Image
Next Image is one incredibly useful Firefox extension. This plugin adds context menu items for navigating forward and backwards through a group of images. Simple hold shift and press right or left and it increments the URL one digit up or down. It’s useful when going from page to page or picture to picture as long as they’re in series. It specially comes in handy when you’re on your laptop.
Download : Next Image
27. Adblock plus
If you easily get annoyed by all those ads and banners on the internet that often take longer to download than everything else on the page then this add on is for you. Just install Adblock Plus now and get rid of them.
Download : AdBlock Plus
28. BugMeNot
An excellent extension that allows you to bypass compulsory web registration via the right-click context menu. Don’t want to register to read an article? BugMeNot gives you other people’s logins.
Download : BugMeNot
29. HideBad
This one specially goes out for those naughty people out there. Lets just pretend you’re not only going to use it in your office so that your Boss doesn’t know what you’re doing. HideBad quickly closes tabs that you do not want others to see. Also clears your history and such at your discretion and replace the current tabs with safe ones. It can clear the following at the user’s choice:
History
Recently Closed Tabs list
Saved form info
Saved passwords
Download history
Cookies
Cache
Searchbar
Download : HideBad
30. FireFTP
It has to be one of my favorite add ons. FireFTP is a free, secure, cross-platform FTP client for Mozilla Firefox which provides easy and intuitive access to FTP servers. It includes more advanced features such as: directory comparison, syncing directories while navigating, SFTP, SSL encryption, search/filtering, integrity checks, remote editing, drag & drop, file hashing, and much more
Download : FireFtp
If you enjoyed this post, please feel free to subscribe to my RSS Feed for latest updates.
Tags: add ons, Blogging, Browsers, Firefox, firefox extensions, Internet
订阅:
博文 (Atom)