2010年3月 的存档

“21天教你学会C++”

下面是一个《Teach Yourself  C++ in 21 Days》的流程图,请各位程序员同仁认真领会。如果有必要,你可以查看这个图书以作参照:http://www.china-pub.com/27043


看完上面这个图片,我在想,我学习C++12年了,好像C++也没有学得特别懂,看到STL和泛型,还是很头大。不过,我应该去考虑研究量子物理和生物化学,这样,我才能重返98年杀掉还在大学的我,然后达到21天搞定C++的目标。另外,得要特别提醒刚刚开始学习C++的朋友,第21天的时候,小心被人杀害。呵呵。

当然,上面只是一个恶搞此类图片,学习一门技术,需要你很长的时间,正如图片中的第三图和第四图所示,你需要用十年的时间去不断在尝试,并在错误中总结经验教训,以及在项目开发中通过与别人相互沟通互相学习来历练自己。你才能算得上是真正学会。

这里有篇文章叫《Teach Yourself Programming in Ten Years》,网上有人翻译了一下,不过原文已被更新了,我把网上的译文转载并更新如下:

  
 

用十年来学编程
Peter Norvig

 
 

为什么每个人都急不可耐?

走进任何一家书店,你会看见《Teach Yourself Java in 7 Days》(7Java无师自通)的旁边是一长排看不到尽头的类似书籍,它们要教会你Visual BasicWindowsInternet等等,而只需要几天甚至几小时。我在Amazon.com上进行了如下搜索

   
 

    pubdate: after 1992 and title: days and (title: learn or title: teach yourself)
    (出版日期:1992年后 and 书名:天 and (书名:学会 or 书名:无师自通))

   
 

我一共得到了248个搜索结果。前面的78个是计算机书籍(第79个是《Learn Bengali in 30 days》,30天学会孟加拉语)。我把关键词“days”换成hours,得到了非常相似的结果:这次有253本书,头77本是计算机书籍,第78本是《Teach Yourself Grammar and Style in 24 Hours》(24小时学会文法和文体)。头200本书中,有96%是计算机书籍。

   
 

结论是,要么是人们非常急于学会计算机,要么就是不知道为什么计算机惊人地简单,比任何东西都容易学会。没有一本书是要在几天里教会人们欣赏贝多芬或者量子物理学,甚至怎样给狗打扮。在《How to Design Programs》这本书里说Bad programming is easy. Idiots can learn it in 21 days, even if they are dummies.” (坏的程序是很容易的,就算他们是哑巴,白痴都可以在21天内学会。)

   
 

让我们来分析一下像《Learn C++ in Three Days》(3天学会C++)这样的题目到底是什么意思:

  • 学会:在3天时间里,你不够时间写一些有意义的程序,并从它们的失败与成功中学习。你不够时间跟一些有经验的程序员一起工作,你不会知道在C++那样的环境中是什么滋味。简而言之,没有足够的时间让你学到很多东西。所以这些书谈论的只是表面上的精通,而非深入的理解。如Alexander Pope(英国诗人、作家,1688-1744)所言,一知半解是危险的(a little learning is a dangerous thing
  • C++:在3天时间里你可以学会C++的语法(如果你已经会一门类似的语言),但你无法学到多少如何运用这些语法。简而言之,如果你是,比如说一个Basic程序员,你可以学会用C++语法写出Basic风格的程序,但你学不到C++真正的优点(和缺点)。那关键在哪里?Alan PerlisACM第一任主席,图灵奖得主,1922-1990)曾经说过:如果一门语言不能影响你对编程的想法,那它就不值得去学。另一种观点是,有时候你不得不学一点C++(更可能是javascriptFlash Flex之类)的皮毛,因为你需要接触现有的工具,用来完成特定的任务。但此时你不是在学习如何编程,你是在学习如何完成任务。
  • 3:不幸的是,这是不够的,正如下一节所言。

10年学编程

一些研究者(Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973))的研究表明,在许多领域,都需要大约10 年时间才能培养出专业技能,包括国际象棋、作曲、绘画、钢琴、游泳、网球,以及神经心理学和拓扑学的研究。似乎并不存在真正的捷径:即使是莫扎特,他4 岁就显露出音乐天才,在他写出世界级的音乐之前仍然用了超过13年时间。再看另一种音乐类型的披头士,他们似乎是在1964年的Ed Sullivan节目中突然冒头的。但其实他们从1957年就开始表演了,即使他们很早就显示出了巨大的吸引力,他们第一次真正的成功——Sgt. Peppers——也要到1967年才发行。Malcolm Gladwell
研究报告称,把在伯林音乐学院学生一个班的学生按水平分成高中低,然后问他们对音乐练习花了多少工夫:

在这三个小组中的每一个人基本上都是从相同的时间开始练习的(在五岁的时候)。在开始的几年里,每个人都是每周练习2-3个小时。但是在八岁的时候,练习的强度开始显现差异。在这个班中水平最牛的人开始比别人练习得更多——在九岁的时候每周练习6个小时,十二岁的时候,每周8个小时,十四岁的时候每周16个小时,并在成长过程中练习得越来越多,到20岁的时候,其每周练习可超过30个小时。到了20岁,这些优秀者在其生命中练习音乐总共超过 10,000 小时。与之对比,其它人只平均有8,000小时,而未来只能留校当老师的人仅仅是4,000 小时。

所以,这也许需要10,000 小时,并不是十年,但这是一个magic numberSamuel Johnson(英国诗人)认为10 年还是不够的:任何领域的卓越成就都只能通过一生的努力来获得;稍低一点的代价也换不来。Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price.
乔叟(Chaucer,英国诗人,1340-1400)也抱怨说:
生命如此短暂,掌握技艺却要如此长久。the lyf so short, the craft so long to lerne.

   
 

下面是我在编程这个行当里获得成功的处方:

  • 对编程感兴趣,因为乐趣而去编程。确定始终都能保持足够的乐趣,以致你能够将10年时间投入其中。
  • 跟其他程序员交谈;阅读其他程序。这比任何书籍或训练课程都更重要。
  • 编程。最好的学习是从实践中学习。用更加技术性的语言来讲,个体在特定领域最高水平的表现不是作为长期的经验的结果而自动获得的,但即使是非常富有经验的个体也可以通过刻意的努力而提高其表现水平。p. 366),而且最有效的学习要求为特定个体制定适当难度的任务,有意义的反馈,以及重复及改正错误的机会。p. 20-21)《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life》(在实践中认知:心智、数学和日常生活的文化)是关于这个观点的一本有趣的参考书。
  • 如果你愿意,在大学里花上4年时间(或者再花几年读研究生)。这能让你获得一些工作的入门资格,还能让你对此领域有更深入的理解,但如果你不喜欢进学校,(作出一点牺牲)你在工作中也同样能获得类似的经验。在任何情况下,单从书本上学习都是不够的。计算机科学的教育不会让任何人成为内行的程序员,正如研究画笔和颜料不会让任何人成为内行的画家“, Eric Raymond,《The New Hacker’s Dictionary》(新黑客字典)的作者如是说。我曾经雇用过的最优秀的程序员之一仅有高中学历;但他创造出了许多伟大的软件(XEmacs, Mozilla),甚至有讨论他本人的新闻组,而且股票期权让他达到我无法企及的富有程度(译注:指Jamie ZawinskiXemacsNetscape的作者)。
  • 跟别的程序员一起完成项目。在一些项目中成为最好的程序员;在其他一些项目中当最差的一个。当你是最好的程序员时,你要测试自己领导项目的能力,并通过你的洞见鼓舞其他人。当你是最差的时候,你学习高手们在做些什么,以及他们不喜欢做什么(因为他们让你帮他们做那些事)。
  • 接手别的程序员完成项目。用心理解别人编写的程序。看看在没有最初的程序员在场的时候理解和修改程序需要些什么。想一想怎样设计你的程序才能让别人接手维护你的程序时更容易一些。
  • 学会至少半打编程语言。包括一门支持类抽象(class abstraction)的语言(如JavaC++),一门支持函数抽象(functional abstraction)的语言(如LispML),一门支持句法抽象(syntactic abstraction)的语言(如Lisp),一门支持说明性规约(declarative specification)的语言(如PrologC++模版),一门支持协程(coroutine)的语言(如IconScheme),以及一门支持并行处理(parallelism)的语言(如Sisal)。
  • 记住在计算机科学这个词组里包含计算机这个词。了解你的计算机执行一条指令要多长时间,从内存中取一个word要多长时间(包括缓存命中和未命中的情况),从磁盘上读取连续的数据要多长时间,定位到磁盘上的新位置又要多长时间。(答案在这里
  • 尝试参与到一项语言标准化工作中。可以是ANSI C++委员会,也可以是决定自己团队的编码风格到底采用2个空格的缩进还是4个。不论是哪一种,你都可以学到在这门语言中到底人们喜欢些什么,他们有多喜欢,甚至有可能稍微了解为什么他们会有这样的感觉。
  • 拥有尽快从语言标准化工作中抽身的良好判断力。

抱着这些想法,我很怀疑从书上到底能学到多少东西。在我第一个孩子出生前,我读完了所有怎样……”的书,却仍然感到自己是个茫无头绪的新手。30个月后,我第二个孩子出生的时候,我重新拿起那些书来复习了吗?不。相反,我依靠我自己的经验,结果比专家写的几千页东西更有用更靠得住。

Fred Brooks在他的短文《No Silver Bullets》(没有银弹)中确立了如何发现杰出的软件设计者的三步规划:

  • 尽早系统地识别出最好的设计者群体。
  • 指派一个事业上的导师负责有潜质的对象的发展,小心地帮他保持职业生涯的履历。
  • 让成长中的设计师们有机会互相影响,互相激励。

这实际上是假定了有些人本身就具有成为杰出设计师的必要潜质;要做的只是引导他们前进。Alan Perlis说得更简洁:每个人都可以被教授如何雕塑;而对米开朗基罗来说,能教给他的倒是怎样能够不去雕塑。杰出的程序员也一样

所以尽管去买那些Java书;你很可能会从中找到些用处。但你的生活,或者你作为程序员的真正的专业技术,并不会因此在24小时、24天甚至24个月内发生真正的变化。

云计算是什么?

相对于家里的老婆,青楼女子就是云计算,不能因为有了她们,人们就不娶老婆不过日子了,风花雪月云计算一辈子的,古今中外也只有一个柳三变,一个落魄堕落的文人,云计算永远代替不了桌面计算。。

微软迎来35岁生日:盘点经典时刻

导读:美国IT网站Computer World专栏作家普雷斯顿格拉拉(Preston Gralla)今天撰文,列举了微软创立35年来的一系列重大事件。

以下为文章概要:

1975年,刚刚从哈佛大学退学的比尔盖茨(Bill Gates)和他在高中时的好友保罗艾伦(Paul Allen)一起创建了一家小公司,专门为一款名为Altair 8800的微型计算机编写软件。他们的第一款产品名为Altair BASIC语言。同一年,这家公司被命名为Micro-soft,随后又改成了MicroSoft,最终被定为Microsoft,也就是今天的微软。

从那时起,这家公司逐渐地创立了一个全新的行业,改变了我们的生活和工作方式,并最终成为全球最大的软件公司。与此同时,它还造就了数不尽的百万富翁,其中有些甚至成了亿万富翁。

在微软迎来35岁生日之际,我也决定回顾一下这家软件巨头历史上最好、最差以及最值得注意的时刻、技术、产品、决策和人。

最精明的交易

1980年,微软与IBM签订了一份协议,为即将于1981年面市的IBM PC开发操作系统,这款操作系统也就是众所周知的MS-DOS。微软并没有亲自开发MS-DOS,而是委托一家名为西雅图电脑(Seattle Computer)的公司将QDOS进行了改写。QDOS主要基于CP/M操作系统开发,后者归Digital Research公司所有。具有讽刺意味的是,IBM最初就是委托Digital Research公司为其开发操作系统,但双方未能谈妥。而微软最终借助这一交易成为了全球操作系统市场的霸主。

最明智的并购

1987年,微软以1400万美元现金收购了Forethought公司。Forethought此前已经为苹果Mac电脑开发了幻灯片演示程序,该程序最早名叫Presenter,但后来被更名为PowerPointPowerPoint后来成了微软Office的核心组件,而Office 多年以来一直在办公软件市场占据主导。

最棘手的合作

19858月,微软与IBM签订协议,联合开发OS/2高端操作系统。该操作系统没有再现DOS的辉煌,更无法与后来的Windows媲美,微软也因此与IBM产生了矛盾。微软的主要精力都放在了WindowsWindows NT上,而OS/2的发展则不尽如人意。

最意外的投资

1997年,微软的老对手苹果处于崩溃边缘,急需现金支持。这时,微软抛出了橄榄枝,购买总值1.5亿美元的苹果股票,但并不享有投票权。微软还承诺继续为Mac开发Office,苹果则同意将IE绑定在Mac OS中,并将其作为默认浏览器。但双方的交易未能一直持续下去,Mac不再绑定IE,微软虽然仍在为Mac开发Office,但开发速度却很慢,而且也没有任何条款对其进行约束。

最有预见性的备忘录

1976年,盖茨发布了一封公开信,斥责那些免费散播BASIC语言的人。盖茨在信中写道:有谁愿意不求回报从事专业工作?什么样的人会愿意花上3年时间编写程序、寻找漏洞、组织文档并免费传播?尽管开源当时还不流行,但这封信为盖茨与开源组织和免费软件支持者之间的斗争奠定了基础。

最受喜爱的操作系统

微软历史上最受欢迎的两款操作系统是MS-DOS 5Windows XP1991年发布的MS-DOS 5修正了MS-DOS 4中的许多漏洞,因此非常稳定,而且该系统首次突破了DOS系统640K内存的限制,使得编程人员可以利用更多资源。

借助2001年发布的Windows XP,微软最终将消费级和企业级Windows整合到一起,其实质是在稳定的Windows NT内核的基础上创建一款以消费者为导向的操作系统。这款系统也最终终结了以DOS作为基础操作系统的时代,Windows XP比以往的所有Windows系统都更为稳定,可靠性也更高。

最令人不满的操作系统

这一名号非MS-DOS 4Windows MeWindows Vista莫属。发布于1988年的MS-DOS 4漏洞百出,许多应用都拒绝与其兼容,导致用户大量流失,这也是微软操作系统业务的首次重大失误。Windows Me则发布与2000年,该系统同样存在大量漏洞,不仅存在许多安装问题,软硬件的兼容性也很差。

但最令人诟病的还是2006年发布的Windows Vista。这款系统的惨败远远超过了MS-DOS 4Windows MeXPVista之间整整间隔了5年,这在微软历史上绝无仅有,因此用户对其抱有很大期望。但不幸的是这款产品自发布以来便存在大量硬件不兼容的问题,而且非常消耗资源。更要命的是,很多贴有Vista Capable的电脑却无法完整运行Vista,这甚至引发了集体诉讼。

最好的跟进操作系统

这一殊荣应当归Windows 7所有,它符合很多用户最初对Windows Vista的预期。不仅速度更快,而且不存在不兼容的问题。

最深远的操作系统

1993年,微软发布了Windows NT,这款产品主要着眼于企业市场,它无需依托DOS而存在。该产品比Windows 3.1更为稳定,而且是一款完整的32位系统。首款产品被命名为NT 3.1,后来又为方便记住而将其命名为Windows 2000。最终,消费级和企业级产品被整合到Windows XP中,而NT核心变成了XP核心,并且一直被沿用至今。也就是说,除了那些仍在使用Windows 3.XWindows 9X的用户,当今所有的Windows用户都在使用NT的后代。

最不为人知的成功

微软SQL Server有着鲜为人知的成功历程。SQL Server成立于1988年,由微软、Sybase和已经破产的Ashton-Tate合资,主要为处于困境之中的OS/2操作系统设计。这款产品主要被作为Sybase SQL Server 3.0的一个端口,后者能够在UnixVMS等许多系统上运行。与Sybase分道扬镳后,微软开始为Windows NT开发SQL ServerSybase也将其产品名称更改为Adaptive Server Enterprise

如今,SQL Server已经成长为仅次于甲骨文和IBM的全球第三大数据库软件。

最明智的软件捆绑

很明显,微软最明智的软件捆绑就是将WordExcelPowerPoint捆绑到Office中,这款产品最早于1989年面向Mac推出,后于1990年面向Windows推出。Word最初名叫Multi-Tool Word1983年面向MS-DOS推出,1985年推出Mac版,1989年推出Windows版。Excel则于1985年面向Mac发布,后于 1987年推出Windows版。同样是在1985年,微软推出了MacPowerPoint1990年推出了Windows版。

最卑鄙的软件捆绑

这个名号非Windows Genuine Advantage(以下简称WGA)莫属,这是一款反盗版软件。如果用户使用的Windows没有付费或注册,WGA就会发出警告。而且必须要安装 WGA后才能够安装系统更新。微软2006年开始通过Windows Update发送WGA,甚至将其标注为高优先级。但事实上这个更新与安全和稳定性无关,反而会扫描用户硬盘。

愤怒的用户将微软告上法庭,但该案最终被美国联邦法院驳回。

最糟糕的服务器故障

2007824日到25日,WGA将数千名正版Windows XPVista用户误判为盗版用户。微软表示,这是由于WGA服务器的故障所致。Vista的一些重要功能甚至都被停用,整个故障持续了19小时。

最尴尬的产品故障

使用Excel的用户肯定不会对其计算能力产生怀疑,但是20079月,Excel却出现了一个非常尴尬的故障,使之无法正确计算出简单的算数。在某些情况下,如果方程的结果是65,53565,536Excel会将结果错误地显示成100,000

微软表示,这不是因为Excel的计算能力低下,而是显示问题。微软随后修正了这一漏洞。但Excel却就此声名远扬。

最低年收入

1976年,微软的总收入仅为1.6005万美元,这些都来自于为MITS Altair 8800编写的BASIC程序。这还不包括微软1975年第四季度所欠下的1.4405万美元的债务。

最高年收入

2008财年,微软实现收入605.2亿美元,同比增长18%

最差同比业绩

微软自创立以来每年都在盈利,每年的收入和利润也都在增长,直到2009年。截至2009630日的2009财年内,微软实现收入 584.4亿美元,同比下滑3%;实现运营利润203.6亿美元,同比下滑9%;实现净利润145.7亿美元,同比下滑18%;实现每股收益1.62美元,同比下滑13%

最恼人的办公工具

199611月,微软发布了Office 97,其中包含了一个Office助手。这是一个采用别针外形的动画角色,不过用户也可以自行选择其他形象。这个工具本来是为了给用户提供帮助,但却事与愿违,给用户带来了极大的烦恼,并因此而备受指责。甚至连微软内部的人都十分讨厌这个工具。

不过微软巧妙地将这一劣势变成了优势,专门推出了一个名为anti-Clippy的网站,用于推广Office XP。原因在于Office XP已经删除了Office 97中默认安装的Office助手。根据《今日美国报》报道,这个网站的页面访问量高达2200万。

最能提升效率的工具

20063月,微软推出了Office 2007,并为用户提供了全新的界面。抛弃了以往熟悉的目录和工具栏,而采用了全新的Ribbon元素。这种界面将最常用的一系列命令设计到了标签面板中。尽管仍有一些用户不喜欢Ribbon,但这种界面的确得到了很多人的青睐。微软的研究发现,Ribbon可以提升效率。

最难以理解的广告

微软多年以来花费了数不清的资金来做广告,但其中有一个系列的广告最令人难以理解,那就是盖茨与喜剧演员杰瑞宋飞(Jerry Seinfeld)联袂出演的广告。他们二人在广告中一起漫无目的地搜索便宜的鞋子和减价产品。自20089月发布以来,这组广告备受批评。好在微软很快便撤下了这组广告。

最有效的广告

微软从宋飞系列广告中吸取了经验教训,并于2009年推出了最有效的广告。这组名为笔记本猎手(Laptop Hunter)的广告描述了一群颇有吸引力且个性十足的年轻人搜罗笔记本的过程,他们最终发现Windows笔记本比Mac性能更强,而且价格更低。

这组广告抓住了经济不景气的时机击中了苹果的要害价格。品牌价值评估公司BrandIndex的数据显示,该广告发布后几个月,微软在18 34岁年龄组受访者中价值认同度便从0上升到46.2,而苹果则从70下滑到12.4,满分为100

最低调的产品发布

在电脑的发展史上,Windows 1.0只是一个默默无闻的产品。这款产品最初于1981年被命名为界面管理器(Interface Manager)。作为微软首款图形操作系统,Windows 1.01983年发布,但直到1985年才正式上市。这款操作系统必须基于DOS运行。而且它的风头也被1984年发布的苹果Mac操作系统抢走。

最具有革命意义的产品发布

19905月,微软凭借着Windows 3.0将图形界面引入主流。Windows 1.02.0版本都没有引发太大反响,但3.0却获得了成功。尽管此时已经出现了Mac等图形操作系统,但Winodws 3.0仍然给PC用户带来了巨大的惊喜,它不仅具备图形界面,而且支持多任务,还能够复制粘贴。而且,用户终于可以用鼠标操纵PC了。

最引人注目的产品发布

1995年,微软发布了Windows 95,配套的广告费约为3亿美元,这创下了当时的历史之最。仅仅是购买了滚石乐队《Start Me Up》的版权,将其作为Windows 95的主题曲就花了1200万美元。除了大规模的电视和广播广告外,微软还在多伦多的CN Tower上拉起了300英尺(约合91.44)长的横幅广告,在伦敦付费印刷了150万份《泰晤士报》免费发放,又用微软标志性的黄、红、绿三色点亮了纽约帝国大厦。

最好也是最差的浏览器发布

19979月发布的IE4最终击败了Netscape Navigator浏览器,并为微软奠定了浏览器市场的霸主地位。微软还将IE4Windows深度整合,但却因此引发了美国和欧盟政府的反垄断审查。

最差的界面

要评选最差软件,微软1995年发布的Bob肯定位列其中。这款软件是专门针对Windows 3.1和后来的Windows 95设计的。该软件原本是为了帮助不熟悉技术的用户使用电脑,但却事与愿违,非但没有为用户带来便利,反而令用户更为迷惑。

最明智的市场定位

微软最早的产品都是瞄准单个用户,而不是企业的IT部门。但微软明白,要把企业做大,就必须面向企业出售产品。1996611日,微软推出了Exchange Server,该产品最早是为处理微软内部的电子邮件而编写的,但最终却成为企业的重要工具,包含了移动设备同步、电子邮件、语音邮件等企业IT部门所需的通信功能。

最佳雇员

无论你是否喜欢他,微软现任CEO史蒂夫鲍尔默(Steve Ballmer)的强硬作风以及精准的眼光都是微软得以成为全球最为成功的软件公司的重要因素。

作为盖茨在哈佛的好友,鲍尔默于1980年加盟微软,而且成为微软当时少有的几个有实际工作经验的员工。他此前曾效力于宝洁,后来就读于斯坦福商学院,一年后加盟微软。

最浪费的人才

雷奥兹(Ray Ozzie)是科技行业最具有远见卓识的人之一。他先后参与设计了第一个电子表格系统VisiCalc,并开发了Lotus Symphony办公套件。2005年,微软收购了奥兹的Groove公司后,奥兹随之一同加盟微软,并担任首席技术官。20066月,他接替盖茨出任微软首席软件架构师。但他并没有对微软的发展方向产生太大影响。有业内人士认为,奥兹之所以没有发挥出应有的作用,是因为未能适应微软狗咬狗的企业文化。

最奇怪的公司发言人

多数企业都希望发言人能够思维缜密、字字斟酌,但作为微软的CEO,鲍尔默却经常出现一些怪异行为。他的很多举动都已经为业界所熟知,有的甚至成了YouTube上的热门视频。

最优秀的发言人

盖茨的睿智赢得了媒体的赞誉。在20086月退休前夕,他还频频出现在各大杂志的封面上。

最糟糕的公关危机

20082月,一份令微软颇为尴尬的文件被曝光出来,从而导致了后来著名的垃圾PC(junk PC)诉讼。这起集体诉讼指控微软误导消费者购买标有Windows Vista CapableWindows XP电脑,而实际上,这些电脑根本无法运行Windows Vista的一些重要功能。这份文件还成为了集体诉讼中的证据。

最令人震惊的法庭判决

作为美国司法部1998年对微软开展的反垄断诉讼的最终结果,200043日,美国联邦法院要求微软分拆成两家公司:一家开发和销售操作系统,另外一家则负责其他的软件业务。

而在1999115日,同一名法官还曾经认定微软利用垄断地位打击网景、苹果、SunLotus等竞争对手。不过这一判决最终未能生效。

最有利的法庭判决

有两起案件都可以获得这一殊荣。一起是苹果1988年对微软和惠普发起的总值55亿美元的诉讼,指控Windows侵犯了Mac的外观和界面。但美国联邦法官瓦恩沃克(Vaughn Walker)最终于199361日做出了对微软有利的判决。

还有一起则发生于2001628日,美国华盛顿特区巡回上诉法院驳回了此前对微软的分拆判决。但微软仍然受到反垄断调查,直至2002年。

最大的宽慰

2002111日,美国司法部与微软达成和解。微软需要与其他企业分享API(应用编程接口),并纠正不正当竞争行为,但微软最终得以避免被迫分拆的命运。

最糟糕的国际纠纷

2008228日,欧盟对微软处以13亿美元的罚款,原因是微软违反了双方2004年达成的与Windows相关的条款。欧盟竞争事务委员尼莉克劳斯(Neelie Kroes)称,微软是50年来首个因为违反欧盟反垄断规定而被罚款的公司。

最具误导性的产品演示

1998年的反垄断官司中,微软为了说明IEWindows不可分割,进行了当场演示。结果表明,将IE移除后,Windows会出现不稳定和运行速度下降的问题。但微软的演示随后被证实是有意误导。

最佳资金利用方式

多年以来,微软为公司和投资者创造了数十亿美元的利润,他们有着多种支出渠道。但盖茨却通过创建比尔和梅琳达盖茨基金会的方式为资金找到了最佳利用方式。

该基金会的资金总额超过340亿美元,自从1994年创立至今,该基金会共计捐赠了210亿美元的资金,2008年则高达28亿美元。

最糟糕的噩梦

199894日,斯坦福大学的两名博士生拉里佩奇(Larry Page)和赛吉布林(Sergey Brin)创建了谷歌。自那以后,谷歌便占据了互联网的统治地位。这一市场最初被微软忽视,但微软如今却希望迎头赶上。谷歌还凭借GmailDocs进军了电子邮件和办公软件市场,甚至推出了Chrome浏览器和Chrome OS操作系统,从而成为了微软最大的竞争对手。

魔兽争霸vs星际争霸vs红色警戒

我还是比较喜欢玩红警2

 

魔兽娱乐性强 比较搞笑 你常常越玩越轻松
星际竞技性强 比较严肃 你常常越玩越紧张
红警政治性强 比较偏激 你常常越玩越气愤

玩魔兽 就像唱卡拉ok 普通人练一首歌半个月 已经能赢得同伴的掌声
玩星际 就像唱京戏 曲不离口的练上一年 可能还唱不上调子
玩红警 就像说话 不用练就差不多水平 练了很多年说话的水平不见得高多少

学习魔兽 你能打赢两家疯狂电脑的时候 你和真人打就能取胜了
学习星际 你能打赢七家电脑 你还纳闷怎么还打不过真人
学习红警 你能打赢七家电脑1000000次 不见得和真人玩过

学习魔兽 两个小时你能死在相同的战术上八次 毫无还手之力
学习星际 两个小时你能死在迥异的战术上八次 毫无还手之力
学习红警 两年你都死在相同的得战术上无数次 毫无还手之力

魔兽里面 你专心练一个族往往就能够应付对同族异族4种情况打法
星际里面 人打虫的高手往往曾经就是虫打人的高手
红警里面 你学会一个国家就等于学会了所有国家

魔兽里面 熟练了几种套路就可以取胜
星际里面 熟练了几种套路还是被随机应变的对手牵着鼻子走
红警里面 熟练了几种套路,你会发现根本没用,只要熟练一种就可以了

魔兽里面 你利用计谋伏击或者包围了对方主力 对方却掏出回程扬长而走
星际里面 你会发现不仅有游击战还有阵地战、伏击战、空投战……
红警里面 你会发现什么战都是多余的,人多才是硬道理

魔兽里面 敌人无论离家多远都可以十秒内回救被你偷袭的基地
星际里面 你稍不留神就中了声东击西的诡计
红警里面 你必须时刻留神你得矿车

魔兽里面 你5分钟侦察一次还能对敌人兵种搭配了如指掌
星际里面 你5分钟侦察五次说不定得到的还是假情报
红警里面 你5分钟侦查一次,然后就再也用不着侦查了

魔兽里面 5分钟不侦察你还能猜出来敌人部队构成
星际里面 3分钟不侦察出门就可能全是克制你的兵种
红警里面 不用你去侦查地图上就能看见敌人的情况

魔兽里面 赢了一场大战就可以松口气 因为几乎稳操胜券
星际里面 赢了一场大战 正得意一下却发现刚刚大战中被一支奇兵偷袭得经济全毁
红警里面 赢了一场大战 你会觉得很幸运 你好多天都没有打过大战了

魔兽里面 大战对决常常形势一边倒
星际里面 大战对决常常双方两败俱伤
红警里面 大战对决常常就像已经知道了结局颁奖典礼

魔兽里面 一次全军覆没99%可以打GG
星际里面 十次全军覆说不定都不知鹿死谁手
红警里面 经常全军覆没是一种战斗方式

魔兽里面 你郁闷于虽然有顽强精神却在难以劣势中翻盘
星际里面 你郁闷于虽然有优势却被有顽强精神的对手翻盘
红警里面 你郁闷于必须有对方不知道的战术才能翻盘

魔兽里面 录像看到一半往往能知道结局
星际里面 录像看到结局你才发现开始的判断错了
红警里面 录像是什么都不知道

魔兽里面 初始的基地被拆毁就失去了希望
星际里面 两个人鏖战到调换基地位置甚至四海为家也不稀奇
红警里面 初始基地不仅可以被拆 还可以被占 被偷 被炸 自己还可以逃跑

魔兽里面 初始矿采完基本胜负就见分晓
星际里面 全地图的资源耗尽说不定才换来一个平局
红警里面 大家一直在抢资源很少出现平局

魔兽里面 你可以龟缩防守、偏安一隅
星际里面 你如果不及时扩张 除了初始矿点 其他矿点都有对方采矿的农民
红警里面 你必须去抢矿 这也是一种必须走的形势

魔兽里面 你把基地门口造满防御 敌人骂你猥琐赖皮
星际里面 你把基地门口造满防御 敌人不是直接空投到你家里就是直接一颗核弹敲开大门
红警里面 你必须在基地里面造满防御 敌人的飞机 飞行兵才不会占到便宜

魔兽里面 你可以用高级兵种轻松欺负低级兵种
星际里面 你发现原来小机枪也能”以小反上”的打航母
红警里面 你发现只有高级兵种才是王者

魔兽里面 没有对空部队看到空军常常就要选择逃跑
星际里面 你刚出来4个飞龙却被3队不对空的小狗强拆了基地
红警里面 飞行兵就是制胜的关键,别的都是摆设

魔兽里面 你会质疑”量变引起质变”的法则
星际里面 你会验证”量变引起质变”的法则
红警里面 你会质疑”有名气的公司比较负责”

魔兽里面 死掉一个兵会心痛半天
星际里面 你知道什么叫做前仆后继
红警里面 兵就是为了死掉的

魔兽里面 作战部队不敢过于分散
星际里面 作战常常要地图各点全面开花
红警里面 作战就是在几个特殊的地方进行

魔兽里面 即使知道敌人什么兵种配置有时候也赢不了
星际里面 知己知彼才真的百战不殆
红警里面 看到对方的兵种配置就知道对方的水平了

魔兽里面 规矩多 玩家发挥余地小 按部就班往往比突发奇想更奏效
星际里面 规矩少 玩家发挥余地大 按部就班往往陷于被动
红警里面 没规矩 玩家战术就一种 突发奇想只有在对菜鸟的时候才能用

魔兽里面 以不变应万变
星际里面 以万变应不变
红警里面 永远不变

魔兽里面 1个英雄、道具可以四两拨千斤
星际里面 1个隐形的单位可以四两拨千斤
红警里面 1个高手对菜鸟可以四两拨千斤

魔兽里面 你为那个用光环照耀部队、高人一等的英雄而感到骄傲
星际里面 你发现引爆地雷和对方坦克同归于尽的那个小狂徒才是真正的英雄
红警里面 你为飞行兵拿下矿区而骄傲

魔兽里面 你会发现操作被人性化设计之后 如同一部傻瓜相机
星际里面 你会发现最简单的细节你也要亲手去处理
红警里面 你会发现可以自己处理的事情不是很多。可以边吃零食,边和高手对战

魔兽里面 你会发现apm150(点击速率)的时候已经会无聊到插旗
星际里面 你会发现apm150的时候才能勉强用用神族
红警里面 你会发现apm150是什么你都不知道,只知道手快很有用

魔兽里面 你觉得12个女巫按了12次O之后同时变了对方12个羊很有成就感
星际里面 你发现原来12运输机的地毯式空降也仅仅是操作的基本功而已
红警里面 你认为可以让12个坦克移动中躲掉攻击,就是操作了

魔兽里面 你觉得操作2队多部队围杀、齐射、魔法、道具是多么华丽
星际里面 你才知道就连让4队雷车、2队坦克整齐行进都不容易
红警里面 你盯着炮弹看,快落地的时候让自己的坦克躲,炮弹多的时候还真不容易

魔兽里面 连流星陨石都认识自己人和友军
星际里面 一个闪电放不好 可能自己被电死的比敌人的还多
红警里面 除了少数几个枪法好的兵种,其他都经常误伤自己人

魔兽里面 常常讲这是理所当然
星际里面 常常讲这也不是不可能
红警里面 常常讲这是不可能的

魔兽里面 常有某个玩家用某某流战术把所用的种族用成所在版本的王者之族
星际里面 你突然发现昨天似乎无敌的偶像今天就输在某个黑马手
红警里面 你知道自己只剩下一种战术的时候,你就是高手了

魔兽玩久了 才知道 效率是第一
星际玩久了 才知道 数量是第一
红警玩久了 才知道 经验是第一

魔兽玩久了 才知道 等级是第一
星际玩久了 才知道 经济是第一
红警玩久了 才知道 兵力是第一

魔兽玩久了 才知道 稳定娴熟是第一
星际玩久了 才知道 侦察应变是第一
红警玩久了 才知道 对偷袭方法了解是第一

魔兽玩久了 才知道什么叫做战斗
星际玩久了 才知道什么叫做战略
红警玩久了 才知道什么叫做按部就班

魔兽玩久了 你发现地图到现在为止还停留在陆战
星际玩久了 你发现从WCG2001开始官方地图就有岛战
红警玩久了 你发现地图是永远不变的

魔兽玩久了 你发现看rep要变换版本和收集地图实在厌烦
星际玩久了 你发现一个400k的rep记录了一场3小时的比赛
红警玩久了 你发现rep是什么你都不知道

魔兽玩久了 你会发现总有或多或少冷板凳单位
星际玩久了 你会发现没有一个单位是多余的
红警玩久了 你发现高手对战大多数单位都是多余的

魔兽玩久了 你会发现你所了解的魔兽知识越来越多
星际玩久了 你会发现你所不懂的星际知识越来越多
红警玩久了 你发现你所知道的红警知识没用的越来越多

魔兽玩久了 仿佛在考验你的耐心和熟练程度一般
星际玩久了 总有出乎你意料的东西令你眼前一亮
红警玩久了 想睡觉

魔兽玩久了 你发现刚练熟的高效打法随着版本更新、单位修改而不再应验
星际玩久了 你发现不但新战术发明的越来越快,而且被破解的也越来越快
红警玩久了 你发现战术越来越单一,破解方法越来越无用

魔兽玩久了 你发现战术大多跟着补丁变
星际玩久了 你发现战术大多跟着玩家变
红警玩久了 你发现战术就是偷袭和反偷袭

魔兽玩久了 你发现魔兽的未来掌握在补丁手里
星际玩久了 你发现星际的未来掌握在玩家手里
红警玩久了 你发现红警的未来掌握在新游戏手里

魔兽玩久了 觉得人在被魔兽玩
星际玩久了 觉得是人在玩星际
红警玩久了 觉得人和红警都在被游戏公司玩

魔兽玩久了 天天盼望下一个版本升级补丁调整单位属性
星际完久了 天天盼望不要出现bug这样就不用再有新补丁诞生
红警玩久了 天天盼望不要出新补丁,要不bug就没了

魔兽玩久了 忽然想起冰封王座1.07诞生到1.20几乎版版不同
星际玩久了 回忆起母巢之战1.04到1.08只做过两次单位属性变动就稳定至今
红警玩久了 算了一下10年了就出过一次补丁,还没把bug改掉

魔兽玩久了 才知道魔兽三确实比星际一画面好
星际玩久了 才知道魔兽在用孙子辈的游戏和星际一代的产品比较画面
红警玩久了 才知道同样是爷爷辈的游戏,差距怎么就那么大呢?

魔兽玩久了 才知道魔兽玩家说魔兽好却很多都没玩过甚至听说过魔兽III的爷爷和爸爸
星际玩久了 才知道星际的第一代已经快八岁了
红警玩久了 才知道红警已经六年每人玩了

魔兽玩久了 避免不了争论种族平衡性、英雄兵种单位bug性的口水战
星际完久了 你问哪个族最强 大家会告诉你三族一样厉害 根据兴趣爱好选择
红警玩久了 总是想说,咱们出飞行兵了,换种打法吧

魔兽玩久了 你不知道为什么魔兽玩家似乎也分了种族
星际玩久了 你会发现三族来自不同星球但各族玩家却似兄弟
红警玩久了 你会觉得每个国家几乎没有区别

魔兽玩久了 你发现各族玩家往往在为维护自己所用种族而争辩
星际玩久了 你发现无论何族玩家都在为维护共同的星际而争辩
红警玩久了 你会发现这个游戏一直在维护某些国家的政治利益

魔兽玩久了 你会品味什么是流行
星际玩久了 你会体会什么是经典
红警玩久了 你会明白什么是猥琐

魔兽玩久了 你才知道为什么魔兽如此热门
星际玩久了 你才知道为什么星际如此经典
红警玩久了 你才知道为什么红警如此冷门并且没有人玩

魔兽玩久了 你会喜欢上魔兽 别人说魔兽不好 你会火冒三丈 恨不得打骂他
星际玩久了 你会喜欢上星际 别人说星际不好 你会一笑而过 不屑和他争辩
红警玩久了 你会喜欢上红警 别人说红警不好 你会火冒三丈 不知道怎么争辩

魔兽玩久了 你慢慢体会到魔兽真的是一款好游戏
星际玩久了 你慢慢体会到星际越来越不像一款游戏
红警玩久了 你慢慢体会到一个好的公司比一款好的游戏重要的多

魔兽玩久了 你发现魔兽是如此精彩的游戏 给我们带来快乐
星际玩久了 你发现生活和思维方式已经有了星际的烙印
红警玩久了 你发现思维方式越来越简单了

魔兽玩久了 才发现原来有很多初中小朋友加入魔兽玩家行列
星际玩久了 才发现原来有很多成家立业的”大叔”还没退出星际玩家行列
红警玩久了 才发现原来有很多初中的小朋友和成家立业的大叔,不断加入和迅速退出这红警玩家的行列

魔兽玩久了 才知道世界上最远的距离不是中国电信和网通 而是魔兽精灵玩家和兽人玩家的心
星际玩久了 才知道 星品不好人品就不好
红警玩久了 利用bug在红警里不算人品太不好

魔兽玩久了 才知道 魔兽是暴雪(Blizzard)制造出来的最流行的精品大作
星际玩久了 才知道 星际是上帝借暴雪之手赐予玩家们的经典杰作
红警玩久了 才知道 西木(Westwood)为什么会输给暴雪

PowerShell and Word

a Sample code to create a new Word Doc and create tables within the doc

 

It simply gets the services on your system and outputs them to a Word document in a table within that document.  It then saves the file to C:services.doc and closes down Word.  This is just a rough example.  It could likely be better written.

 

# Gather our data that we want to write in a Word document
$services = @(Get-Service)

# Launch instance of Microsoft Word
$msWord = New-Object -Com Word.Application

# Create new document
$wordDoc = $msWord.Documents.Add(‘Normal.dot’,$false,0,$true)

# Make word visible (optional)
#$msWord.Visible = $true

# Activate the new document
$wordDoc.Activate()

# Create a new table large enough to hold the data we have
$docTable = $wordDoc.Tables.Add($wordDoc.Application.Selection.Range,$services.Count + 1,3)

# Insert the column headers into the table
$columnHeaders = @(‘Status’,‘Name’,‘DisplayName’)
for ($columnIndex = 1; $columnIndex
-le 3; $columnIndex++) {
   
$cell = $docTable.Cell(1,$columnIndex).Range
   
$cell.Font.Name=“Arial”
   
$cell.Font.Bold=$true
   
$cell.InsertAfter($columnHeaders[$columnIndex - 1])
}

# Load the data into the table
for ($rowIndex = 2; $rowIndex
-le ($services.Count + 1); $rowIndex++) {
   
$dataIndex = $rowIndex – 2
   
$rowData = @($services[$dataIndex].Status, $services[$dataIndex].Name, $services[$dataIndex].DisplayName)
   
for ($columnIndex = 1; $columnIndex
-le 3; $columnIndex++) {
       
$cell = $docTable.Cell($rowIndex,$columnIndex).Range
       
$cell.Font.Name=“Arial”
       
$cell.InsertAfter($rowData[$columnIndex - 1])
    }
}

# Save the document to disk and close it
$filename = ‘C:services.doc’
$wordDoc.SaveAs([REF]$filename)
$wordDoc.Close()

# Exit our instance of word
$msWord.Application.Quit()

$services = @(Get-Service)

# Launch instance of Microsoft Word
$msWord = New-Object -Com Word.Application

# Create new document
$wordDoc = $msWord.Documents.Add(‘Normal.dot’,$false,0,$true)

# Make word visible (optional)
#$msWord.Visible = $true

# Activate the new document
$wordDoc.Activate()

# Create a new table large enough to hold the data we have
$docTable = $wordDoc.Tables.Add($wordDoc.Application.Selection.Range,$services.Count + 1,3)

# Insert the column headers into the table
$columnHeaders = @(‘Status’,‘Name’,‘DisplayName’)
for ($columnIndex = 1; $columnIndex
-le 3; $columnIndex++) {
   
$cell = $docTable.Cell(1,$columnIndex).Range
   
$cell.Font.Name=“Arial”
   
$cell.Font.Bold=$true
   
$cell.InsertAfter($columnHeaders[$columnIndex - 1])
}

# Load the data into the table
for ($rowIndex = 2; $rowIndex
-le ($services.Count + 1); $rowIndex++) {
   
$dataIndex = $rowIndex – 2
   
$rowData = @($services[$dataIndex].Status, $services[$dataIndex].Name, $services[$dataIndex].DisplayName)
   
for ($columnIndex = 1; $columnIndex
-le 3; $columnIndex++) {
       
$cell = $docTable.Cell($rowIndex,$columnIndex).Range
       
$cell.Font.Name=“Arial”
       
$cell.InsertAfter($rowData[$columnIndex - 1])
    }
}

# Save the document to disk and close it
$filename = ‘C:services.doc’
$wordDoc.SaveAs([REF]$filename)
$wordDoc.Close()

# Exit our instance of word
$msWord.Application.Quit()

$services = @(Get-Service)

# Launch instance of Microsoft Word
$msWord = New-Object -Com Word.Application

# Create new document
$wordDoc = $msWord.Documents.Add(‘Normal.dot’,$false,0,$true)

# Make word visible (optional)
#$msWord.Visible = $true

# Activate the new document
$wordDoc.Activate()

# Create a new table large enough to hold the data we have
$docTable = $wordDoc.Tables.Add($wordDoc.Application.Selection.Range,$services.Count + 1,3)

# Insert the column headers into the table
$columnHeaders = @(‘Status’,‘Name’,‘DisplayName’)
for ($columnIndex = 1; $columnIndex
-le 3; $columnIndex++) {
    $cell = $docTable.Cell(1,$columnIndex).Range
    $cell.Font.Name=“Arial”
   
$cell.Font.Bold=$true
   
$cell.InsertAfter($columnHeaders[$columnIndex - 1])
}

# Load the data into the table
for ($rowIndex = 2; $rowIndex
-le ($services.Count + 1); $rowIndex++) {
    $dataIndex = $rowIndex – 2
    $rowData = @($services[$dataIndex].Status, $services[$dataIndex].Name, $services[$dataIndex].DisplayName)
    for ($columnIndex = 1; $columnIndex
-le 3; $columnIndex++) {
        $cell = $docTable.Cell($rowIndex,$columnIndex).Range
        $cell.Font.Name=“Arial”
       
$cell.InsertAfter($rowData[$columnIndex - 1])
    }
}

# Save the document to disk and close it
$filename = ‘C:services.doc’
$wordDoc.SaveAs([REF]$filename)
$wordDoc.Close()

# Exit our instance of word
$msWord.Application.Quit()

Powershell与sql sever 2008

刚发现二者关联很大。。

准备钻研一下。。

Google走了,国新办网络局立功了!!!

3月23日消息,据国外媒体报道,谷歌周一宣布,已正式关闭中国内地网站Google.cn,同时将用户重新定向到谷歌香港网站。

谷歌称:履行我们不再对Google.cn进行审查的承诺很难,我们希望全世界尽可能多的网民访问到我们的服务,其中包括中国内地用户。但是,在整个谈判过程中,中国政府的态度很明确,自我审查是一个不可商量的法律规定。

谷歌表示:我们相信,这种通过谷歌香港网站(Google.com.hk)提供未经审查的简体中文搜索服务的做法是可行的,而且完全合法,将在很大程度上提升中国网民所访问的信息量。

谷歌还表示:我们十分希望中国政府能够尊重我们的决定。另外,关闭Google.cn网站后,谷歌在内地的研发和销售团队将予以保留。

受该决定影响,谷歌在内地的一部分员工可能将失业,但知情人士称,大部分员工仍将继续为香港网站Google.com.hk服务。

程序员能力矩阵 你属于哪一层?

注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识。


计算机科学 Computer Science



软件工程 Software Engineering



程序设计 Programming







经验 Experience







学识 Knowledge







文件名批量修改工具

这个工具我用了很久了,特别方便。。

它提供批量文件的文件名的插入、修改、删除、替换、编号等等功能。。。

用来整理资料比较方便

下载地址如下 eyes

blog建立完成,立碑纪念

花了几天时间,从买域名到买主机空间到用wordpress建立blog,再换主题,安装插件。。麻烦死了。。尤其是碰上个山寨的国产主题。。。还要全部自己手动修改。。。

域名70多,虚拟主机5折135,明年会更贵些了。。。

不管这么多,先建起来玩玩吧~