2010年12月27日

我们需要莱特希尔报告

作者 李家同 
 
我们社会上有时会流行某一种服装,或是某一首歌,其实,我们的科技也有流行的,举例来说,奈米科技 (Nano) 就曾经红透半边天,最近好像已被打入冷宫,当红科技应该是云计算。这种现象,我已很熟悉,也使我想起当年「人工智能 (A.I.)」享有被全美国爱戴的时代。连我的博士论文也与人工智能有关,但我始终知道人工智能没有什么实用性,我也感觉到人工智能有一种先天性的问题,永远解决不了的。只是我当时年轻,无法将我的想法精确地讲出来。 
 
英国人工智能的例子 
 
美国曾经由政府大力地支持这种研究,他们的国科会比较不太会特别看重哪一个领域;可是美国国防部就不同了,他们给了好多经费去支持人工智能的研究,我当时在美国,我们计算机系的教授们喜出望外,个个可以从美国国防部拿到好多钱。

就在此时,英国政府却采取了一种完全不同的做法,他们请了一位著名的数学家,莱特希尔教授 (Sir James Lighthill,他有爵士头衔),对人工智能做一个彻底的评估,这位教授在三个月内,足不出户地看了所有重要的相关论文,写出了一份报告,世人后来称之为「莱特希尔报告」。这份报告斩钉截铁地说,人工智能绝不可能有什么用途,因为它只能被用来解决简单的问题。英国政府以后没有在人工智能上作大量的投资。事实证明,莱特希尔教授是对的,日本的第五代计算机计划就是根据人工智能,不知花了多少钱,最后无疾而终。

人工智能并非唯一的例子,美国国防部又曾投资了大批银子去发展一种计算机语言,叫做 Ada 语言,我还记得当时的美国国防部长以隆重的仪式宣布这个决定,这是 1977 年的事,我当时就认为这个研究计划毫无道理。果真不出所料,大家早已将 Ada 忘得一乾二净,你如去问年轻的计算机系教授,恐怕都不知道 Ada 是怎么一回事,有些人恐怕连听都没听过。

有些新科技还未成熟,希望政府官员知道,很多红极一时的研究是不该大量投资的,政府应该常常请一位有逻辑思考能力的学者,对一些被大家捧上天的研究作一些评估。莱特希尔报告精彩的地方,是它完全根据普通常识,也许因为莱特希尔是数学家,他的论述完全合乎逻辑,无懈可击。我们实在需要这种头脑清晰的数学家,因为他可以替国家节省很多的经费和精力。

我们有时不仅会将某种新科技捧上天,更会忽然地对某种产业惊为天人,有时甚至于会说这个产业前途一片看好,精明的企业家当然不会随音乐起舞,但一些普通常识不够的年轻人却会一头栽了进去,也因此吃了很大的亏。比方说,网络产业曾经红过一时,很多年轻人书都不念了,跑去开一家网络公司,卖某类产品,结果搞不出所以然来。最近,政府一再鼓励的某些产业,即使在先进国家都是未成熟的产业,台湾这种人云亦云的现象,令人忧心也。 
 
2010/04/15

 

(楼主我自己的注释:
本文疑似暗指,只擅长做硬件、电子代工的台湾,长年忽视软件产业,官员却听信极少数人的建议,一下就决定乱花几百亿台币,准备全力发展「云计算」,最后却可能只图利了少数网通和服务器等厂商,和云计算的本质:节能、减少设备,完全地背道而驰。)

 

【作者简介】

李家同 (1938 年出生),目前住在台湾。

李家同毕业于台湾大学电机工程学系,于 1963 年自美国柏克莱加州大学取得电机系硕士,1967 年于该校取得电机及计算机系博士。
他曾在美国工作八年,回台湾后曾担任清华大学工学院院长、教务长以及代校长、静宜大学和暨南大学校长。他现为為台湾的暨南、清华、
静宜大学荣誉教授。

他信仰天主教,在大学求学期间,常去台北监狱、新店军人监狱替受刑人服务,目前仍是台中启明学校、新竹德兰中心的义工,替孩子们
补习数学和英文,也常至乡下替穷苦兒童免费教书。由于他的宗教信仰和他服务弱势群体的经验,他的文章带有人道主义的色彩。

他的著作:
包括《陌生人》《让高墙倒下吧》《幕永不落下》《钟声又再响起》等。


【部分作品】

窗外
命好
钥匙
瓷娃娃
骇客任务
我的灵魂
小银盒子
地球上最早的文字
不要克制爱人的欲望 
生活思索: 乐尽所能 只取所需
让高墙倒下吧 -- 访问特里萨修女的感想
为什么我们不应该轻易修改基因? 
攸关人类福祉的科技不得操纵在少数人中 
教授治学---大学追求卓越的重要步骤 
是我们该多做学问的时候了 
文化刺激的城乡差距

…其他书籍、文章、论文,族繁不及备载…


【相关文章】

谈贫穷议题台下学生在笑 李家同生气中断演讲

http://www.chinanews.com.cn/tw/jjwh/news/2008/01-29/1149498.shtml

 


-------------------------------------------------------------------------------------------------------


论台湾某些官员的云散财

陈博修 
 
甚么是最近火红的「云计算」(Cloud Computing)?少有人能搞清楚。但是每支股票、每个公司、每样产品都得想办法跟云计算拉上关系,不然马上会被打入过气、夕阳产业的冷宫。 Larry Ellison,甲骨文 (全球最大数据库公司) 的老板,在百思不解为何云计算火红时,直截了当地为下个震撼定义:「就是─我们已经在做的每一件事啦!」(Everything that we already do.); 无独有偶,Richard Stallman,自由开放软件协会会长及名闻信息界的 GNU 操作系统的创始人,更露骨地指出,「云计算完全是营销障眼法,建基在人们比愚蠢还更严重的基础上,每一个说云计算是绝对必要的人,大概都隐藏着一套要大举进军的业务营销计划」。

吴xx院长日前在台湾的台中信息月开场白时,承诺在行政院已认可的六大新兴产业之外,紧急追加「云端计算」为新兴产业,就 Stallman 的观点说来,这算是台湾信息、通信业者又一次成功地营销;再套上 Ellison 的说法,所有我们正在做的每一件事都是云端,所以信息、电子业界大家通通有奖,皆大欢喜。

仔细一想,所有网络 (TCP/IP/无线基地台等等) 相关的产品都算是「云」,而所有的计算机设备 (磁盘、主机板等等) 都算是「端」,要找到跟「云端」无关的电子计算机通信产品,还真有点难。 Google、Yahoo、eBay、MSN、维基百科、Facebook 等等服务,固然确是云计算的特优例子,但防毒软件、网络电话、电驴,甚至 Notebook、手机、PDA、绘图芯片、AP Router 等,也都算是云端啊!既是无所不包,云端市场规模当然大的不得了,也不需专业市调公司劳累费神做分析报告!

云计算的理想达成时,好处固然多多,坏处也不少,公司大概不会有疯狂的 MIS 主管,敢把人事、营销等敏感数据放到云端;一般人也不会愿意去承受当网络不通时,所有系统运作停摆的事实;甚至连数据处理速度的不一致性 (时快时慢,端看网络状况)。不确定性高的技术及市场,到底真能带来多少收益,是颇具争议的。

云计算红火,真为产业界感到高兴,我们既无意也无法去唱衰,挡人财路,只能期望将来行政院在「散财」时,能公平对待中小企业朵朵白云,不能独厚擅长包装的大企业彩云;在散完财时,也能仔细地验收每个接受补助的产品,看看是 Ellison 及 Stallman 的乌鸦嘴讲对了,还是其它的魔法师确实能变出戏法;好对纳税人有个清楚的交代。 
 
(作者为马里兰大学信息工程博士,资深网络通信业者)

2010/4/11


-------------------------------------------------------------------------------------------------------


楼主个人结论: 
 
这篇帖子,并非要批评所有搞云计算的个人或公司都是错的。只是强调学技术的人,要有自主判断的能力,不要「人云亦云」。 

微软和各大软件厂商,天天推出新技术 (包括微软未来将倾全力投入的 Azure 平台)。大家 (包括厂商和个人) 在花大把时间学习、在博客写心得报告之前,最好先做个适当地评估。不要微软丢什么最新的技术,就照单全收,花大把时间投入学习,甚至在自己公司、在网络上到处主动帮微软推广技术,「除非你真的知道自己在做什么」。

国外的大型软件公司能以此获利,不代表自己和公司用了这项新技术,就能一并鸡犬升天。

若行有馀力,还有很多比新技术更重要、也很值得你花时间投资和学习的技能,其收益和投资报酬率或许会比学新技术更高。当然,若只是纯粹当作兴趣,或技术狂人除外。

------------------------------------------------------------------------------------------------------- 

 

来自http://www.cnblogs.com/WizardWu/archive/2010/06/06/1752710.html

posted @ 2010-12-27 11:12 Alex1 阅读(16) 评论(0) 编辑

2010年12月9日

编者按:原文作者Jenkov是一位丹麦资深开发人员,从事软件开发已有十多年。常有读者咨询他,“怎么才能成为一位专家级的开发人员?”(这个“专家”不是头衔,应是指硬实力,“成为专家”和“被视为专家”是两码事)。所以他在下文中给出了相关建议。另外,他也提醒到,这些建议因人而异、因所用技术而异,并非适合所有人。

 

 

如何成为一名专家级的开发人员   伯乐在线-职场博客


  什么是“专家”?成为“专家”需要多长时间?

 

  在我开始讨论如何成为一名专家之前,我们一起来花上30秒时间,看看专家的定义,还有成为专家需要多长时间?

  在使用某一技能三个月后,你还不是专家,即便使用时间是三年,你还不是。马尔科姆·格莱德威尔在《异类》一书中指出,成为一名真正的专家,需要10000小时。10000小时!如果一天用10小时,每天都学习,则大概需要3年时间。如果一天5小时,一年学习200天,则大概需要10年时间。10年!

  根据这一说法,我想起来,我曾在有3年开发经验时,自认为是一个专家级或高级开发人员。如今,在2010年我已有约10年经验,我已经知道,自己已经掌握多少东西,还有多少东西尚未知晓。现在,我已觉得自己不再是一名专家了。

  此外,在过去10年当中,这一行业(Java企业级开发)已经发生了翻天覆地的变化,所以我过去掌握的技能,已不再“风光”。所以,即便你是专家,你可能也会发现自己正在过时,不得不重头开始。

  还有一件事:你不可能是全才(即:各个领域的专家)。这也就是说,你或许在某一技能上比张三优秀,但张三在另一技能上或许比你优秀。你不可能在任何方面都比别人优秀或比不上别人。你总是能从他人身上学到东西。(更不能因为别人使用的技术和你不同而去攻击他人,只要别人不是一无是处,你就可以从他们那里学到很多东西。正所谓,“三人行必有我师”。这也是《成为一名优秀程序员所需要知道的那些事》之一)。我曾经遇到过一些开发人员,他们总以为自己在全方面都比他人优秀似的,即便事实并非如此。

  事实上,这通常就是区分新手的一种方法。不管是在线上还是线下,新手总是相信自己知道一切,并会至始至终地争辩。他们的争辩相当绝对,比如“这个总是比那个要好”,或“这就是解决事情的唯一方法”等。专家则几乎不会那样做。他们知道,一切事情取决于具体情况(也就是“具体情况,具体分析”),开发人员所掌握的技能,公司所选择的工具,公司政策,个人喜好等等。没有经验的开发人员(和普通人)一般都认为“世界是非白即黑”。而专家知道,世界还充满了灰色区域,甚至还有其他大量颜色和色调。


  如何成为一名专家

  对于大多数你需要学习的技能,这里有四个步骤,以助你成为一名专家。在大多数情况下,你可以按照顺序完成如下步骤,也可以从上至下重复如下步骤:

  • 1. 学习技能;
  • 2. 实践技能;
  • 3. 讨论技能;
  • 4. 传授技能;


  学习技能

 

  在你掌握一门技能之前,你必须先学习相关理论。你可以通过书籍和教程,或课程教育,或综合前面这些方法来学习理论。

  实践技能

  一旦你掌握了技能相关理论,你需要在现实中运用该技能。通过实践,你会知道你所学的理论,哪些地方正确,哪些地方有误。当然了,你在大学中所学到的理论,通常在现实中并不奏效,或者根本不适合你所处的环境。

  讨论技能

  一旦你使用技能已有很长一段时间,并且发现自己能解决很多需要该技能的问题,那这时候你应该和其他经验人士讨论它了。讨论使用该技能的最佳方法,技能相关理论的局限是什么,还可以增加什么东西等等。简而言之,讨论如何进一步推动该技能。(比如一个API,如何优化/改进它等。)

  传授技能

  向他人传授技能,无疑是完善自身技能的一种好办法。可能有很多事情只顾着做了,但并未考虑为什么要那样做。因为必须(向他人)解释你的方法,这会迫使你自己重新思索“为什么要做”和“做了什么”。

  此外,你的技能上或许有些边边角角事从来都不需要掌握的。(比如,Web服务规范的边边角角)。因为要传授自己的技能,这迫使你也要掌握这些空白了,这会让你更上一层楼。


  如何成为一名专家级的开发人员

  既然我已经谈论了如何成为一名普遍意义上的专家,我将进一步谈论如何成为一名专家级的开发人员。

  作为一名开发人员,你将很可能在特定行业(至少有一段时间)做软件开发,使用特定的平台。如果不是,如果你一直在选择工具或行业,就像一些Web开发人员一样,那么你很可能将永远不会成为一名真正的专家。你会成为万金油或三脚猫(在某些方面还是挺有用)。如果你没有专注某一平台或行业,而你又想成为一名专家,那你要学会专注了。

  1998年,那是一个春天,我开始做Web应用,开始了我的职业生涯。我发现自己一直在更换着工具,也就是说我并没有真正擅长于某种工具。我只是一直在为新工具而战。后来,我决定专注一门面向对象语言和一个平台,并选择了Java。那时候还没有.Net。所以从1999年开始,我一直只用Java。

  在成长为专家的路上,你必须要选择一个平台,可能还有一个行业。行业并不特别重要,但拥有业务领域知识,这将真正增强你的实力。

  在你学习一个平台时,你可以选择一门语言来入手。比如,Java语言。在你学习语言之后,则需要学习一个平台(包括所有的API和工具)。在Java中,有两大平台:标准版(J2SE)和企业版(J2EE)。(编者注:还有微型版(J2ME))

  一旦你开始掌握选择的平台,你应当开始学习独立于平台的技能,比如模式设计、分布式系统设计、系统机构和可用性等等。在你取得进步时,你将要花更多的时间来学习这些技能。这是好事。因为这些技能不受平台限制,更容易转移新的技术平台。

  最后,你或许会脱离软件开发,转入到诸如项目管理或架构师的完全不同的业务领域。请谨记,一旦你停止使用你的开发技能,你的专家之路将更加长远了。

  下面有一张关于你的“专家之路”的图表。你从最低端开始,逐层上升。蓝色层表示独立于平台的技能。其他颜色层表示特定的平台。即便下图中并没有你的平台,你也可以自行添加。

 

“专家之路”:语言 -> 平台 -> 独立平台的技能   伯乐在线
(图:“专家之路”:语言 -> 平台 -> 独立于平台的技能)


  你必须根据你所处的行业、所在的公司和所使用的平台来填入具体的工具和技术等。这些事情,我无法一劳永逸地为各位一次性做好。

 

  怎么知道自己该学习什么,查看招聘广告不失为一个好办法。看看最常用的工具和技术?阅读一些在线软件杂志,看看行业人士讨论最多的技术是什么?泡相关论坛和博客,看看他们最常问的问题是什么?还有,人们谈论最多的技术是什么?总之一句话,什么技术是明天的热点?

来自http://www.jobbole.com/entry.php/337

posted @ 2010-12-09 11:52 Alex1 阅读(13) 评论(0) 编辑

2010年12月6日

昨天在Google图片中输入“程序员”,搜索到的第一张图片是这样的

  
一位平头兄桌上两台笔记本一台台式机。其中的一台中显示是某个论坛的页面【估计正在回答某个问题】、中间那台正在启动Eclipse【要开始写Java程序了】、平头兄的目光此时盯在台式机的显示器上【应该是正在远程或者是某个虚拟机】,旁边还有一本打开的书…

图片的名字是“真正的程序员就应该这样”,程序员就应该这样么?

是谁规定程序员就应该是这样的,本来是应该四个人做的事情让一个程序员做,难道程序员是四核的?

作为程序员中的一份子,我时刻注意对自己好一点。

 

穿着

下面两张图片是恶搞程序员的,虽然还没那么夸张,不过确实有那么点意思


 

现在的程序员跟不修边幅的艺术家很像,不同的是人家玩是艺术,我们写的是寂寞!

我们不用穿的很花哨,但是至少是得体!不要留给别人不好的印象,好像我们程序员现在就像民工一样【PS:不是诋毁民工同胞】

熟话说,“佛靠金装,人靠衣装”。我们程序员也需要稍微打扮下自己。

 

情感方面

微软曾经为Visual Studio 2010 做过一个煽情的广告,推出了以恋爱为主题的五个视频:

第一幕——《想做你的Code》:“爱上一个VC,做你下一行Code”。 
第二幕——《让爱延长》:“幸福能run多久?有时候一分钟就够”,“更高效的C++,更多时间留给爱”。 
第三幕——《幸福也要敏捷》:“约好的幸福,为什么总要一等再等?更多敏捷特性,更快响应爱的需要”。 
第四幕——《为爱Debug》:“当爱有了Bug”我们的主人公能否成功Debug呢?” 
第五幕——《让爱编译通过》:“不是每份爱都能编译通过,我想我就是那个幸运儿。”

相信很多微软的粉丝都已经看过了,没有看过的可以去优酷里看看 http://www.youku.com/playlist_show/id_4584315.html


这是一部分程序员的真实情况。但,绝大多是程序员一直保留着处子之身。想旁边有个漂亮的女孩,想都别想。恐怖的说法是,鬼都不会找程序员!

年轻的程序员们,好好把握住自己身边的好女孩们,不要到后来发出这样的感慨“曾经有一份真挚的爱情摆在我面前,但是我没有珍惜,【因为我是程序员】。等到了失去的时候才后悔莫及,尘世间最痛苦的事莫过于此。如果老天可以再给我一个再来一次的机会,【我再也不做程序员了】”…

曾经在人人看到这样一条状态,出自我的一个也是程序员的同学“如果你的朋友很久没联系你了,有两种可能:一是死了,另一种是学通信或者电子或者计算机... ”。我们要经常跟家人、朋友沟通,要时不时的打个电话给他们。还有我们的父母,我们要每隔一段时间打个电话给他们,免得他们牵挂!

程序员,记住,我们不是Machine,我们是Human,我们不只是需要跟Machine沟通,我们更需要跟Human的沟通!

 

饮食方面

 泡面是程序员的主食之一,因为方便面很是方便,一盒面,一瓶开水就能填饱肚子。

 众所周知,方便面是垃圾食品,方便面盐分过高,含防腐剂、香精,损肝;只有热量,没有营养 。长期食用对身体有害无益。但是,我们程序员却钟爱方便面,原因无他,吃饭吃耗时最短,又能边编程的食品。曾经有说法"最容易受伤的是男人的胃",我想这男人中80%的是程序员。

程序员,请为你的家人想想吧, 吃些健康的食物吧。

下面是网上收集的有益于程序员健康的食物

 

程序员的饮食应该如何安排—高蛋白食品抗辐射,动物肝脏和新鲜蔬果保护眼睛,富含钾、氨基酸等元素的食品健脑。
如今,电脑越来越普及,许多人不仅在单位使用,家里也安装了电脑,由于操作时间不断延长,一些疾病也随之而来。
日前,室内设计师张先生因为每天与电脑为伍十几个小时而肩酸背痛,眼睛酸肿,动不动就感冒,咨询了一些医生后,他得到了一张“菜单”,医生告诉他,只要合理安排一日三餐,身体状况将大大改善。这份特殊的菜单是这样的,早餐应吃营养充分,有足够热量的食物,能保证旺盛的精力。

高蛋白食品:抗辐射

中餐多吃蛋白质高的东西,如瘦猪肉、牛肉、鸡鸭、动物内脏、鱼和豆制品等,晚餐就要多吃维生素高的食物,各种新鲜蔬菜,新鲜水果,还有含磷高的小食如虾、鱼、蛋黄、核桃、花生。此外,多喝水可以保证电脑操作者身体内不缺水,茶叶中含有茶多酚等活性物质,有吸收及抵抗放射性物质的作用。

动物肝脏和新鲜蔬果:护眼

经常看电脑容易损伤眼睛,饮食上要有意识地多选保护眼睛的食物,防止近视和其他眼疾。健眼的食物有各种动物肝脏、红枣、牛奶、奶油、小米、胡萝卜、青菜、菠菜、大白菜、番茄、黄花菜、空心菜、枸杞子和各种新鲜水果。工作1至2个小时后,活动一下身体,做做眼保健操。

富含钾、氨基酸、维B的食品:健脑

因为精神集中大脑高度紧张而造成的脑疲劳,平时可以加强三种元素的食物。

一种是含钾元素的食品:钾元素可直接连通大脑神经,可使大脑神经介质正常有序地工作,确保大脑轻松,粗粮、土豆、坚果、香蕉、荸荠、杏、柑橘、牛奶等富含钾元素。

另一种是含氨基酸的食品:全麦面包、蜂蜜、葵花子、银耳、奶类、羊肉、鸡肉被人体吸收后,蛋白质中的氨基酸进入大脑,有镇静剂的功效。

第三种就是含维生素B和钙的食品:人在焦虑不安、郁郁寡欢、情绪不稳时,体内缺乏维生素B,含维生素B高的食物是鱼,多吃鱼对调节情绪大有益处,其次是土豆和牛肉。含钙的食物有大豆、菠菜、花生、芝麻、冬苋菜、海带、虾、奶类,也要多吃一些。

 

 

生活起居方面


程序员大都是夜猫子,一般都是12点后才睡觉的.于是就有上面的这幅图片。

晚上十一点到早上一点,那是肝脏排毒的时间,我们程序员通常在这段时间还活跃着,写博客、看教程、看视频、打游戏…此时的我们的大脑还处在兴奋状态,肝脏不能很好的排毒,带来的恶性结果是:我们的皮肤变得很差,身体抵抗力下降。

我们不一定要到很晚的时候才睡觉,有人说,我这个bug还没搞定呢,睡不着呢!我很欣赏这种一丝不苟的态度,却反对时常性的为了一个bug而搞到很晚!

各器官排毒工作时间如下:

 

晚上9点~晚上11点: 免疫系统(淋巴)排毒时间

排毒对策:此段时间应该安静或听音乐,这时精神紧张或者焦虑对健康是不利的唷

晚上11点~早上1点:肝脏排毒时间

排毒对策:这几小时里面也就是大家所谓的美容觉唷!让肝脏得到适当的休息,对您的皮肤,还有健康都是非常有帮助的,这段时间若都不睡的话,皮肤会变得比较差及抵抗力低落等等唷!所以一定要好好利用这段时间睡个美容觉喔

早上1点~早上3点:胆的排毒

排毒对策:此段时间应好好熟睡,对胆汁分泌帮助会比较大喔

早上3点~早上5点:肺的排毒时间

排毒对策:这就是为甚么咳嗽的人总是在这段时间咳的最剧烈的原因啰!因为此时的排毒动作已经走到肺部,所以哮喘气喘等最容易发生的时间也是都在这时段比较多,此时若是自然排毒的话,不应该服用止咳药,以免抑制废积物的排除~

早上5点~早上7点:大肠的排毒

排毒对策:这段时间应该空腹多喝温开水,让大肠得到适当的滋润,并促进肠道的蠕动,有助于宿便的排出,对身体健康是非常有帮助的唷!加点盐巴的温开水并按摩腹部(请以正确的按摩方向才可以唷!)对于排便是很有帮助的喔!宿便是减重的杀手,所以一定要养成每天顺利排便的好习惯~ 早上7点~早上9点:小肠大量吸收营养的时段

排毒对策:应吃早餐的最佳时间唷!减重千万不要以为早上都不吃就可以了,这样反而会因为晚上吃下更多东西而囤积脂肪更容易胖起来的唷!正确应该在这段时间好好享用营养丰富的早餐,若是疗病者最好提早吃(在6点半前),养生者则建议在早上7点半前,不吃早餐者应改变习惯养成吃早餐的习惯,即使拖到早上10点,吃都会比不吃还要来的好喔

别让我们的器官长期超负荷工作! 请早点睡吧!

 


健康方面

今天看NBA的时候,主持人介绍了NBA的八大玻璃人。姚明和麦迪榜上有名,NBA最容易碎的玻璃人是开拓者的格雷格-奥登,这个赛季再次报销。NBA中受伤在所难免,那么激烈的身体对抗,磕磕碰碰也是正常事。但是,作为程序员的我们,又不跟谁打架,为什么那么脆弱?

由中华医院管理学会、中国医师协会、北京慈济健康体检连锁机构联合发布的“健康透支十大行业”社会调查结果显示,IT和企业高管人群中透支现象最为严重,亚健康比例分别为91%和86%;其次为媒体记者、证券、保险、出租车司机、交警、销售、律师、教师行业。

时常在园子里看到说一些不幸的消息,如某某癌症晚期….联想到前阵子有同事生病请病假,听项目经理感叹说道:程序员是很容意受伤的。确实是这样,长期缺乏运动的我们,亚健康指数如同for循环的i,一直在做着++的运算…。“我们没有时间运动”,可能一些程序员抱怨道。我想引用鲁迅先生的原话,“时间就像海棉里的水,只要肯挤总是有的”,只要你想运动,什么时候都可以。如,每天早上跑步去公交站台,中午吃饭饭了,出去溜达溜达….

给大家一些网上收集的Tips:

 

早操:

第一节头部运动

双手掐腰,头部顺时针缓慢旋转8拍,换逆时针旋转8拍

第二节手部运动

左臂前伸,手掌向上,右手握住左手四指,向下压8拍,换手

第三节臂部运动

左臂前伸,右臂抱住左臂上臂,向左压8拍,换右臂

第四节腰部运动

双手掐腰,后仰8拍,前躬8拍

早晨开始工作前先喝杯浓咖啡, 有助头脑清醒、精神抖擞,但须先吃早餐后,才能饮用,否则易伤及肠胃。

 

午后:

有些程序员喜欢午睡. 午睡的确可以使精力得到恢复,下午及晚上的工作学习更有精神.但是伏案暂睡片刻,以解疲劳这种方法不可取,往往醒后会出现暂时性的视力模糊,因为伏案睡觉会压迫眼球,造成眼压过高,倘若每天如此,会使眼球胀大、眼轴增长,形成高度近视,使视力受到损害。 所以,午睡应该躺在床上,荐与大多数程序员都没有条件, 吃完午饭后还是,呼吸呼吸新鲜空气,保持一下午清醒的头脑工作更好.如果已养成午睡习惯,那么请注意:

不要饭后即睡:一般午睡时间安排到午饭后半小时为好,不要饭后即睡 因为刚吃了午饭,胃内充满食物,消化机能正处于运动状态,这时午睡会影响肠胃的消化。
午睡时间不要太长:为使午睡对人体有益而不影响晚上睡眠,以午睡30~60分钟为宜,睡的太长对身体没有好处。 坐着打盹替代午睡不利于消除疲劳。因为人体处于睡眠状态时,全身肌肉松弛,血液循环减慢,头部供血减少。坐着午睡由于体位关系,供给大脑的血液更少,使人醒后易出现头昏、眼花、乏力等一系列大脑缺血缺氧的症状,所以这种午睡方式是不合乎健康要求的。

 

睡前运动:

请买32KG组合式哑铃
第一周使用16KG的
1、过头挺举 15~20次 3组
2、平肩推举 5~10次 2组
3、俯卧推举 15~25次 3组
4、哑铃弯举 20~25次 3组

适量的体育运动,能够促进人的大脑分泌出抑制兴奋的物质,促进深度睡眠,迅速缓解疲劳,并从而进入一个良性循环。但过量运动带来的疲劳,将导致大脑过度兴奋,适得其反。这里所指的运动量是因人而异的。

 

许多程序员都有肩周炎,程序员整天对这电脑,每日每夜,长期的劳作,容易导致肩周炎。像预防肩周炎很简单,那就是多做耸肩运动:坐姿,双手搭在肩部,双臂作扩张、旋转运动,可防肩周炎。

 


社会中的地位

程序员的社会是低下的,在网上流传着这么一个说法“程序员被誉为IT农民工”。


曾经看到这样的类比,将程序员跟妓女相比,原文如下:

程序员与妓女基本一样,以下为证:

1、都是靠出卖为生。

2、吃青春饭,人老珠黄肯定混不下去。

3、越高级收入越高,当然中间人的抽头会更高。

4、生活没有规律。以夜生活为主,如果需要,凌晨也要加班。

5、名声越大,越容易受到青睐。

6、必须尽最大可能满足客户各种各样非正常的需求。

7、鼓励创新精神。

8、喜欢扎堆。程序员集中的地方称为软件园,妓女集中的地方叫红灯区。

9、流动性较大,正常情况下没有工会。

10、如果怀孕了,既不能做程序员,也不能做妓女。

11、都为防病毒的问题而烦恼...

12、当然, 个中高手还专门以制毒传毒为乐。

13、一个是Microsoft,一个是Plug & Play。

14、工作状态相同。工作时精神高度集中,最怕外界干扰。工作完毕身心放松,体会到一种不可替代的工作快乐。

15、女孩子最好还是不要做这两个职业,但还是有很多女孩子做。

16、除非在转行以后,否则都不愿意结婚......没空儿啊。

17、程序员怕查户口的。妓女怕查房的。

18、妓女工作的地方(床)是程序员最向往的地方。

19、程序界的高手通常很讨厌微软,妓女界的高手嗯...这个...恐怕也如此。

20、都是吃青春饭,不过到人老珠黄后,凭着混个脸熟,程序员可以混个管理员,妓女也行,不过俗称老鸨。

21、妓女靠的本钱是三围,程序员靠的可是四围(思维)。

22、程序员为了拉客,通常会在交易前提供一个DEMO,妓女提供的那叫PHOTO。

23、程序员现在出的活时兴叫吃霸、结霸,妓女大姐一律叫波霸。

24、心不在焉的妓女可以一边工作一边do { beep(1); sleep(9) } until overflow。心不在焉的程序员也可以一边工作一边navigate到**(不当用词)上去。 25、程序员手册:一套好的人机操作界面要求,对于新手,能够一步一步的引导他进入功能,相反对于熟客,能够直奔主题;妓女同样要遵守程序员手册对人鸡界面的规定。

26、妓女在工作中最怕的是临检,程序员最怕的是停电。

27、新上手的程序员叫菜鸟,刚入行的妓女叫雏鸡,都是好可怜的小动物。

28、程序界现在流行OO的方法,虽然在XXXX年前妓女已在床上掌握了O~O~~~的技术。

29、程序员为了拉客,无奈之时,也可以先让客人试玩,妓女当然有时也会先给你甜头。

不过总之程序员比妓女还惨,补充如下: 1、妓女每个月总有几天可以理直气壮的说不,程序员如果老板不发话,可要一年干到黑。 2、女人做程序那叫奇女、才女,男人要是做妓,那就叫鸭了。 3、妓女不干了人家那叫从良,程序员如果不干了,估计是下了岗。 4、程序员有千年虫问题,妓女好象没听说有。 5、妓女的工作隐蔽性很强,程序员的工作只怕亲戚朋友都知道,所以更加没脸皮。 6、程序员做的越好,要做的程序越多,妓女做的好,就可以挑三拣四。 7、程序员现在流行FREE、OPEN什么的,说白了就是自己玩自己,妓女界好象还没这样恶性竞争。

劳力者下,劳智者中,劳人者上

我们大部分程序员现在做的是劳力活动,即第一类,我们其中的一部分可能需要正在向劳人者努力,有些人可能永远是劳力者…

我发现许多程序员动手时间和动脑时间之比都在9:1以上,优秀的程序员动手时间和动脑时间之比应该在7:3以下。当其比值下降到5:5、3:7以下程序员也就完成了向系统设计人员转变的准备。

给大家一点Tips:天时不如地利,地利不如人和!多想,谋而后动! 
这里向大家推荐一篇不错的文章。如果大家E文很好的话,可以看下这篇文章《There Are No Famous Programmers》http://sheddingbikes.com/posts/1275989245.html

也有翻译为中文的《世上没有“著名程序员” 》http://www.aqee.net/2010/06/23/there-are-no-famous-programmers/


 

程序员,请对自己好一点!


作者:Alexis 
出处:http://www.cnblogs.com/alexis/ 
关于作者:专注于微软平台项目架构、企业解决方案、Web前端(jQuery)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过shuifengxu@gmail.com  联系我,非常感谢。 


posted @ 2010-12-06 11:51 Alex1 阅读(39) 评论(0) 编辑

2010年11月30日

  昨天我做了一些事情使我的编程效率提高了一倍。简单,容易,但使我的生活发生了巨大的变化。

  你们中可能有些人已经知道我是怎么做的。对于其他的人,这听起来有些疯狂。

  我不持续工作。

  或者,我把定时器设置成50分钟,在此期间我只干一件事——没email,没聊天工具,没游戏,没分心的事。50分钟后,我去散步。

  它使我效率增倍。而且作为一个副作用,它使我的工作更加快乐。

  我知道你们中的很多人在想什么。无论何时这个(或其它特别的Pomodoro技巧)被提及时,我都会听到各种的常见的怀疑声。

  那就让我们一一看来:

  这样做不会使我的注意力不能集中在我正要努力解决的难题上吗?很奇怪,跟你的直觉相反,不会。当你做其它的事情来放松你的神经时,你的大脑却仍然在思考你的问题。很多次,思路豁然开朗,把很多一直都无法解决的难题都解决掉了,这是因为你开始从远处观察这个问题,在大背景下,而不是紧紧的死揪着某处。

  你是怎么停下来的?当我编程时我从来不看表。昨天我使用的是微波炉的定时器,但我工作效率上的变化使我大为震惊,我买了一个秒表,就是上面图中的那个。

  我的生活中有太多的各种各样的打搅我的事情,邮件,聊天工具,电话短信。你的方法对我不管用。我有个原则:在我的工作时间里不允许有分心的东西。当我休息完后,我会花几分钟把这种分心的事情处理掉:检查邮件,回复聊天软件里的消息,回电话。当把这些事情全做完后我才开始启动定时器。

  看起来它会给我的生活带来不必要的压力。的确会,但却是积极性质的。我发现自己急切的想知道在每个工作时间段里能究竟能做多少工作。我不由的开始把工作细化成更小的模块,催促自己看是否能在这时间段里完成这个模块。但这没有压力。我有个更好的词来描述督促自己把工作完成的更好更高效的现象:愉快。我很愉快。它把难题变成了游戏。

  工作后你会用多长时间来休闲? 我不知道。这难住我了。我会去散步—一个足够长的散步,至少10分钟。有时我会到阳台上,吃个橘子,听听大自然的声音。有时我会把秒表倒计时10分钟,以免我回来的太早。

  在休息时间我可以做任何想做的活动吗? 我想不能。我觉得你必须只做一种活动,让你大脑闲置的活动。散步,乒乓,玩乐器,发呆,打盹。考虑那些温和的、有目标挑战的活动—特别是户外的—效果会更好,但这只是我的猜测。

  这里有什么秘密? 秘密,以我个人的见解,是当你强迫大脑释放缠绕很久的问题时,潜意识里会使它缠绕的更紧:你的大脑强烈希望回到问题上。于是它会一直研究它,思考它。你越使你的大脑从工作上拽走,它就越强的返回到工作中。越是特意的停止工作,你越更多的投入到问题中,你把思想带离工作越远,思想会越想回去。这比起你死盯着电脑屏幕/敲出一堆垃圾代码来,你的大脑会更有效率的多。退一步,海阔天空。我可以保证,当你又重新回到座位上坐下来时,你会有各种更好的该怎么样做的想法。就像是有一个小程序、设计评审程序,当你在玩乐时,在你的大脑深处后台运行,帮你思考问题。

  如果你非常的聪明,怎么会想到要依赖这样的做法? 这个嘛。这里我的故事要转向说一下坏的事情:我过去做事情也是这样“玩玩干干”!事实上,我的工作时间和娱乐时间的分配已经无法控制。我以前编程就像是在受煎熬。我决定要改变。

  为什么?因为我发现当浏览器变得越来越友好,计算机变得约来越使人分心时,我开始在潜意识里把计算机的娱乐功能和工作功能混淆在一起了。我工作一会儿,就去看看骇客新闻,再去读几篇有趣的文章,然后再工作一会儿,然后写几条评论,然后看看邮件,等等。

  回头一想我在做什么?很显然:我正在拿各种各样新鲜刺激的事物过程来轰炸我的大脑。我的大脑不能工作在我的“主要”问题上,因为我忙着来回折腾在数十个不同的产生刺激因素的事物过程中。事后你会发现这最后的结果是把一心只放到一件编程事情上的情况转变成一心放在了很多事情上,而这些事情都跟编程没有关系。如果你喜欢使用计算机进行娱乐活动,你可以在工作前,午餐时,或工作休息期间。我越观察现代的计算机活动,我越相信计算机功能繁多、使娱乐更方便的性质已经严重的跟它作为一种能够生产工作的机器的用途相抵触了。几年来,我甚至慢慢的停止了赛场运动,约来越多的时间“沉浸”在了计算机世界里。这对你的大脑不是件好事,请相信我。

  这是一个很简单的事情,你也许会很难想象到它会有什么用处。但请给自己一次机会—谁能预料你会有什么发现呢?

  作为一个边注,从所有的这些事情,我发现物理的把你的电子设备按功能分离开也许是另外一个能提高你的工作效率的好方法。(这是一个防止你把消极的电子设备和消极的设备之间的界限弄混淆的方法)

  [英文出处]:To code quickly,you must quit coding

  转自http://www.aqee.net/2010/11/30/to-code-quickly-you-must-quit-coding/

posted @ 2010-11-30 11:42 Alex1 阅读(8) 评论(0) 编辑

2010年11月29日

OpenGL学习总结

一.OpenGL是做什么的

一种图形硬件的接口。而不是像C和C++一样的编程语言,更像是一个运行库,提供一些预先封装的函数。

二.OpenGL的主要功能是什么

建模,变换,颜色模式设置,光照和材质设置,纹理映射,位图显示和图像。

三.OpenGL的体系结构是什么

最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,第五层为应用软件。

四.怎么样利用OpenGL来实现我们想要做的事情

首先要明白一点,OpenGL是一个与平台无关的三维图形接口,操作系统必须提供像素格式管理和渲染环境管理。因此要使用OpenGL来做我们想做的事情的时候,一定要先为OpenGL搭建一个窗口环境。在这个窗口环境中,我们才能够使用OpenGL来实现我们自己的目的。

另外要注意的是OpenGL应用的不是保留模式,而是直接模式。即我们去操作的并非是已经封装好的一些建好的图形信息,而仅是相当于操作一个图形界面。也就是说如果我们要画一个复杂的形体,我们要把这个形体的几何信息,包括点、线和面的一些信息包括进去,然后使用一定的方法,把这些基本的信息合起来,构成我们要创建的那个物体。

五.绘制图元能干什么

此处我们当明白,OpenGL能够绘制复杂和有趣的图形,但这些图形都是由几个为数不多的基本图形元素构建而成的。所以,能够绘制图元是我们构建一个复杂有趣图形的一个基础。这些基本的图元,包括点、线和面。

glBegin();

glEnd();

六.变换能干什么

当我们绘制出一个复杂或者简单图形的时候,我们要把这个图形显示到我们的电脑屏幕上。这个时候我们可能会需要用到变换,变换的目的是让我们能够从一个合适的角度,观察到我们对图形中所关注的那部分。变换包括,视图变换,模型变换,投影变换。经过这几个变换中的一个变换、几个变换或者几种变换的相互组合,我们可以得到我们想要达到的效果。

七.光照能干什么

我们绘制图形的时候要深切地知道一个事情。那就是我们做出的图形可能需要有3D效果,或者说需要让我们做出来的模型更加的有立体感,并和实际的物体尽量的接近。这个时候,我们可能要加上光照。光照让我们做出的模型更加立体。

光照模型、明暗处理、光源设置、材质定义。

真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其他科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。在计算机图形设备上生成真实感图形须完成以下四个步骤:

一是用建模,即用一定的数学方法建立所需三维场景的几何描述,场景的几何描述直接影响图形的复杂性和图形绘制的计算耗费;二是将三维几何模型经过一定变换转为二维平面透视投影图;三是确定场景中所有可见面,运用隐藏面消隐算法将视域外或被遮挡住的不可见面去除;四是计算场景中可见面的颜色,即根据基于光学物理的光照模型计算可见面投射到观察者眼中的光亮度大小和颜色分量,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。

 

简单光照模型:当光照射到一个物体表面上时,出现三种情形。

只考虑被照明物体表面的反射光影响,假定物体表面光滑不透明其由理想材料构成,环境假设为白光照明。

环境反射,慢反射和镜面反射。

创建光源,启动光照,明暗处理(在计算机图形学中,光滑的曲面表面常用多边形予以逼近和表示,而每个小多边形轮廓(或内部)就用单一的颜色或许多不同的颜色来勾画(或填充),这种处理方式就成为明暗处理。)

材质:材质颜色,材质定义

OpenGL用材料对光的红、绿、蓝三原色的反射率来近似定义材料的颜色。象光源一样,材料颜色也分成环境、漫反射和镜面反射成分,它们决定了材料对环境光、漫反射光和镜面反射光的反射程度。

八.颜色能干什么

颜色生成原理,计算机屏幕上每一个点的颜色都是由监视器内部的电子枪激发的三束不同颜色的光混合而成。

两种颜色模式:RGB(RGBA)模式和颜色表模式。在RGB模式下,所有的颜色定义全用RGB三个值来表示,有时也加上alpha值。颜色表模式下,每一个象素的颜色是用颜色表中的某个颜色索引值表示,这个颜色索引值指向了相应的R、G、B值。

glcolor*();glIndex*();

单调着色(flat)和平滑着色(smooth)

颜色的作用之一是能让我们做出的图形的3D效果更好。

用法:

九.混合,抗锯齿,雾,多边形偏移,这些干什么

当我们想通过一个颜色的物体,看到另一个颜色物体的时候,这时候要使用混合的功能。OpenGL会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这样就得到了新的颜色。原因子和目标因子是可以通过glBlendFunc函数来进行设置的。glBlendFunc有两个参数,前者表示源因子,后者表示目标因子。

图形绘制到屏幕时,光栅化图像通过离散的像素点来表示,如此绘制出来的图元会产生锯齿。而抗锯齿则是一种处理,通过这种处理可以在一定程度上消除锯齿的影响,增强显示效果。glHint()来对图像质量和绘制速度之间的权衡作一些控制。

为了让我们做出来的图形和真实的景物,自然中的景物更加的逼近,要加上一个特效即雾。有了雾的效果,场景看起来才会更加真实。在OpenGL中,实现雾的效果。其工作模式有两种:线型模式和指数模式。两种模式是根据雾的浓度变化来区分的。线型模式中,提供一个距离视点的开始位置和结束位置。从开始到结束,雾的浓度越来越高。浓度变化和距离成正比。指数模式下,雾的浓度随着距离增长呈指数增长。这种模式常用来用于烟雾。烟幕效果。开启glEnable(GL_FOG),取消雾的效果glDisable(GL_FOG)。

线框和填充物体重合时,看起来可能很丑陋;使多边形偏移,改变其深度值,可以使带轮廓的物体更美观。着重显示实心物体边缘时,可以用GL_FILL绘制这个物体,再用GL_LINE重新绘制这个物体。

十.为什么使用显示列表

显示列表是一组存储在一起的OpenGL函数,是由一组预先存储起来的留待以后调用OpenGL函数语句组成,当调用这张显示列表时就依次执行表中所列出的函数语句。

其优势是OpenGL显示列表的设计能优化程序运行性能,尤其是网络性能。它被设计成命令高速缓存,而不是动态数据库缓存。即一旦建立了显示列表,就不能修改它。因为若显示列表可以被修改,则显示列表的搜索,内存管理的执行等开销会降低性能。如此,也就失去了其最大的优势。显示列表方式绘图比瞬时方式快,尤其是显示列表方式可以大量地提高网络性能,当通过网络发出绘图命令时,由于显示列表驻留在服务器中,因而使网络的负担减轻到最小。在单用户的机器上,显示列表同样可以提高效率。一旦显示列表被处理成适合于图形硬件的格式,则不同的OpenGL实现对命令的优化程度也不同。

显示列表的适用场合。需要注意的是并不是只要调用显示列表就能优化程序性能。因为调用显示列表本身时程序也有一些开销,若一个显示列表太小,这个开销将超过显示列表的优越性。

矩阵操作,光栅位图和图像,光、材质和光照模型、纹理、多边形的填充模式。

void glNewList(GLuint list,GLenum mode);

void glEndList(void);

void glCallList(GLuint list);

 

十一.      纹理,和绘制像素,位图,字体,图像

         当我们想要使绘制出的模型显得更加得真实,此时我们可能需要给图形加上纹理,尤其是真实感的物体。纹理映射的方式,让我们在绘制真实感图形的时候,变得简单。纹理映射能够保证在变换多边形时,多边形上的纹理图案也随之变化。

         纹理映射的基本步骤:定义纹理,控制滤波,说明映射方式,绘制场景——给出顶点和纹理坐标和几何坐标。

         纹理映射只能在RGBA方式下执行,不能运用于颜色表方式。

         计算机保存图象的方法有两种:矢量图和像素图。矢量图保存了图象中每一个几何物体的位置、形状、大小等信息。像素图是将完整的图像纵横分为若干行、列,这些行列使得图象被分割为很细小的分块,每一分块称为像素,保存每一像素的颜色也就保存了整个图像。

         glReadPixels:读取一些像素,把已经绘制好的像素(可能已经被保存到显卡的显存中)读到内存。

         glDrawPixels:绘制一些像素,把内存中一些数据作为像素数据,进行绘制。

         glCopyPixels:复制一些像素,把已经绘制好的像素从一个位置复制到另一个位置。

         OpenGL除去点,线,多边形,的另外两种重要的数据类型:位图和图像。这两种数据都是以象素矩阵形式存储,即用一个矩形数组来表示某一位图或图像。二者不同之处是位图包含每个象素的一位信息,而图像数据一般包含每个象素的多位信息;位图类似于掩码,可用于遮掩别的图像,而图像数据则简单地覆盖先前已经存在的数据或与之混合。

 

十二.      帧缓存

颜色缓存color buffer其中内容可以是颜色索引或者RGBA数据,如果用OPENGL系统支持立体图,则有左右两个缓存。

深度缓存depth buffer就是Z-BUffER,用于保存像素Z方向的数值,深度大的被深度小的代替,用以实现消隐。

模板缓存Stencil Buffer用以保持屏幕上某些位置图形不变,而其他部分重绘。

累计缓存Accumulation buffer只保存RGBA数据,用于合成图象。

glGetIntegerv()查询每个像素占据的缓存空间的参数。

颜色缓存存储了颜色索引或RGB颜色数据,还可能存储了alpha值

支持立体观察stereoscopic viewing的OpenGL实现有左颜色缓存和右颜色缓存,它们分别用于左立体图象和右立体图象。

深度缓存,存储了每个像素的深度值,通常是离视点的距离,因此深度值大的像素会被深度值小的像素覆盖。

累积缓存也存储RGBA颜色数据,将一系列的图像合成一幅图像。可以对图像进行超量采样,然后对样本进行平均,并将结果写入颜色缓存中,从而实现场景反走样,不能将数据直接写入累积缓存,累加操作总是针对一个矩形块的,通常是将数据移入或移出颜色缓存。

清空缓存

指定要读写的颜色缓存

写入glDrawBuffer();

读取glReadBuffer();

屏蔽缓存:设置掩码,用于控制写入到指定缓存中的数据。

禁用深度缓存:如果背景很复杂,则在背景绘制之后,禁用深度缓存,绘制新增物体,只要不相互重叠。下一帧时,只需要恢复数据图像,无需恢复深度缓存中的值。

 

十三.      求值器

计算机图形学中,所有的光滑曲线、曲面都采用线段或三角形来模拟,为了精确地表现曲线,通常需要成千上万个线段或三角形来逼近,这种方法对于计算机的硬件资源有相当高的要求。然而,许多有用的曲线、曲面在数学上只需要用少数几个参数(控制点等)来描述。这种方法所需要的存储空间比线段、三角形逼近的方法所需要的空间要小得多,并且控制点方法描述的曲线、曲面比线段、三角形逼近的曲线、曲面更精确。

求值器可以创建以Bezier为基础的样条和表面。如果想要使用求值器绘制基于其他算法的曲线和表面,必须知道如何把它们转换为Bezier曲线和表面。另外,如果想使用求值器来渲染Bezier曲线和表面的一部分,需要对它们的分割粒度做出决定。在做出这些决定时,需要在图像质量和渲染速度之间进行权衡。

         为了使用求值器,首先需要定义函数C()或S(),然后启用它,并使用glEvalCoord1或glEvalCoord2()函数代替glVertex()函数。按照这种方式,我们可以像使用其他顶点一样使用曲线或曲面上的点。

十四.      选择和反馈

  建立允许用户选择(select)屏幕区域或拾取(pick)绘制在屏幕上的物体的应用程序
  利用OpenGL的反馈(feedback)模式获取绚染计算结果
  有些图形应用程序只绘制两维和三维物体构成的静态图形,另一些允许用户识别屏幕上的物体并移动、修改、删除或用其它方法操纵这些物体。OpenGL正是设计用于支持这些交互式应用程序的。因为绘制在屏幕上的物体通常经过多次旋转、移动和透视变换,所以确定用户选中了三维场景中的哪个物体会很困难。OpenGL提供了一个选取机制可惟自动告诉你哪个物体被绘制在窗口的提定区域里。你可以用这个机制与一个工具例程(a special utility routine)一道决定哪个物体在用户说明或用光标选取的区域里。
  选择(selection)实际上是OpenGL的一个操作模式;反馈(feedback)是这类模式中的别一个。在反馈模式中,你用你的图形硬件和OpenGL完成通常的绚染计算。但与用这个计算结果去在屏幕上绘制图形相反,OpenGL返回(或反馈(feeds back))这些绘制信息给你。如果你想在绘图仪而不是屏幕上绘制图形,举个例子,你就得在反馈模式绘制它们,收集绘制指令,然后将这些指令转换为绘图仪可以理解的命令。
  在选择和反馈模式中,绘制信息返回给应用程序而不是像在渲染模式中那样送往帧缓冲。因此,当OpenGL处于选择或反馈模式时,屏幕将被冻结-没有图形出现
  “选择(Selection)” 讨论怎样使用选择模式和相关的例程以使你程序的用户能拾取画在屏幕上的物体。
  “反馈(Feedback)” 描述了怎样获取有关什么将被画在屏幕上的信息和这些信息是以什么格式组织的。

 

 

 

附录

OpenGL绘图的基本过程:

  1. 清除缓冲区

缓冲区是用来保存绘图过程中产生的图像数据的内存区域,OpenGL有颜色、深度、累积和模板等四种常用的缓冲区。

由于缓冲区中可能保留有上一次绘图遗留下来的图像数据,这些数据会影响本次绘图,因此在绘制新图之前必须将它们清除掉。颜色缓冲区中存放的是图像的像素颜色数据,深度缓冲区存放的是用于图像消隐的深度信息。在一个三维场景中,距离视点较近的物体肯能部分地或全部地遮挡住距离视点较远的物体。将被遮挡的部分消去不显示的技术称为图像消隐技术。

清除缓冲区的两个步骤:设置清除值和清除缓冲区

设置当前颜色

根据需要设置当前颜色,一旦一种颜色被设置为当前颜色,其后所有物体都将用该颜色绘出,直到当前颜色被设置为新的颜色为止。glColor()。

绘制几何图形

OpenGL中用于绘图的函数有很多,基本几何图元的绘图函数。glBegin()和glEnd()函数之间调用函数完成点、线、和多边形的绘制。glBegin(GLenum mode);

输出图形

glFlush();函数启动OpenGL绘图命令的执行,并将图形光栅化后输出在设备上。 

OpenGL是个状态机

什么是状态机?状态机是一种存在于理论中的机器,具有以下的特点:

  1. 它有记忆的能力,能够记住自己当前的状态。
  2. 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并可以得到输出。
  3. 当它进入某个特殊的状态的时候,它不再接收输入,停止工作。

OpenGL也可以看成这样的一种机器:

1.  OpenGL可以记录自己的状态(比如,当前所使用的颜色、是否开启了混合功能,等等。)

2.  OpenGL可以接收输入(当我们调用OpenGL函数的时候,实际上可以看成OpenGL在接收我们的输入),根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出(我们调用glColor3f,则OpenGL接收到这个输入后会修改自己的当前状态这个状态;我们调用glRectf,则OpenGL会输出一个矩形)

3.  OpenGL可以进入停止状态,不再接收输入。这个可能在我们的程序中表现得不太明显,不过在程序退出前,OpenGL总会先停止工作的。

OpenGL是一个状态机,它保持自身的状态,除非用户输入一条命令让它改变状态。

 

转自http://www.cnblogs.com/yxnchinahlj/archive/2010/11/23/1885579.html

posted @ 2010-11-29 14:51 Alex1 阅读(153) 评论(0) 编辑
 

「常見程式演算」主要收集一些常見的程式練習題目,您可以藉這些題目培養一些程式設計邏輯的感覺,對題目的分類只是個大概,方便索引而已,實作的部份是使 用 C 、Java、Python 與 Scala,有時會玩玩一些語言的特性讓程式看來簡潔(但不見得是最有效率的方式)。

 

老掉牙

數、運算

關於賭博

集合問題
排 序

搜尋

矩陣

堆疊、佇列

其它

转自Gossip@caterpillar http://caterpillar.onlyfun.net/Gossip/index.html

posted @ 2010-11-29 14:38 Alex1 阅读(114) 评论(0) 编辑
 

计算机专业英语词汇:

A
Active-matrix主动距陈
Adapter cards适配卡
Advanced application高级应用
Analytical graph分析图表
Analyze分析
Animations动画
Application software 应用软件
Arithmetic operations算术运算
Audio-output device音频输出设备
Access time存取时间
access存取
accuracy准确性
ad network cookies广告网络信息记录软件
Add-ons 插件
Address地址
Agents代理
Analog signals模拟信号
Applets程序
Asynchronous communications port异步通信端口
Attachment附件

B
Bar code条形码
Bar code reader条形码读卡器
Basic application基础程序
Binary coding schemes二进制译码方案
Binary system二进制系统
Bit比特
Browser浏览器
Bus line总线
Backup tape cartridge units备份磁带盒单元
Bandwidth带宽
Bluetooth蓝牙
Broadband宽带
Browser浏览器
Business-to-business企业对企业电子商务
Business-to-consumer企业对消费者
Bus总线
C
Cables连线
Cell单元箱
Chain printer链式打印机
Character and recognition device字符标识识别设备
Chart图表
Chassis支架
Chip芯片
Clarity清晰度
Closed architecture封闭式体系结构
Column列
Combination key结合键
computer competency计算机能力
connectivity连接,结点
Continuous-speech recognition system连续语言识别系统
Control unit操纵单元
Cordless or wireless mouse无线鼠标
Cable modems有线调制解调器
carpal tunnel syndrome腕骨神经综合症
CD-ROM可记录光盘
CD-RW可重写光盘
CD-R可记录压缩光盘
Channel信道
Chat group谈话群组
chlorofluorocarbons(CFCs) ]氯氟甲烷
Client客户端
Coaxial cable同轴电缆
cold site冷战
Commerce servers商业服务器
Communication channel信道
Communication systems信息系统
Compact disc rewritable
Compact disc光盘
computer abuse amendments act of 19941994计算机滥用法案
computer crime计算机犯罪
computer ethics计算机道德
computer fraud and abuse act of 1986计算机欺诈和滥用法案
computer matching and privacy protection act of 1988计算机查找和隐私保护法案
Computer network计算机网络
computer support specialist计算机支持专家
computer technician计算机技术人员
computer trainer计算机教师
Connection device连接设备
Connectivity连接
Consumer-to-consumer个人对个人
cookies-cutter programs信息记录截取程序
cookies信息记录程序 
cracker解密高手
cumulative trauma disorder积累性损伤错乱
Cybercash电子现金
Cyberspace计算机空间
cynic愤世嫉俗者
D
Database数据库
database files数据库文件
Database manager数据库管理
Data bus数据总线
Data projector数码放映机
Desktop system unit台式电脑系统单元
Destination file目标文件
Digital cameras数码照相机
Digital notebooks数字笔记本
Digital bideo camera数码摄影机
Discrete-speech recognition system不连续语言识别系统
Document文档
document files文档文件
Dot-matrix printer点矩阵式打印机
Dual-scan monitor双向扫描显示器
Dumb terminal非智能终端
data security数据安全
Data transmission specifications数据传输说明
database administrator数据库管理员
Dataplay数字播放器
Demodulation解调
denial of service attack拒绝服务攻击
Dial-up service拨号服务
Digital cash数字现金
Digital signals数字信号
Digital subscriber line数字用户线路
Digital versatile disc数字化通用磁盘
Digital video disc数字化视频光盘
Direct access直接存取
Directory search目录搜索
disaster recovery plan灾难恢复计划
Disk caching磁盘驱动器高速缓存
Diskette磁盘
Disk磁碟 
Distributed data processing system分部数据处理系统
Distributed processing分布处理
Domain code域代码
Downloading下载
DVD 数字化通用磁盘
DVD-R 可写DVD
DVD-RAM DVD随机存取器
DVD-ROM 只读DVD
E
e-book电子阅读器
Expansion cards扩展卡
end user终端用户
e-cash电子现金
e-commerce电子商务
electronic cash电子现金
electronic commerce电子商务
electronic communications privacy act of1986电子通信隐私法案
encrypting加密术
energy star能源之星
Enterprise computing企业计算化
environment环境
Erasable optical disks可擦除式光盘
ergonomics人类工程学
ethics道德规范
External modem外置调制解调器
extranet企业外部网
F
Fax machine传真机
Field域
Find搜索
FireWire port port火线端口
Firmware固件
Flash RAM闪存
Flatbed scanner台式扫描器
Flat-panel monitor纯平显示器 
floppy disk软盘
Formatting toolbar格式化工具条
Formula公式
Function函数
fair credit reporting act of 1970公平信用报告法案
Fiber-optic cable光纤电缆
File compression文件压缩
File decompression文件解压缩
filter过滤
firewall防火墙
firewall防火墙
Fixed disk固定硬盘
Flash memory闪存
Flexible disk可折叠磁盘
Floppies磁盘
Floppy disk软盘
Floppy-disk cartridge磁盘盒
Formatting格式化
freedom of information act of 1970信息自由法案
frequency频率
frustrated受挫折
Full-duplex communication全双通通信
G
General-purpose application通用运用程序
Gigahertz千兆赫
Graphic tablet绘图板
green pc绿色个人计算机
H
handheld computer手提电脑
Hard copy硬拷贝
hard disk硬盘
hardware硬件
Help帮助
Host computer主机
Home page主页
Hyperlink超链接
hacker黑客
Half-duplex communication半双通通信 
Hard disk硬盘
Hard-disk cartridge硬盘盒
Hard-disk pack硬盘组
Head crash磁头碰撞
header标题
help desk specialist帮助办公专家
helper applications帮助软件
Hierarchical network层次型网络
history file历史文件
hits匹配记录
horizontal portal横向用户
hot site热战
Hybrid network混合网络
hyperlinks超连接

I
Image capturing device图像获取设备
information technology信息技术
Ink-jet printer墨水喷射印刷机
Integrated package综合性组件
Intelligent terminal智能终端设备
Intergrated circuit集成电路
Interface cards接口卡
Internal modem内部调制解调器
internet telephony网络电话
internet terminal互联网终端
Identification识别
i-drive网络硬盘驱动器
illusion of anonymity匿名幻想
index search索引搜索
information pushers信息推送器
initializing 初始化
instant messaging计时信息
internal hard disk内置硬盘
Internal modem内部调制解调器
Internet hard drive 网络硬盘驱动器
intranet企业内部网
J
joystick操纵杆
K
keyword search关键字搜索

L
laser printer激光打印机
Layout files版式文件
Light pen光笔 
Locate定位
Logical operations逻辑运算
Lands凸面
Line of sight communication视影通信
Low bandwidth低带宽
lurking潜伏
M
Main board主板
Mark sensing标志检测
Mechanical mouse机械鼠标
Memory内存
Menu菜单
Menu bar菜单条
Microprocessor微处理器
Microseconds微秒
Modem card调制解调器
Monitor显示器
Motherboard主板
Mouse 鼠标
Multifunctional device多功能设备
Magnetic tape reels磁带卷
Magnetic tape streamers磁带条
mailing list邮件列表
Medium band媒质带宽
metasearch engine整合搜索引擎
Microwave微波
Modem解调器
Modulation解调

Net PC网络计算机
Network adapter card网卡
Network personal computer网络个人电脑
Network terminal 网络终端
Notebook computer笔记本电脑
Notebook system unit笔记本系统单元
Numeric entry数字输入
national information infrastructure protection act of1996国际信息保护法案
national service provider全国性服务供应商
Network architecture网络体系结构
Network bridge网桥
Network gateway网关
network manager网络管理员
newsgroup新闻组
no electronic theft act of1997无电子盗窃法
Node节点
Nonvolatile storage非易失性存储

Object embedding对象嵌入
Object linking目标链接
Open architecture开放式体系结构
Optical disk光盘
Optical mouse光电鼠标
Optical scanner光电扫描仪
Outline大纲
off-line browsers离线浏览器
Online storage联机存储
P
palmtop computer掌上电脑
Parallel ports并行端口
Passive-matrix被动矩阵
PC card个人计算机卡
Personal laser printer个人激光打印机
Personal video recorder card个人视频记录卡
Photo printer照片打印机
Pixel像素
Platform scanner平版式扫描仪
Plotter绘图仪
Plug and play即插即用
Plug-in boards插件卡
Pointer指示器
Pointing stick指示棍
Port端口
Portable scanner便携式扫描仪
Presentation files演示文稿
Presentation graphics电子文稿程序
Primary storage主存
Procedures规程
Processor处理机
Programming control lanugage程序控制语言
Packets数据包
Parallel data transmission平行数据传输
Peer-to-peer network system得等网络系统
person-person auction site个人对个人拍卖站点
physical security物理安全
Pits凹面
plug-in插件程序
Polling轮询
privacy隐私权
proactive主动地
programmer程序员
Protocols协议
provider供应商
proxy server代理服务
pull products推取程序
push products推送程序
R
RAM cache随机高速缓冲器
Range范围
Record记录
Relational database关系数据库
Replace替换
Resolution分辨率
Row行
Read-only只读
Reformatting重组
regional service provider区域性服务供应商
repetitive motion injury反复性动作损伤
reverse directory反向目录
right to financial privacy act of 1979财产隐私法案
Ring network环形网

S
Scanner扫描器
Search查找
Secondary storage device助存储设备
Semiconductor半导体
Serial ports串行端口
Server服务器
Shared laser printer共享激光打印机
Sheet表格
Silicon chip硅片
Slots插槽
Smart card智能卡
Soft copy软拷贝
Software suite软件协议
Sorting排序分类
Source file源文件
Special-purpose application专用文件
Spreadsheet电子数据表
Standard toolbar标准工具栏
Supercomputer巨型机
System cabine 系统箱
System clock时钟
System software系统软件
Satellite/air connection services卫星无线连接服务
search engines搜索引擎
search providers搜索供应者
search services 搜索服务器
Sectors扇区
security安全
Sending and receiving devices发送接收设备
Sequential access顺序存取
Serial data transmission单向通信
signature line签名档
snoopware监控软件
software copyright act of1980软件版权法案
software piracy软件盗版
Solid-state storage固态存储器
specialized search engine专用搜索引擎
spiders网页爬虫
spike尖峰电压
Star network星型网
Strategy方案
subject主题
subscription address预定地址
Superdisk超级磁盘
surfing网上冲浪
surge protector浪涌保护器
systems analyst系统分析师
T
Table二维表
Telephony电话学
Television boards电视扩展卡
Terminal 终端
Template模板
Text entry文本输入
Thermal printer 热印刷
Thin client瘦客
Toggle key触发键
Toolbar工具栏
Touch screen触摸屏
Trackball追踪球
TV tuner card电视调谐卡
Two-state system双状态系统
technical writer技术协作者
technostress重压技术
telnet远程登录
Time-sharing system分时系统
Topology拓扑结构
Tracks磁道
traditional cookies传统的信息记录程序
Twisted pair双绞


Unicode统一字符标准
uploading上传
usenet世界性新闻组网络


Virtual memory虚拟内存
Video display screen视频显示屏
Voice recognition system声音识别系统
vertical portal纵向门户
video privacy protection act of 1988视频隐私权保护法案
virus checker病毒检测程序
virus病毒
Voiceband音频带宽
Volatile storage易失性存储
voltage surge

W
Wand reader 条形码读入
Web 网络
Web appliance 环球网设备
Web page网页
Web site address网络地址
Web terminal环球网终端
Webcam摄像头
What-if analysis假定分析
Wireless revolution无线革命
Word字长
Word processing文字处理
Word wrap自动换行
Worksheet file 工**文件
web auctions网上拍卖
web broadcasters网络广播
web portals门户网站
web sites网站
web storefront creation packages网上商店创建包
web storefronts网上商店
web utilities网上应用程序
web-downloading utilities网页下载应用程序
webmaster web站点管理员
web万维网
Wireless modems无线调制解调器
wireless service provider无线服务供应商
world wide web万维网
worm蠕虫病毒
Write-protect notch写保护口

其他缩写
DVD digital bersatile 数字化通用光盘
IT information technology信息技术 
CD compact disc 压缩盘
PDA personal digital assistant个人数字助理
RAM random access memory随机存储器
WWW World Wide Web 万维网
DBMS database management system数据库管理系统
HTML Hypertext Markup Language超文本标示语言
OLE object linking and embedding对象链接入
SQL structured query language结构化查询语言
URL uniform resouice locator统一资源定位器
AGP accelerated graphics port加速图形接口
ALU arithmetic-logic unit算术逻辑单元
CPU central processing unit中央处理器
CMOS complementary metal-oxide semiconductor互补金属氧化物半导体
CISC complex instruction set computer复杂指令集计算机
HPSB high performance serial bus高性能串行总线
ISA industry standard architecture工业标准结构体系
PCI peripheral component interconnect外部设备互连总线
PCMCIA Personal Memory Card International Association个人计算机存储卡国际协会
RAM random-access memory随机存储器
ROM read-only memory只读存储器
USB universal serial bus通用串行总线
CRT cathode-ray tube阴极射线管
HDTV high-definition television高清晰度电视
LCD liquid crystal display monitor液晶显示器
MICRmagnetic-ink character recognition磁墨水字符识别器
OCR optical-character recognition光电字符识别器
OMR optical-mark recognition光标阅读器
TFT thin film transistor monitor薄膜晶体管显示器
Zip disk压缩磁盘
Domain name system(DNS)域名服务器
file transfer protocol(FTP)文件传送协议
hypertext markup language(HTML)超文本链接标识语言
Local area network(LAN)局域网
internet relay chat(IRC)互联网多线交谈
Metropolitan area network(MAN)城域网
Network operation system(NOS)网络操作系统
uniform resource locator(URL)统一资源定位器
Wide area network(WAN)广域网
Web server / Web 服务器
  well-connected / 连接良好
  well-known services / 公认的服务
  wide area network, WAN / 广域网
  wildcard character / 通配符
  wildcarding / 通配符方式
  window menu / 窗口菜单
  Windows 2000 Server File and Print Servers for Macintosh / Windows 2000 Server 的 Macintosh 文件与打印服务器
  Windows 2000 Task Manager / Windows 2000 任务管理器
  Windows Internet Name Service, WINS / Windows Internet 命名服务
  Windows Management Instrumentation, WMI / Windows 管理规范
  Windows Media Services / Windows Media 服务
  WINS, Windows Internet Name Service / Windows Internet 命名服务
  WINS proxy / WINS 代理
  WINS resource / WINS 资源
  Winsock
  wireless communication / 无线通讯
  WMI, Windows Management Instrumentation / Windows 管理规范
  workgroup / 工作组
  X.509v3 certificate / X.509/ 证书
  XOR, exclusive OR / 异或
  zone / 区域
  zone list / 区域列表
  zone transfer / 区域传送


转自http://blog.163.com/yingxuemu@126/blog/static/837578082008821018484/

posted @ 2010-11-29 11:15 Alex1 阅读(24) 评论(0) 编辑

2010年11月16日

摘要: 开发者的技术成长是个永恒的话题。《如何成为一个专家级的开发者》文中虽然界定了专家的概念和开发者成长为专家级的一般路径,但却忽视了一个问题:为什么只有少数人能成长为开发高手和专家级程序员?一般程序员与开发高手的差距在哪里?    事实上,我们一直在关注这一问题,并就此进行了数月的调查走访,受访的十几位技术专家对此问题的回答有些出乎我们的意料,也与众多入门级开发者所想象的“差距&rdquo...阅读全文
posted @ 2010-11-16 12:53 Alex1 阅读(14) 评论(0) 编辑

2010年11月14日

摘要: 编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你能在本文中看到自己的身影。  从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些...阅读全文
posted @ 2010-11-14 18:51 Alex1 阅读(13) 评论(0) 编辑

2010年11月12日

摘要: 经常面对电脑的人,难免会受到这个高科技产品的危害,辐射,久坐电脑前带来的肥胖,眼睛疲劳等电脑带来的一系列问题无法避免,那么怎样将伤害降到最小呢,小编来支招吧。  防辐射  要预防电磁辐射的伤害,应增加枸杞子食品、花粉食品的摄入。枸杞子补肝、明目,具有保护视网膜免受光损伤、清除自由基和抗X射线辐射的作用。花粉含有大量的核酸、氨基酸、维生素、烟酸、叶酸等生物营养成分。花粉中的氨基酸能提高受辐射动物外周...阅读全文
posted @ 2010-11-12 10:17 Alex1 阅读(6) 评论(0) 编辑