<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_我的程序人生</title><subtitle type="text">读过和读懂是2回事,多听少说.</subtitle><id>http://feed.cnblogs.com/blog/u/36678/rss</id><updated>2012-01-05T07:06:35Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/36678/rss"/><entry><id>http://www.cnblogs.com/wenjl520/archive/2012/01/05/2313177.html</id><title type="text">话说坚持</title><summary type="text">坚持不懈，直到成功。在古老的东方，挑选小公牛到竞技场格斗有一定的程序。它们被带进场地，向手持长矛的斗士攻击，裁判与它受戳后再向斗牛士进攻的次数多寡来评断这只公牛的勇敢程度。从今往后，我须承认，我的生命每天都在经受这类似的考验。如果我坚韧不拔，勇往直前，迎接挑战，那么我一定会成功。坚持不懈，直到成功。我不是为了失败才来到这个世界上的，我的血管里也没有失败的血液在流动。我不是任人鞭打的羔羊，我是猛狮，不与羊群为伍。我不想听失意者的哭泣，抱怨者的牢骚，这是羊群中的瘟疫，我不能让它传染。失败者的屠宰场不是我命运的归宿。坚持不懈，直到成功。生命的奖赏远在旅途终点，而非起点附近。我不知道要走多少步才能达到</summary><published>2012-01-05T07:07:00Z</published><updated>2012-01-05T07:07:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2012/01/05/2313177.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2012/01/05/2313177.html"/><content type="html">&lt;!--StartFragment --&gt;&#xD;
&lt;div&gt;坚持不懈，直到成功。&amp;nbsp;&amp;nbsp;在古老的东方，挑选小公牛到竞技场格斗有一定的程序。它们被带进场地，向手持长矛的斗士攻击，裁判与它受戳后再向斗牛士进攻的次数多寡来评断这只公牛的勇敢程度。从今往后，我须承认，我的生命每天都在经受这类似的考验。如果我坚韧不拔，勇往直前，迎接挑战，那么我一定会成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;我不是为了失败才来到这个世界上的，我的血管里也没有失败的血液在流动。我不是任人鞭打的羔羊，我是猛狮，不与羊群为伍。我不想听失意者的哭泣，抱怨者的牢骚，这是羊群中的瘟疫，我不能让它传染。失败者的屠宰场不是我命运的归宿。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;生命的奖赏远在旅途终点，而非起点附近。我不知道要走多少步才能达到目标，踏上第一千步的时候，仍然可能遭到失败。但成功就藏在拐角后面，除非拐了弯，我永远不知道还有多远。再前进一步，如果没有用，就再前进一点。事实上，每次进步一点点并不太难。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;从今往后，我承认每天的奋斗就像对参天大树的一次砍击，头几刀可能了无痕迹。每一击看似微不足道，然而，累积起来，巨树终会倒下。这恰如我今天的努力。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;就像冲洗高山的雨滴，吞噬猛虎的蚂蚁，照亮大地的星辰，建起金字塔的奴隶，我也要一砖一瓦的建造起自己的城堡，因为我深知水滴石穿的道理，只要持之以恒，什么都可以做到。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;我决不考虑失败，我的字典里不再有放弃、不可能、办不到、没法子、成问题、失败、行不通；没希望；退缩&amp;hellip;&amp;hellip;这类愚蠢的字眼。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;我要尽量避免绝望，一旦受到它的威胁，立即想方设法向它挑战。我要辛勤耕耘，忍受苦楚。我放眼未来，勇往直前，不再理会脚下的障碍。我坚信，沙漠尽头必是绿洲。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;我要牢牢记住古老的平衡法则，鼓励自己坚持下去，因为每一次失败都会增加下一次成功的机会。这一次的拒绝就是下一次的赞同，这一次皱起的眉头就是下一次舒展的笑容。今天的不幸，往往预示着明天的好运。夜幕降临，回想一天的遭遇，我总是心存感激。我深知，只有失败多次，才能成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;我要尝试，尝试&amp;nbsp;，再尝试&amp;nbsp;&amp;nbsp;，障碍是我成功路上的弯路，我迎接这项挑战。我要像水手一样，乘风破浪。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;从今往后，我要借鉴别人成功的秘诀。过去的是非成败，我全不计较，只抱定信念，明天会更好。当我精疲力竭时，我要抵制回家的诱惑，在试一次。我一试再试，争取每一天的成功，避免以失败收场。我要为明天的成功播种，超过那些按部就班的人。在别人停滞不前时，我继续拼搏，终有一天我会丰收。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;坚持不懈，直到成功。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;我不因昨日的成功而满足，因为这是失败的先兆。我要忘却昨日的一切，是好是坏，都让它随风而去。我信心百倍，迎接新的太阳，相信&amp;ldquo;今天是此生最好的一天&amp;rdquo;。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;只要一息尚存，就要坚持到底，因为我已深知成功的秘诀：坚持不懈，终会成功。&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2313177.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2012/01/05/2313177.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/09/02/2163651.html</id><title type="text">网页兼容性检查工具--Compatibility Detector for Firefox&amp;lt;转&amp;gt;</title><summary type="text">官方扩展中心网页兼容性检查工具--Compatibility Detector for Firefox作者jiaofeng目前版本0.2.6适合版本Firefox: 4.0b2 - 8.0a1我要安装!网页开发者很头痛的问题之一就是检查网页在各个浏览器下的兼容性。本工具由Mozilla的工程师Jiao Feng移植自Chrome的版本，通过智能检测的方式，检查跨浏览器开发容易出现的兼容性问题。目前的版本一共能检测出40 个跨浏览器开发过程中可能会遇到的兼容性问题，其中包括文本渲染、表格、布局以及脚本等几个方面。所有已知的兼容性问题列表见 W3Help网站。本扩展采用Jetpack技术，安装之后</summary><published>2011-09-02T06:01:00Z</published><updated>2011-09-02T06:01:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/09/02/2163651.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/09/02/2163651.html"/><content type="html">&lt;div &gt;&#xD;
&lt;div &gt;&lt;img alt="网页兼容性检查工具--Compatibility Detector for Firefox" src="https://static-cdn.addons.mozilla.net/img/uploads/previews/thumbs/61/61723.png?src=api&amp;amp;modified=1312964166" /&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;p&gt;&lt;span &gt;官方扩展中心&lt;/span&gt;&lt;span &gt;&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/333567/"&gt;网页兼容性检查工具--Compatibility Detector for Firefox&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;作者&lt;/span&gt;&lt;span &gt;jiaofeng&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;目前版本&lt;/span&gt;&lt;span &gt;0.2.6&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span &gt;适合版本&lt;/span&gt;&lt;span &gt;Firefox: 4.0b2 - 8.0a1&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&lt;a  href="https://addons.mozilla.org/zh-CN/firefox/downloads/latest/333567/addon-333567-latest.xpi"&gt;我要安装!&lt;/a&gt;&lt;/div&gt;&#xD;
&lt;div style="clear: both;"&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;p&gt;网页开发者很头痛的问题之一就是检查网页在各个浏览器下的兼容性。&lt;/p&gt;&#xD;
&lt;p&gt;本工具由Mozilla的工程师Jiao Feng移植自&lt;a href="https://chrome.google.com/webstore/detail/fcillahbnhlpombgccogflhmgocfifma"&gt;Chrome的版本&lt;/a&gt;，通过智能检测的方式，检查跨浏览器开发容易出现的兼容性问题。&lt;/p&gt;&#xD;
&lt;p&gt;目前的版本一共能检测出40 个跨浏览器开发过程中可能会遇到的兼容性问题，其中包括文本渲染、表格、布局以及脚本等几个方面。所有已知的兼容性问题列表见 &lt;a href="http://w3help.org/zh-cn/causes/"&gt;W3Help网站&lt;/a&gt;。&lt;/p&gt;&#xD;
&lt;p&gt;本扩展采用Jetpack技术，安装之后无需重启,按钮自动出现在附加组件栏上。到需要检测的页面点击按钮即可开始自动检测。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="alt text" src="http://mozilla.com.cn/static/upload/2011/08/12/13131190398010072.png" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;检测分为基本检测和高级检测。&lt;/p&gt;&#xD;
&lt;p&gt;基本检测只是检测一些全局问题。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="alt text" src="http://mozilla.com.cn/static/upload/2011/08/12/13131191625823805.png" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;高级检测网页会重新刷新一次，并细致检测网页每一行代码，并给出问题所在，和W3Help上的解决方案。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="alt text" src="http://mozilla.com.cn/static/upload/2011/08/12/13131192739330024.png" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;同时，高级检测支持直接定位到出现问题的地方，并在网页中标识出。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img alt="alt text" src="http://mozilla.com.cn/static/upload/2011/08/12/1313119326922732.png" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;希望这个扩展对广大开发者有所帮助。&lt;/p&gt;&#xD;
&lt;p&gt;PS：&lt;/p&gt;&#xD;
&lt;p&gt;1.Add a preference in about:config to display the English interface&lt;/p&gt;&#xD;
&lt;pre&gt;&lt;code&gt;key = "extensions.compatibility-detector.language"&#xD;
value = "en"&#xD;
&lt;/code&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;2.本扩展目前处于Beta测试阶段，如果使用中发现问题，可以在这里或者AMO上留言，帮助作者改进扩展。&lt;/p&gt;&#xD;
&lt;p&gt;3.新版已经修复了XP下不能安装的Bug，可以正常使用了。&lt;/p&gt;&#xD;
&lt;p&gt;原文地址:http://mozilla.com.cn/selections/addon/120/&lt;/p&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2163651.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/09/02/2163651.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/07/11/2103151.html</id><title type="text">一个程序员自我剖析</title><summary type="text">从中专毕业到现在9年了,一直以来浑浑噩噩的过着日子,曾经番然醒悟过,狂妄自大过.从小到大毛病多多,简单的说是爱憎分明,从脸上就可以看出一切.干过工人,中间毅然转行,总的来说就是圆梦来着,小时候因为爱玩游戏,而立下目标以后要成为计算机专家.目标很远大,但是自己总是行动到一半就断了,初中上高中没考试,中专考大学也没参加,梦想一步步的遥远.当然为什么会转IT业应该感谢的我中专的班主任,他的一句话让信心大...</summary><published>2011-07-11T08:11:00Z</published><updated>2011-07-11T08:11:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/07/11/2103151.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/07/11/2103151.html"/><content type="html">&lt;p&gt;从中专毕业到现在9年了,一直以来浑浑噩噩的过着日子,曾经番然醒悟过,狂妄自大过.从小到大毛病多多,简单的说是爱憎分明,从脸上就可以看出一切.干过工人,中间毅然转行,总的来说就是圆梦来着,小时候因为爱玩游戏,而立下目标以后要成为计算机专家.目标很远大,但是自己总是行动到一半就断了,初中上高中没考试,中专考大学也没参加,梦想一步步的遥远.当然为什么会转IT业应该感谢的我中专的班主任,他的一句话让信心大增,他说俺在计算机方面其实很有天赋.就是这句话.让我在工作4年后毅然再次进入学校读书,其实那时候的我已经对书本感觉快没了.呵呵,养成一个好的习惯不容易.从小俺就喜欢看书,尤其是历史方面的书,曾经立志想当历史老师.当然这个习惯从识字开始就保持到现在了,不容易啊.哈哈是不是任务很夸张,小的时候识字不多就看小人书,大一点的时候看啥童话,初中的历史书,语文书,为什么呢,那时候没有钱,只能看这些了,这里面有很多小故事.这个习惯让我语文基础总得高分,可是就是不知道怎么把自己心里想的用笔写出来,闹得现在写需求说明书很痛苦,作文也得不到高分,悲剧啊!&lt;/p&gt;&#xD;
&lt;p&gt;上面那么多废话,说重点的.既然是剖析自己,那就列出优缺点吧,咱有啥优点呢,如下几条:&lt;/p&gt;&#xD;
&lt;p&gt;1.爱学习,有上进心.&lt;/p&gt;&#xD;
&lt;p&gt;2.乐观,什么事情都往好的想,至少不会自己生自己气.&lt;/p&gt;&#xD;
&lt;p&gt;3.善良,孝顺.&lt;/p&gt;&#xD;
&lt;p&gt;4.做事有条理性.&lt;/p&gt;&#xD;
&lt;p&gt;优点好少啊,缺点比较多,列列出来亮相一下:&lt;/p&gt;&#xD;
&lt;p&gt;1.爱插话,没有办法做到虚极静笃.&lt;/p&gt;&#xD;
&lt;p&gt;2.什么心情都表现在脸上动作上.&lt;/p&gt;&#xD;
&lt;p&gt;3.不注重礼节,没有做到不耻下问.&lt;/p&gt;&#xD;
&lt;p&gt;4.爱憎太分明,自己不愿意做的东西做不下去,没有动力.&lt;/p&gt;&#xD;
&lt;p&gt;5.自己做的东西追求完美,但是没有毅力做完,别人的东西不太愿意接纳(不符合我的style).&lt;/p&gt;&#xD;
&lt;p&gt;6.心特别浮躁,没有办法静下来,照成效率低下.&lt;/p&gt;&#xD;
&lt;p&gt;7.爱跟人争,对的也绝不让步,很少反省自己.&lt;/p&gt;&#xD;
&lt;p&gt;8.什么都想学,什么都懂一点,半桶水说的就是俺这种.&lt;/p&gt;&#xD;
&lt;p&gt;9.说话不经大脑,无意中经常伤害人(无心的).&lt;/p&gt;&#xD;
&lt;p&gt;10.对专业人士不够尊重,总是认为自己懂了,结果啥都不懂.&lt;/p&gt;&#xD;
&lt;p&gt;11.对家人关心不够,特别是总是对老妈和媳妇大声说话.&lt;/p&gt;&#xD;
&lt;p&gt;12.不敢跟陌生人交流(奇迹的时候我在世博的时候就敢,哎环境造就人啊)&lt;/p&gt;&#xD;
&lt;p&gt;13.对不如自己的人不屑一顾.&lt;/p&gt;&#xD;
&lt;p&gt;14.有时候功利心比较重(目前已经渐渐放下了).&lt;/p&gt;&#xD;
&lt;p&gt;15.有的时候太清高,总是不愿意利用家里的关系,爱自己去折腾.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;16.&amp;nbsp;总是想做点啥,但是总是光说不练.&lt;/p&gt;&#xD;
&lt;p&gt;17.有点安于现状,总是给自己放假!&lt;/p&gt;&#xD;
&lt;p&gt;罪恶实在太多,罄竹难书啊,写不下去了...........想到接着写吧.&lt;/p&gt;&#xD;
&lt;p&gt;人一定知道自己要什么,可是总是不往那方面使劲,俺就是典型案例,所以总是不成才.程序员跟程序猿的差别在哪里呢,就是程序员是有思想的,程序猿是一个会编码的动物而已,从事IT4年来,真的是做了4年的程序猿,只会编码,思想全无.从09年开始我意识到了,如果这样下去我的瓶颈会一直卡着我,早在08年我就遇到了非常大的瓶颈,技术上没有太大的突破,思想上更别提了.所以从想&lt;span style="color: #ff0000;"&gt;从"程序猿"到"程序员",首先必须实现思想上的突破.以道御术,这是根本!&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color: #003300;"&gt;&amp;nbsp; 技术我学了不少,但是没有精通的,java,c++,c#,VB,VB.net,javaScript,GIS,Action Script,silverlight,FLEX,ruby,python,sqlserver,oracle.但是真正能用的好点就是javascript和c#,还有sqlserver.悲剧吧.所以从09年开始我就一直努力在研究c#的底层,呵呵,因为个人原因,并没有坚持下来,造成了今天的困境.大家引以为鉴.文采不好,先写到这里吧.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2103151.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/07/11/2103151.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/07/07/2100518.html</id><title type="text">关于面试</title><summary type="text">咱是搞程序的,就说说怎么招程序员吧,现在这个社会,人难招,合适的人更难招,怎么样快速辨别人才呢,老总给支了点招,先记着,哪天可以用上! 技术工程师--程序员需要具备以下4个特质是很完美的:1.学习能力(在IT行业混,没有一定的学习能力怎么混,哈哈)2.逻辑思维(学程序没有逻辑思维是很要命的) 3.人品(必须诚实) 4.必须自信(对自己做的东西都不自信,怎么敢卖给客户,被砍死都有可能,哈哈) 5.必须得有责任心(不然安排的事情猴年马月才能做好啊) 那要怎么样测试面试者有以上特质呢,嘿嘿,知道的可以飘过了. 第一,学习能力:拿一篇文章让他去打,然后在里面故意设置一些错别字,重复语句,不通顺语句.打</summary><published>2011-07-07T14:20:00Z</published><updated>2011-07-07T14:20:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/07/07/2100518.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/07/07/2100518.html"/><content type="html">&lt;p&gt;咱是搞程序的,就说说怎么招程序员吧,现在这个社会,人难招,合适的人更难招,怎么样快速辨别人才呢,老总给支了点招,先记着,哪天可以用上!&lt;/p&gt;&#xD;
&lt;p&gt;技术工程师--程序员需要具备以下4个特质是很完美的:&lt;/p&gt;&#xD;
&lt;p&gt;1.学习能力(在IT行业混,没有一定的学习能力怎么混,哈哈)&lt;/p&gt;&#xD;
&lt;p&gt;2.逻辑思维(学程序没有逻辑思维是很要命的)&lt;/p&gt;&#xD;
&lt;p&gt;3.人品(必须诚实)&lt;/p&gt;&#xD;
&lt;p&gt;4.必须自信(对自己做的东西都不自信,怎么敢卖给客户,被砍死都有可能,哈哈)&lt;/p&gt;&#xD;
&lt;p&gt;5.必须得有责任心(不然安排的事情猴年马月才能做好啊)&lt;/p&gt;&#xD;
&lt;p&gt;那要怎么样测试面试者有以上特质呢,嘿嘿,知道的可以飘过了.&lt;/p&gt;&#xD;
&lt;p&gt;第一,学习能力:拿一篇文章让他去打,然后在里面故意设置一些错别字,重复语句,不通顺语句.打完之后询问里面有多少重复语句,多少错别字是否改过来,不通顺的语句是否会修改.&lt;/p&gt;&#xD;
&lt;p&gt;大家是不是觉得这样很无聊,呵呵,如果您的程序员从网上找到的代码是有错的,但是却不懂改,是不是很悲剧,直接拷贝,有错的接着错,重复接着重复而不是提取.没有一定的理解能力是不行的.&lt;/p&gt;&#xD;
&lt;p&gt;第二,逻辑思维:这个最简单的了,常用的题目,一辆车倒了,你能想到什么?,一个人倒了,你会想到什么?这个考什么呢,考人的发散性思维,程序员不具备这个也很麻烦,虽然不会照成啥问题,但是没有创新.如果答题的答案太少了可以直接pass了,要嘛认为这个题目跟编程无关,或者说没有责任心.&lt;/p&gt;&#xD;
&lt;p&gt;第三,人品:这个相当重要,人必须要有勇于承担错误的意识.这个怎么测试呢?可以考虑压力测试,人在压力下什么小九九都会冒出来,这大于前面3条,一定要慎重,软件这个东西用在正式场合会伤天害理得.&lt;/p&gt;&#xD;
&lt;p&gt;第四,自信:哈哈,现在很多人不是喜欢漫天要价,动动就上万月薪,但是他到底有多少能力可以拿呢,他有这个自信吗?怎么测试呢?呵呵,这个简单,用薪资,比如他说要6k,那我们可以跟他说,前3个月给3k,如果通过使用期,3个月后9k一起给,还有一种方案,砍掉1500,给4500,那这个人如果接受第二种方案直接就可以pass了.&lt;/p&gt;&#xD;
&lt;p&gt;以上纯属yy,俺还没招过人,没啥经验,先纸上谈兵一下,相信用了俺的招数一定可以找到人才的,相信我,那是必须的.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2100518.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/07/07/2100518.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/07/01/2095320.html</id><title type="text">SQL计算数据库表占用的真实空间大小</title><summary type="text">最近客户的数据库暴涨,一开始找不到原因,用sql查询表的空间大小,结果之前用的sql语句只能查询除了text,image外的字段大小.搞得一时间混乱不堪.后来咨询了大师们,找到用sp_spaceused这个系统函数可以查询表的真实大小,包含text等字段.sql如下:declare @id NVARCHAR(100)create table #spt_space( [name] NVARCHAR(50) null, [rows] int null, [reserved] NVARCHAR(50) null, [data] NVARCHAR(50) null, [index_size] NVA.</summary><published>2011-07-01T02:49:00Z</published><updated>2011-07-01T02:49:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/07/01/2095320.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/07/01/2095320.html"/><content type="html">&lt;p&gt;最近客户的数据库暴涨,一开始找不到原因,用sql查询表的空间大小,结果之前用的sql语句只能查询除了text,image外的字段大小.搞得一时间混乱不堪.后来咨询了大师们,找到用sp_spaceused这个系统函数可以查询表的真实大小,包含text等字段.sql如下:&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;declare @id            NVARCHAR(100)&#xD;
create table #spt_space&#xD;
(&#xD;
    [name]            NVARCHAR(50) null,&#xD;
    [rows]          int null,&#xD;
    [reserved]       NVARCHAR(50) null,&#xD;
    [data]         NVARCHAR(50) null,&#xD;
    [index_size]        NVARCHAR(50) null,&#xD;
    [unused]         NVARCHAR(50) null&#xD;
)&#xD;
&#xD;
set nocount on&#xD;
&#xD;
declare c_tables cursor for&#xD;
select name from sysobjects where xtype = 'U'&#xD;
&#xD;
open c_tables fetch next from c_tables into @id&#xD;
&#xD;
while @@fetch_status = 0&#xD;
begin&#xD;
    /* Code from sp_spaceused */&#xD;
    insert into #spt_space ([name],[rows],reserved,data,index_size,unused)&#xD;
    EXEC sp_spaceused @id&#xD;
    fetch next from c_tables   into @id&#xD;
&#xD;
end&#xD;
SELECT * FROM(&#xD;
SELECT *,CAST(REPLACE(reserved,'KB','') AS INT) AS reservedindex FROM #spt_space&#xD;
) c&#xD;
order by c.reservedindex desc&#xD;
&#xD;
drop table #spt_space&#xD;
close c_tables&#xD;
deallocate c_tables&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2095320.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/07/01/2095320.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/06/30/2095089.html</id><title type="text">在C#中调用JavaScript等脚本的实现&amp;lt;转&amp;gt;</title><summary type="text">在C#中调用JavaScript等脚本的实现作者:秋枫 发布时间:2004-4-29 9:49:05 文章来源:csdn以前在做工作流(workflow)项目的时候，里面有一项就是在用户制定流程定义时可以编写脚本来控制活动的跳转，而这些脚本定义后存在数据库中，当流程启动的时候，工作流引擎会控制活动执行顺序，串型的两个活动比较简单，但有的活动到下一个活动有条件判断，或者存在多个分支，简单的还好，只要在数据库表中加个字段就可以实现，复杂一点的就需要通过脚本实现了。当时经验不够，几天都没找到快速的解决办法，想自己写一个自定义脚本引擎没有把握，而且时间也不够，还是在网上找找看吧，花了一些时间，还是找到</summary><published>2011-06-30T14:52:00Z</published><updated>2011-06-30T14:52:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/06/30/2095089.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/06/30/2095089.html"/><content type="html">&lt;table width="98%" &gt;&#xD;
&lt;tbody&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;在C#中调用JavaScript等脚本的实现&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td &gt;&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td height="30" &gt;作者:秋枫 发布时间:2004-4-29 9:49:05 文章来源:csdn&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;tr&gt;&#xD;
&lt;td&gt;&#xD;
&lt;div&gt;&lt;/div&gt;&#xD;
&lt;div &gt;&#xD;
&lt;p&gt;以前在做工作流(workflow)项目的时候，里面有一项就是在用户制定流程定义时可以编写脚本来控制活动的跳转，而这些脚本定义后存在数据库中，当流程启动的时候，工作流引擎会控制活动执行顺序，串型的两个活动比较简单，但有的活动到下一个活动有条件判断，或者存在多个分支，简单的还好，只要在数据库表中加个字段就可以实现，复杂一点的就需要通过脚本实现了。当时经验不够，几天都没找到快速的解决办法，想自己写一个自定义脚本引擎没有把握，而且时间也不够，还是在网上找找看吧，花了一些时间，还是找到了一个自认为比较好的解决办法，写出来同大家分享。&lt;br /&gt;下面通过两部分来说明实现以及应用。&lt;/p&gt;&#xD;
&lt;p&gt;一．使用MSScriptControl&lt;/p&gt;&#xD;
&lt;p&gt;到微软的网站上&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;amp;FamilyID=D05FCF37-4D9F-4769-9442-0BCEEF907033"&gt;下载Windows Script Control&lt;/a&gt;，它是一个ActiveX(R) 控件，所以在.NET中使用我Interop了一下。下载安装完成后，新建一个C#的Windows应用程序项目，在解决方案资源管理器中选中引用节点，右键点击选择添加引用菜单，弹出添加引用对话框，单击浏览找到安装Windows Script Control的目录，选取msscript.ocx文件确定。那么在引用节点下会增加一个MSScriptControl组件，下面是他Interop后的所有对象。&lt;/p&gt;&#xD;
&#xD;
&lt;p align="center"&gt;&lt;a target="_blank" href="http://www.weste.net/UploadFiles/200442994739446.gif"&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;ScriptControl 对支持 ActiveX(TM) Script 的宿主 Script 引擎提供简单接口。接下来我们对被转化成ScriptControlClass类的ScriptControl的属性和方法进行一些说明。&lt;/p&gt;&#xD;
&lt;p&gt;属性&lt;/p&gt;&#xD;
&lt;p&gt;AllowUI 属性：应用于 ScriptControl 本身或 Scirpt 引擎显示的用户界面元素，可读写。&lt;/p&gt;&#xD;
&lt;p&gt;CodeObject 属性：返回对象，该对象用于调用指定模块的公用成员。只读。&lt;/p&gt;&#xD;
&lt;p&gt;Error 属性：返回 Error 对象，其中包含所发生的最后一个错误的相关详细信息。只读。&lt;/p&gt;&#xD;
&lt;p&gt;Language 属性：设置或返回正在使用的 Script 语言名称。可读写。&lt;/p&gt;&#xD;
&lt;p&gt;Modules 属性：为 ScriptControl 对象返回模块集合。只读。&lt;/p&gt;&#xD;
&lt;p&gt;Procedures 属性：返回在指定模块中定义的过程集合。只读。&lt;/p&gt;&#xD;
&lt;p&gt;SitehWnd 属性：设置或返回窗口的 hWnd，通过执行 Script 代码，此窗口用于显示对话框和其他用户界面元素。可读写。&lt;/p&gt;&#xD;
&lt;p&gt;State 属性：设置或返回 ScriptControl 对象的模式。可读写。&lt;/p&gt;&#xD;
&lt;p&gt;Timeout 属性：设置或返回时间（毫秒），此时间后用户可选择中止 Script 代码的执行或允许代码继续执行。可读写。&lt;/p&gt;&#xD;
&lt;p&gt;UseSafeSubset 属性：设置或返回 Boolean 值，指明宿主应用程序是否有保密性要求。如果宿主应用程序需要安全控制，则 UseSafeSubset 为 True，否则为 False。可读写。&lt;/p&gt;&#xD;
&lt;p&gt;方法&lt;/p&gt;&#xD;
&lt;p&gt;AddCode 方法：向模块添加指定代码。可多次调用 AddCode 方法。&lt;/p&gt;&#xD;
&lt;p&gt;AddObject 方法：使主机对象模型对 Script 引擎可用。&lt;/p&gt;&#xD;
&lt;p&gt;Eval 方法：计算表达式并返回结果。&lt;/p&gt;&#xD;
&lt;p&gt;ExecuteStatement 方法：执行指定的语句。&lt;/p&gt;&#xD;
&lt;p&gt;Reset 方法：放弃所有已经添加到 ScriptControl 中的 Script 代码和对象。&lt;/p&gt;&#xD;
&lt;p&gt;Run 方法：运行指定过程。&lt;/p&gt;&#xD;
&lt;p&gt;事件&lt;/p&gt;&#xD;
&lt;p&gt;Error 事件：出现运行时错误时，发生此事件。&lt;/p&gt;&#xD;
&lt;p&gt;Timeout 事件：当超出了 Timeout 属性指定的时间且用户在结果对话框中选定了 End 时，发生此事件。&lt;/p&gt;&#xD;
&lt;p&gt;补充几点&lt;/p&gt;&#xD;
&lt;p&gt;AllowUI 属性如果设置为false，则显示对话框之类的语句不起作用，如在 VBScript 中MsgBox 语句，JavaScript中的alert等，并且如果执行的脚本超出TimeOut设置的毫秒数，也不会跳出超出时间提醒的对话框，反之则相反；重新设置 Language 属性会清空AddCode加载的代码；对于TimeOut属性，发生超时时，ScriptControl 检查对象的 AllowUI 属性，确定是否允许显示用户界面元素。&lt;/p&gt;&#xD;
&lt;p&gt;如果读者需要更详细的了解，可以查看MSDN文档。&lt;/p&gt;&#xD;
&lt;p&gt;为了使控件更容易使用，我用一个ScriptEngine类包装了一下，下面是完整代码：&lt;/p&gt;&#xD;
&#xD;
&lt;div &gt;&#xD;
&lt;pre &gt;using System;&#xD;
&#xD;
using MSScriptControl;&#xD;
&#xD;
using System.Text;&#xD;
&#xD;
namespace ZZ&#xD;
&#xD;
{&#xD;
&#xD;
     /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
     /// 脚本类型&#xD;
&#xD;
     /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
     public enum ScriptLanguage&#xD;
&#xD;
     {&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// JScript脚本语言&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         JScript,&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// VBscript脚本语言&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         VBscript,&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// JavaScript脚本语言&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         JavaScript&#xD;
&#xD;
     }&#xD;
&#xD;
     /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
     /// 脚本运行错误代理&#xD;
&#xD;
     /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
     public delegate void RunErrorHandler();&#xD;
&#xD;
     /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
     /// 脚本运行超时代理&#xD;
&#xD;
     /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
     public delegate void RunTimeoutHandler();&#xD;
&#xD;
     /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
     /// ScriptEngine类&#xD;
&#xD;
     /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
     public class ScriptEngine&#xD;
&#xD;
     {&#xD;
&#xD;
         private ScriptControl msc; &#xD;
&#xD;
         //定义脚本运行错误事件&#xD;
&#xD;
         public event RunErrorHandler RunError;&#xD;
&#xD;
         //定义脚本运行超时事件&#xD;
&#xD;
         public event RunTimeoutHandler RunTimeout;&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         ///构造函数&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         public ScriptEngine():this(ScriptLanguage.VBscript)&#xD;
&#xD;
         {&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 构造函数&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="language"&amp;gt;脚本类型&amp;lt;/param&amp;gt;&#xD;
&#xD;
         public ScriptEngine(ScriptLanguage language)&#xD;
&#xD;
         {&#xD;
&#xD;
              this.msc = new ScriptControlClass();&#xD;
&#xD;
              this.msc.UseSafeSubset = true;&#xD;
&#xD;
              this.msc.Language = language.ToString();&#xD;
&#xD;
              ((DScriptControlSource_Event)this.msc).Error += new DScriptControlSource_ErrorEventHandler(ScriptEngine_Error);&#xD;
&#xD;
              ((DScriptControlSource_Event)this.msc).Timeout += new DScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 运行Eval方法&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="expression"&amp;gt;表达式&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="codeBody"&amp;gt;函数体&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;returns&amp;gt;返回值object&amp;lt;/returns&amp;gt;&#xD;
&#xD;
         public object Eval(string expression,string codeBody)&#xD;
&#xD;
         {&#xD;
&#xD;
              msc.AddCode(codeBody);&#xD;
&#xD;
              return msc.Eval(expression);&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 运行Eval方法&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="language"&amp;gt;脚本语言&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="expression"&amp;gt;表达式&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="codeBody"&amp;gt;函数体&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;returns&amp;gt;返回值object&amp;lt;/returns&amp;gt;&#xD;
&#xD;
         public object Eval(ScriptLanguage language,string expression,string codeBody)&#xD;
&#xD;
         {&#xD;
&#xD;
              if(this.Language != language)&#xD;
&#xD;
                   this.Language = language;&#xD;
&#xD;
              return Eval(expression,codeBody);&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 运行Run方法&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="mainFunctionName"&amp;gt;入口函数名称&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="parameters"&amp;gt;参数&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="codeBody"&amp;gt;函数体&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;returns&amp;gt;返回值object&amp;lt;/returns&amp;gt;&#xD;
&#xD;
         public object Run(string mainFunctionName,object[] parameters,string codeBody)&#xD;
&#xD;
         {&#xD;
&#xD;
              this.msc.AddCode(codeBody);&#xD;
&#xD;
              return msc.Run(mainFunctionName,ref parameters);&#xD;
&#xD;
          }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 运行Run方法&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="language"&amp;gt;脚本语言&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="mainFunctionName"&amp;gt;入口函数名称&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="parameters"&amp;gt;参数&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;param name="codeBody"&amp;gt;函数体&amp;lt;/param&amp;gt;&#xD;
&#xD;
         /// &amp;lt;returns&amp;gt;返回值object&amp;lt;/returns&amp;gt;&#xD;
&#xD;
         public object Run(ScriptLanguage language,string mainFunctionName,object[] parameters,string codeBody)&#xD;
&#xD;
         {&#xD;
&#xD;
              if(this.Language != language)&#xD;
&#xD;
                   this.Language = language;&#xD;
&#xD;
              return Run(mainFunctionName,parameters,codeBody);&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 放弃所有已经添加到 ScriptControl 中的 Script 代码和对象&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         public void Reset()&#xD;
&#xD;
         {&#xD;
&#xD;
              this.msc.Reset();&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 获取或设置脚本语言&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         public ScriptLanguage Language&#xD;
&#xD;
         {&#xD;
&#xD;
              get{return (ScriptLanguage)Enum.Parse(typeof(ScriptLanguage),this.msc.Language,false);}&#xD;
&#xD;
              set{this.msc.Language = value.ToString();}&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 获取或设置脚本执行时间，单位为毫秒&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         public int Timeout&#xD;
&#xD;
         {&#xD;
&#xD;
              get{return this.msc.Timeout;}&#xD;
&#xD;
              set{this.msc.Timeout = value;}&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 设置是否显示用户界面元素&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         public bool AllowUI&#xD;
&#xD;
         {&#xD;
&#xD;
              get{return this.msc.AllowUI;}&#xD;
&#xD;
              set{this.msc.AllowUI = value;}&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// 宿主应用程序是否有保密性要求&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         public bool UseSafeSubset&#xD;
&#xD;
         {&#xD;
&#xD;
              get{return this.msc.UseSafeSubset;}&#xD;
&#xD;
              set{this.msc.UseSafeSubset = true;}&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// RunError事件激发&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         private void OnError()&#xD;
&#xD;
         {&#xD;
&#xD;
              if(RunError!=null)&#xD;
&#xD;
                   RunError();&#xD;
&#xD;
         }&#xD;
&#xD;
         /// &amp;lt;summary&amp;gt;&#xD;
&#xD;
         /// OnTimeout事件激发&#xD;
&#xD;
         /// &amp;lt;/summary&amp;gt;&#xD;
&#xD;
         private void OnTimeout()&#xD;
&#xD;
         {&#xD;
&#xD;
              if(RunTimeout!=null)&#xD;
&#xD;
                   RunTimeout();&#xD;
&#xD;
         }&#xD;
&#xD;
         private void ScriptEngine_Error()&#xD;
&#xD;
         {&#xD;
&#xD;
              OnError();&#xD;
&#xD;
         }&#xD;
&#xD;
         private void ScriptEngine_Timeout()&#xD;
&#xD;
         {&#xD;
&#xD;
              OnTimeout();&#xD;
&#xD;
         }&#xD;
&#xD;
     }&#xD;
&#xD;
}&#xD;
&#xD;
上面的包装定义了一个ScriptLanguage枚举，这样操作起来更方便一点。另外脚本引擎包括了Error事件和Timeout事件，根据实际使用情况可进行注册。&#xD;
&#xD;
 &#xD;
&#xD;
二．脚本引擎演示&#xD;
&#xD;
     我建了个窗体程序，测试包括脚本语言的选择，是否开启AllowUI属性，超时时间的设置，以及脚本引擎调用方法的选择。测试程序代码比较长，下面列出了主要部分：&#xD;
&#xD;
using System;&#xD;
&#xD;
using System.Drawing;&#xD;
&#xD;
using System.Collections;&#xD;
&#xD;
using System.ComponentModel;&#xD;
&#xD;
using System.Windows.Forms;&#xD;
&#xD;
using System.Data;&#xD;
&#xD;
namespace ZZ&#xD;
&#xD;
{&#xD;
&#xD;
     public class Form1 : System.Windows.Forms.Form&#xD;
&#xD;
     {&#xD;
&#xD;
         private ScriptEngine scriptEngine;&#xD;
&#xD;
         private System.Windows.Forms.CheckBox checkBoxAllowUI;&#xD;
&#xD;
         private System.Windows.Forms.TextBox textBoxResult;&#xD;
&#xD;
         private System.Windows.Forms.NumericUpDown numericUpDownTimeout;&#xD;
&#xD;
         private System.Windows.Forms.TextBox textBoxCodeBody;&#xD;
&#xD;
         private System.Windows.Forms.Button buttonRun;&#xD;
&#xD;
         private System.Windows.Forms.Button buttonCancel;&#xD;
&#xD;
         private System.Windows.Forms.ComboBox comboBoxScript;&#xD;
&#xD;
         private System.Windows.Forms.TextBox textBoxParams;&#xD;
&#xD;
         private System.Windows.Forms.RadioButton radioButtonEval;&#xD;
&#xD;
         private System.Windows.Forms.RadioButton radioButtonRun;&#xD;
&#xD;
         private System.Windows.Forms.TextBox textBoxMethodName;&#xD;
&#xD;
         private System.ComponentModel.Container components = null;&#xD;
&#xD;
 &#xD;
&#xD;
         public Form1()&#xD;
&#xD;
         {&#xD;
&#xD;
              InitializeComponent();&#xD;
&#xD;
              this.comboBoxScript.SelectedIndex = 0;&#xD;
&#xD;
              this.scriptEngine = new ScriptEngine();&#xD;
&#xD;
              this.scriptEngine.UseSafeSubset = true;&#xD;
&#xD;
              this.scriptEngine.RunError += new RunErrorHandler(scriptEngine_RunError); &#xD;
&#xD;
              this.scriptEngine.RunTimeout += new RunTimeoutHandler(scriptEngine_RunTimeout);&#xD;
&#xD;
         }&#xD;
&#xD;
         protected override void Dispose( bool disposing )&#xD;
&#xD;
         {&#xD;
&#xD;
              if( disposing )&#xD;
&#xD;
                   if (components != null) &#xD;
&#xD;
                       components.Dispose();&#xD;
&#xD;
              base.Dispose( disposing );&#xD;
&#xD;
         }&#xD;
&#xD;
         #region Windows 窗体设计器生成的代码&#xD;
&#xD;
         private void InitializeComponent()&#xD;
&#xD;
         {&#xD;
&#xD;
              //省略&#xD;
&#xD;
         }&#xD;
&#xD;
         #endregion&#xD;
&#xD;
          [STAThread]&#xD;
&#xD;
         static void Main() &#xD;
&#xD;
         {&#xD;
&#xD;
              Application.Run(new Form1());&#xD;
&#xD;
         }&#xD;
&#xD;
         //运行脚本&#xD;
&#xD;
         private void buttonRun_Click(object sender, System.EventArgs e)&#xD;
&#xD;
         {&#xD;
&#xD;
              this.scriptEngine.Reset();&#xD;
&#xD;
              this.scriptEngine.Language = (ScriptLanguage)Enum.Parse(typeof(ScriptLanguage),this.comboBoxScript.SelectedItem.ToString());&#xD;
&#xD;
              this.scriptEngine.Timeout = (int)this.numericUpDownTimeout.Value;&#xD;
&#xD;
              this.scriptEngine.AllowUI = this.checkBoxAllowUI.Checked;&#xD;
&#xD;
              if(this.radioButtonEval.Checked)//执行Eval方法&#xD;
&#xD;
              {&#xD;
&#xD;
                   this.textBoxResult.Text = this.scriptEngine.Eval(this.textBoxMethodName.Text+"("+this.textBoxParams.Text+")",this.textBoxCodeBody.Text).ToString();&#xD;
&#xD;
              }&#xD;
&#xD;
              else//执行Run方法&#xD;
&#xD;
              {&#xD;
&#xD;
                   string[] parameters = (string[])this.textBoxParams.Text.Split(',');&#xD;
&#xD;
                   object [] paramArray = new object[parameters.Length];&#xD;
&#xD;
                   for(int i = 0;i&amp;lt;parameters.Length;i++)&#xD;
&#xD;
                       paramArray[i] = Int32.Parse(parameters[i]);&#xD;
&#xD;
                   this.textBoxResult.Text = this.scriptEngine.Run(this.textBoxMethodName.Text,paramArray,this.textBoxCodeBody.Text).ToString();&#xD;
&#xD;
              }&#xD;
&#xD;
         }&#xD;
&#xD;
         //退出程序&#xD;
&#xD;
         private void buttonCancel_Click(object sender, System.EventArgs e)&#xD;
&#xD;
         {&#xD;
&#xD;
              this.Close();&#xD;
&#xD;
         }&#xD;
&#xD;
         //错误函数&#xD;
&#xD;
         private void scriptEngine_RunError()&#xD;
&#xD;
         {&#xD;
&#xD;
              MessageBox.Show("RunError执行脚本错误!");&#xD;
&#xD;
         }&#xD;
&#xD;
         private void scriptEngine_RunTimeout()&#xD;
&#xD;
         {&#xD;
&#xD;
              MessageBox.Show("RunTimeout执行脚本超时，引发错误!");&#xD;
&#xD;
         }&#xD;
&#xD;
     }&#xD;
&#xD;
}&#xD;
&#xD;
&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;br /&gt;下面是测试程序运行界面：&lt;/p&gt;&#xD;
&#xD;
&lt;p align="center"&gt;&lt;a target="_blank" href="http://www.weste.net/UploadFiles/200442994642514.gif"&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;在文本框中写了一个JavaScript的函数。输入12，输出12000012。&lt;/p&gt;&#xD;
&lt;p&gt;如果把超时时间调整为1毫秒，那么执行该脚本就会跳出下面的超时提醒框，同时激发事件。&lt;/p&gt;&#xD;
&#xD;
&lt;p align="center"&gt;&lt;a target="_blank" href="http://www.weste.net/UploadFiles/200442994620458.gif"&gt;&lt;/a&gt;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;总结，上面演示了JavaScript脚本，如果有兴趣读者可以写一些VBsript函数进行测试，脚本语言也只列出了三种，看了帮助，他还支持其他一些脚本，如果需要可以添加。另外，因为是调用Com，有些返回值是obejct类型的，需要进行转换。在CSDN的技术论坛C#板块下时常有朋友问这方面的问题，对于碰到这类问题的朋友，希望通过这篇文章能获得一些你需要的帮助，很高兴能和搞.net的朋友进行交流，我的邮件地址&lt;a href="mailto:zhzuocn@163.com"&gt;zhzuocn@163.com&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/td&gt;&#xD;
&lt;/tr&gt;&#xD;
&lt;/tbody&gt;&#xD;
&lt;/table&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2095089.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/06/30/2095089.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091175.html</id><title type="text">小温谈数据库优化--数据库设计篇</title><summary type="text">三大范式:第1规范：没有重复的组或多值的列，这是数据库设计的最低要求。 第2规范: 每个非关键字段必须依赖于主关键字，不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖，大部分情况下，数据库设计都应该达到第二范式。第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖，达到第三范式应该是系统中大部分表的要求，除非一些特殊作用的表。更高的范式要求这里就不再作介绍了，个人认为，如果全部达到第二范式，大部分达到第三范式，系统会产生较少的列和较多的表，因而减少了数据冗余，也利于性能的提高。完全按照三大范式规范化设计的系统几乎是不可能的，除非系统特别的小，在规范化设计后，有计划地加入冗</summary><published>2011-06-27T03:00:00Z</published><updated>2011-06-27T03:00:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091175.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091175.html"/><content type="html">&lt;p&gt;&lt;b&gt;三大范式&lt;/b&gt;&lt;b&gt;:&lt;/b&gt;&lt;/p&gt;&#xD;
&lt;p&gt;第1规范：没有重复的组或多值的列，这是数据库设计的最低要求。 &lt;/p&gt;&#xD;
&lt;p&gt;第2规范: 每个非关键字段必须依赖于主关键字，不能依赖于一个组合式主关键字的某些组成部分。消除部分依赖，大部分情况下，数据库设计都应该达到第二范式。&lt;/p&gt;&#xD;
&lt;p&gt;第3规范: 一个非关键字段不能依赖于另一个非关键字段。消除传递依赖，达到第三范式应该是系统中大部分表的要求，除非一些特殊作用的表。&lt;/p&gt;&#xD;
&lt;p&gt;更高的范式要求这里就不再作介绍了，个人认为，如果全部达到第二范式，大部分达到第三范式，系统会产生较少的列和较多的表，因而减少了数据冗余，也利于性能的提高。&lt;/p&gt;&#xD;
&lt;p&gt;完全按照三大范式规范化设计的系统几乎是不可能的，除非系统特别的小，在规范化设计后，有计划地加入冗余是必要的。冗余可以是冗余数据库、冗余表或者冗余字段，不同粒度的冗余可以起到不同的作用。冗余可以是为了编程方便而增加，也可以是为了性能的提高而增加。从性能角度来说，冗余数据库可以分散数据库压力，冗余表可以分散数据量大的表的并发压力，也可以加快特殊查询的速度，冗余字段可以有效减少数据库表的连接，提高效率。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;b&gt;主键的设计&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&#xD;
&lt;p&gt;主键是必要的，SQL SERVER的主键同时是一个唯一索引，而且在实际应用中，我们往往选择最小的键组合作为主键，所以主键往往适合作为表的聚集索引。聚集索引对查询的影响是比较大的，这个在下面索引的叙述。&lt;/p&gt;&#xD;
&lt;p&gt;在有多个键的表，主键的选择也比较重要，一般选择总的长度小的键，小的键的比较速度快，同时小的键可以使主键的B树结构的层次更少。&lt;/p&gt;&#xD;
&lt;p&gt;主键的选择还要注意组合主键的字段次序，对于组合主键来说，不同的字段次序的主键的性能差别可能会很大，一般应该选择重复率低、单独或者组合查询可能性大的字段放在前面。&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;外键的设计&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&#xD;
&lt;p&gt;外键作为数据库对象，很多人认为麻烦而不用，实际上，外键在大部分情况下是很有用的，理由是：&lt;/p&gt;&#xD;
&lt;p&gt;外键是最高效的一致性维护方法，数据库的一致性要求，依次可以用外键、CHECK约束、规则约束、触发器、客户端程序，一般认为，离数据越近的方法效率越高。&lt;/p&gt;&#xD;
&lt;p&gt;谨慎使用级联删除和级联更新，级联删除和级联更新作为SQL SERVER 2000当年的新功能，在2005作了保留，应该有其可用之处。我这里说的谨慎，是因为级联删除和级联更新有些突破了传统的关于外键的定义，功能有点太过强大，使用前必须确定自己已经把握好其功能范围，否则，级联删除和级联更新可能让你的数据莫名其妙的被修改或者丢失。从性能看级联删除和级联更新是比其他方法更高效的方法。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;b&gt;字段数据类型设计原则&lt;/b&gt;&lt;b&gt;:&lt;/b&gt;&lt;/p&gt;&#xD;
&lt;p&gt;A、数据类型尽量用数字型，数字型的比较比字符型的快很多,尤其是作为主键。&lt;/p&gt;&#xD;
&lt;p&gt;B、 数据类型尽量小，这里的尽量小是指在满足可以预见的未来需求的前提下的,节省一个字节是一个字节,虽然硬盘便宜也不能浪费啊。&lt;/p&gt;&#xD;
&lt;p&gt;C、 尽量不要允许NULL，除非必要，可以用NOT NULL+DEFAULT代替。&lt;/p&gt;&#xD;
&lt;p&gt;为什么最好不要为null呢,因为在程序处理过程中,你经常要为null值进行处理,比如使用isnull进行判断,这样削弱查询的速度,还有程序中需要不断的为null值进行判断,多写了代码,减少了程序的性能.&lt;/p&gt;&#xD;
&lt;p&gt;D、少用TEXT和IMAGE，二进制字段的读写是比较慢的，而且，读取的方法也不多，大部分情况下最好不用。在sqlserver 2005尽可能使用nvarchar(max),或者varchar(max);除非必要图片尽量上传到服务器,数据库保留上传地址.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;E、 自增字段要慎用&lt;/p&gt;&#xD;
&lt;p&gt;1.不利于数据迁移.&lt;/p&gt;&#xD;
&lt;p&gt;2.不利于分布式部署.&lt;/p&gt;&#xD;
&lt;p&gt;3.无法预知Id,为子表数据插入造成困难.&lt;/p&gt;&#xD;
&lt;p&gt;4.没有实际意义,无法让人看出这个数字到底有什么用.&lt;/p&gt;&#xD;
&lt;p&gt;F、尽可能使用定长数据类型,而不是变长数据类型&lt;/p&gt;&#xD;
&lt;p&gt;为什么不要设计过多的变长类型的数据呢?&lt;/p&gt;&#xD;
&lt;p&gt;1.对于 SQl Server 为说，变长类型的数据，在更新的时候，如果长度比以前的大，会进行页拆分。会对查询性能造成严重的影响。会增加查询时，O/I 的花费 (Cost) 页分隔越多，查询时，O/I 的开销就越大。对于变长的字段来说，有可能，这个字符的内容，存储在不同的位置。这个字段的内容，存储在不同的位置。存储在不同的页中, 它们之间有指针来关联。这种情况会造成查询时，磁头来回寻址，定位。可能你查一条记录，磁头找这条记录的这个变长字段的内容，都要去好几个页里找，才能完整的找到。这样，就造成了很大个 O/I 开销，降低了查询性能。从物理上来说，文件本来就经常容易产生碎片。再加上变长类型的页拆分。&lt;/p&gt;&#xD;
&lt;p&gt;页是sql server存储数据的基本单位，大小为8kb，可以存储表数据、索引数据、执行计划数据、分配位图、可用空间信息。页是sql server可以读写的最小I/O单位。即便是读取一行数据，它也要把整个页加载到缓存并从缓存中读取数据。&lt;/p&gt;&#xD;
&lt;p&gt;页拆分是这样产生的:&lt;/p&gt;&#xD;
&lt;p&gt;比如：有一个变长类型的字段 Content: nvarchar(512).你添加一条记录，给 Content 的值是 N'ABC',那么，存储的时候，直接就存储 N'ABC' 了。当你下次 Update 这条记录的 Content 字段时，给的值是 N'ABCDEF'那么 就会发生页拆分。DEF 对被存储在其它页。因为有可能上一次分配的数据页已经存储了其他行的数据对吧,对，512&amp;nbsp; ，只是用来限制这个字段的长度。并不与页拆分有关系。记录的物理顺序，与你 INSERT 的顺序是一致。你 INSERT 了 N条，然后再去修改 第一条,这时候可能不在同一个页了.&lt;/p&gt;&#xD;
&lt;p&gt;以上结论就是把变长字段的内容加大，就会造成页拆分了。也就 是说可变长类型是把一页填满，再填另一,影响比较大的是,每次insert的时候会增加分配数据页得次数&lt;/p&gt;&#xD;
&lt;p&gt;当然有可能造成一行数据保存在2个数据页里.但是，同样，不但页拆分对增加查询时的 O/I 开销，字符不必要的太长，也会增加 O/I 开销。&lt;/p&gt;&#xD;
&lt;p&gt;2. 字段大小对表总大小有影响&lt;/p&gt;&#xD;
&lt;p&gt;SQL Server 2005单行字段总长是8060字节&lt;/p&gt;&#xD;
&lt;p&gt;3. 可变长类型是有长度限制的&lt;/p&gt;&#xD;
&lt;p&gt;以上内容是第一篇,请大家多多发表意见!&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2091175.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091175.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091163.html</id><title type="text">如何让自增长列重新计数</title><summary type="text">2种方法方法１：truncate table 你的表名 --这样不但将数据删除，而且可以重新置位identity属性的字段。方法２：delete from 你的表名dbcc checkident(你的表名,reseed,0) --重新定位identity属性字段，让其值从1开始。</summary><published>2011-06-27T02:56:00Z</published><updated>2011-06-27T02:56:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091163.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091163.html"/><content type="html">&lt;p&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="text-align: left; line-height: 23px; font-family: simsun; font-size: 14px;"&gt;2种方法&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="text-align: left; line-height: 23px; font-family: simsun; font-size: 14px;"&gt;方法１：&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;truncate &amp;nbsp; table &amp;nbsp; 你的表名 &amp;nbsp; --这样不但将数据删除，而且可以重新置位identity属性的字段。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;方法２：&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;delete &amp;nbsp; from &amp;nbsp; 你的表名&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;dbcc &amp;nbsp; checkident(你的表名,reseed,0) &amp;nbsp; --重新定位identity属性字段，让其值从1开始。&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2091163.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/06/27/2091163.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/06/12/2079081.html</id><title type="text">企业的核心价值观和人力资源管理</title><summary type="text">阿里巴巴有六个核心价值观，它们分别是：1、 客户第一 即关注客户的关注点，为客户提供建议和资讯，帮助客户成长。2、 团队合作 即共享共担，以小我完成大我。3、 拥抱变化 突破自我，迎接变化。4、 诚信 诚信正直，信守承诺。5、 激情 永不言弃，乐观向上。6、 敬业以专业的态度和平常的心态做非凡的事情。 “让天下没有难做的生意”是阿里巴巴集团的使命，是阿里巴巴企业文化最核心的内容，是阿里巴巴推出任何服务和产品的唯一标准。“我认为，员工第一，客户第二。没有他们，就没有这个网站。也只有他们开心了，我们的客户才会开心。而客户们那些鼓励的言语，鼓励的话，又会让他们像 发疯一样去工作，这也使得我们的网站不</summary><published>2011-06-12T12:02:00Z</published><updated>2011-06-12T12:02:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/06/12/2079081.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/06/12/2079081.html"/><content type="html">&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;阿里巴巴有六个核心价值观，它们分别是：&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;1、 客户第一&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;即关注客户的关注点，为客户提供建议和资讯，帮助客户成长。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;2、 团队合作&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;即共享共担，以小我完成大我。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;3、 拥抱变化&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;突破自我，迎接变化。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;4、 诚信&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;诚信正直，信守承诺。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;5、 激情&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;永不言弃，乐观向上。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;6、 敬业&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;以专业的态度和平常的心态做非凡的事情。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;&amp;ldquo;让天下没有难做的生意&amp;rdquo;是阿里巴巴集团的使命，是阿里巴巴企业文化最核心的内容，是阿里巴巴推出任何服务和产品的唯一标准。&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&amp;ldquo;我认为，员工第一，客户第二。没有他们，就没有这个网站。也只有他们开心了，我们的客户才会开心。而客户们那些鼓励的言语，鼓励的话，又会让他们像 发疯一样去工作，这也使得我们的网站不断地发展。&lt;span lang="EN-US"&gt;&amp;rdquo;&amp;mdash;&amp;mdash;&lt;/span&gt;马云语录&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;上面摘抄的都是阿里巴巴的价值观和使命,实际上我们&lt;a target="_blank" href="http://www.yubooa.com/"&gt;宇博软件&lt;/a&gt;的价值观和阿里巴巴一样,但是使命不太一样,宇博人的使命是让天下的中小企业的管理者可以有更多的时间休息,不再因为工作忙,没时间,而不能跟家人享受天伦之乐,还有许多很快乐的事情."让管理者早点休息,让it管理员早点下班"是&lt;a target="_blank" href="http://www.yubooa.com/"&gt;宇博软件&lt;/a&gt;的使命.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;周末去听了人力资源管理的讲座,有了些感想,专家说啊,在现在的社会,单单的绩效考核已经没有用了,为什么呢?因为绩效考核是做什么的,主要还不是为了扣我钱,这种东西没有最好,员工不配合,只有人力资源部门在瞎搞,没有实际的意义.为什么绩效考核会失败呢,因为都是扣分啊,在国内,有那个领导为了这种没有办法给自己带来什么好处的东东,得罪自己的下属呢,没有哪个领导这么傻吧.后来呢,人力资源专家们又搞了个绩效管理,绩效管理的核心是什么,其实就是管事了,也就是说不单单布置了任务,还有经常询问进展.这叫又管又理,这样当然不错了,效率有一定的提升了,而且也不单单领导一个人干,大家都干.但是这种办法也有缺陷,因为企业一天天在壮大,但是人员的素质并没有随着企业的壮大而增长,这就会出现断层,人员的素质跟不上企业的发展,但是人员的忠诚度还行,总不能把这些都开了吧,那多伤人心啊,那怎么办呢,在&lt;a target="_blank" href="http://www.yubooa.com/"&gt;宇博软件&lt;/a&gt;,我们每天都进行相关的培训,当然这个需要在企业可以让员工可以吃饱饭的基础上.俺们叶总常说,企业应该以人为本,提高的人的能力,大家有了统一的使命感和价值观,做事的效率自然就高了,什么绩效管理都是浮云,这个方法呢叫"能效管理",人力资源管理专家新搞出来的玩意,我们已经在实行,据说这玩意国外早有了,俺也不是很清楚,但是俺觉得呢这个方法不错,哪天哥当了老板也这么干.先搞绩效管理,挣点生活费,就搞能效管理.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0px; padding: 0px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&lt;span  style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span  style="line-height: 28px; text-indent: 20px; font-family: 宋体; font-size: 14px;"&gt;&amp;nbsp;最近在学道德经,想了想,这个社会现在是乱了套了,价值观严重扭曲,为了钱啥都做啊,什么毒馒头,毒豆芽,我的天啊,都不知道能吃什么了?可怕吧,所以在搞企业的时候一定要确立好的核心价值观,那就是犯法的时候不做,伤害客户的事情不做.这个跟人力资源又有啥关系呢,呵呵,当然有关系,如果没有统一思想,那是很难做好人力资源管理的.天下谁做这个最好呢?除了我们伟大的毛主席,还能有谁.哈哈,该好好研究一下毛主席思想.先扯到这吧,总之就是做人不能干缺德事,做事要求百世功,千秋力,万代名.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/span&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2079081.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/06/12/2079081.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/wenjl520/archive/2011/06/09/2076969.html</id><title type="text">框架到底应该用什么时候用?</title><summary type="text">最近公司在推广新的技术,但是我一直在想,是否有必要学,什么时候学.其实也不算新技术了,JQuery和extjs等框架,为什么我会这这么想呢,大家用辩证思维想一下,这些框架有什么好处呢,像我同事说的,jquery可以让你少写非常多的代码,有n多的插件可以给你用,extjs呢,有华丽的外表,统一的样式,高度集中化啊.坏处呢,第一如果你一开始学javascript就用这些框架会有什么后果呢,变成你只认识jquery等框架了,完全不知道javascript的本身了,那你怎么能知道他有多大用处呢,或者说你如何去深究这个框架如果实现,有人就说了,何必来钻这个牛角尖呢,在信息爆炸时代,啥玩意不就是拿来主义.</summary><published>2011-06-09T15:21:00Z</published><updated>2011-06-09T15:21:00Z</updated><author><name>温景良(Jason)</name><uri>http://www.cnblogs.com/wenjl520/</uri></author><link rel="alternate" href="http://www.cnblogs.com/wenjl520/archive/2011/06/09/2076969.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/wenjl520/archive/2011/06/09/2076969.html"/><content type="html">&lt;p&gt;最近公司在推广新的技术,但是我一直在想,是否有必要学,什么时候学.其实也不算新技术了,JQuery和extjs等框架,为什么我会这这么想呢,大家用辩证思维想一下,这些框架有什么好处呢,像我同事说的,jquery可以让你少写非常多的代码,有n多的插件可以给你用,extjs呢,有华丽的外表,统一的样式,高度集中化啊.坏处呢,第一如果你一开始学javascript就用这些框架会有什么后果呢,变成你只认识jquery等框架了,完全不知道javascript的本身了,那你怎么能知道他有多大用处呢,或者说你如何去深究这个框架如果实现,有人就说了,何必来钻这个牛角尖呢,在信息爆炸时代,啥玩意不就是拿来主义,拿来主义没错,但是前提你得懂了再用,不是看过就知道的.得融汇贯通了才行.不知道是sql语言没落了,还是大家都不推崇写sql了,现在很多公司的程序员都不会写了,尤其是在J2EE平台上开发的程序员.也许有人就说了,不会写sql又怎么样了,我照样做增删改查.呵呵,其实我很好奇,你不知道怎么写sql语句,居然能相信自动生成的sql.为什么他们不会写呢,其实也不能怪他们,因为传统的J2ee平台都是采用SSH框架,H是干什么的呢,就是hibernate,这玩意是拿来做对象查询修改删除,也就是做增删改查的.这个东西对付数据量小的东西还是可以的,对付大数据量,大家可以想象一下,会怎么样?谁用谁知道,所以我一直在思考,使用这些框架之前是否应该把基本功打好呢.记得当年我的oracle老师说过,如果你的基础都没有打好,你会用啥啥都是浮云.我个人其实现在也喜欢用一些工具,但是我是怎么用工具的,比如我用sql自动提示工具,这是我写了3年的sql后才用的,因为我觉得我够格用了,jq最近才用的,因为最近用纯js做了IM,我认为我对js已经有了相当深度的了解了,所以我开始使用了jq,并且我使用的插件我都会去看源代码,不要说一定会写,但是一定要知道是怎么回事,把命运交在别人手上,一定要知道死是怎么死的.&lt;/p&gt;&#xD;
&lt;p&gt;上面都是废话,大家觉得应该怎么学呢?&lt;/p&gt;&lt;img src="http://www.cnblogs.com/wenjl520/aggbug/2076969.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/wenjl520/archive/2011/06/09/2076969.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
