posts - 195, comments - 34, trackbacks - 0, articles - 1

     摘要: 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是。对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了。
我认为好的程序员应该有以下几方面的素质:
 1、有专研精神,勤学善问、举一反三。
 2、积极向上的态度,有创造性思维。
 3、与人积极交流沟通的能力,有团队精神。
 4、谦虚谨慎,戒骄戒燥。
5、写出的代码质量高。包括:代码的稳定、易读、规范、易维护、专业。
这些都是程序员的修养,这里我想谈谈“编程修养”,也就是上述中的第5点  阅读全文

posted @ 2007-10-05 00:50 小强摩羯座 阅读(250) | 评论 (1)编辑 收藏

     摘要: 计算机科学与技术学习反思录

很老的帖子了,也不知道是谁写的

计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年
了,自己也做了一些思考,我一直认为计算机科学与技术这门专业,在本科阶段是不可能
切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技
术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括程序设
计),但计算机专业的优势就在于,我们掌握许多其他专业并不“深究”的东西,例
如,算法,体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程
序,但他们做不出计算机专业能够做出来的大型系统。(与司徒彦南兄的谈话)今天我
想专门谈一谈计算机科学,并将重点放在计算理论上。

  阅读全文

posted @ 2007-10-04 23:53 小强摩羯座 阅读(295) | 评论 (0)编辑 收藏

我们这一代招谁惹谁了!!!(80后的都进来看哈)

我们招谁惹谁了???
       当我们读小学的时候,读大学不要钱;
  当我们读大学的时候,读小学不要钱;
  
       我们还没能工作的时候,工作也是分配的;
  我们可以工作的时候,撞得头破血流才勉强找份饿不死人的工作做;
  
       当我们不能挣钱的时候,房子是分配的;
  当我们能挣钱的时候,却发现房子已经买不起了;
  
       当我们没有进入股市的时候,傻瓜都在赚钱;
  当我们兴冲冲地闯进去的时候,才发现自己成了傻瓜;
  
       当我们不到结婚的年龄的时候骑单车就能娶媳妇;
  当我们到了结婚年龄的时候没有洋房汽车娶不了媳妇;
  
       当我们没找对象的时候,姑娘们是讲心的;
  当我们找对象的时候,姑娘们是讲金的;
  
       当我们没找工作的时候,小学生也能当领导的;
       当我们找工作的时候,大学生也只能洗厕所的;
  
       当我们没生娃的时候,别人是可以生一串的;
  当我们要生娃的时候,谁都不许生多个的。
  
       我们这一代到底招谁惹谁了 ?!

posted @ 2007-10-04 22:58 小强摩羯座 阅读(282) | 评论 (2)编辑 收藏

     摘要: (几年以前就在BBS上看到别人转的这篇文章,今天读来感触更深,值得保留于此,再三体会)

计算机科学与技术学习心得

撰文 曾毅
  阅读全文

posted @ 2007-10-04 21:52 小强摩羯座 阅读(1683) | 评论 (0)编辑 收藏

我看完了这部电视剧,心中想了很多,于是又回过头来再想理一下思绪,它为什么会让我回味无穷,我到底为其中的什么而思考??
编剧说它是为女人写的,为了塑造一个像夏琳那样的形象。告诉现实中那些只满足于有一个爱她的男人,就可以整天小鸟依人,或做满足于做全全家庭主妇的那种。他希望女人明白,其实或许有自己独立人格,独立追求的女人才更能吸引男人。
此外,该剧也在不断的重复着一个问题:男人的理想是什么?剧中结束时,男人们都为了自己的女人的理想去奋斗了。或许其实人本来就很简单,两个人就像一个人其中只有一个有理想,或者说必需为一某件事去追逐时,而另一个人也要与它一为此而奋斗。或许这才是奋斗!?


以下是一些别人的相关评论:
2007-06-04 15:02:35   来自: LazyLorna (长春)

奋斗的评论   


  其实爱情里面,没法谈什么公平不公平,就像向南深爱的还是杨晓芸,而杨晓芸也不是绝对的大小姐脾气,她并没有一直浪费、小心眼、小市民,只是作为一个典型的小女人,不能忍受没有时不常的新鲜、变化的生活罢了。杨晓芸喜欢浪漫,多少还是爱幻想,爱享受生活的那一种,她的可爱也恰恰在于她的率性。一个人总能被另一个人莫名的吸引,很难说清楚为什么。向南喜欢杨晓芸,为她着迷,为她痴狂,只因为他爱她。至于为什么、哪一点,真说不清楚,只能说他喜欢这一类型的,他需要这样一个女人才能幸福地共度终生,而且他也最适合杨晓芸这一类型的。
  
  先说杨晓芸:
  
  年轻人总会自私一点的,杨晓芸作为小女人体现得就会更多一点,不过她还不至于真的彻底过分,总的来说她还是单纯,比方说要和向南和好但直接导致离婚的那一场戏,作为一个成熟的人,是打死也不会讲出来的,至少不是这个讲法。杨晓芸还是很有代表性,她确实很可爱,很简单,所以才会吸引向南死心塌地。向南也不是一个比较成熟的人,他和杨晓芸在简单这一点上极其相似,瑶瑶被向南吸引也不只是向南的深情,简单也很重要。杨晓芸很真实的一个人,有点小自私,但还不太惹人厌。要说自私,陆涛从某个角度讲也有点自私,活在理想里、坚持梦想的一个必然代价,就是产生的后果要别人买单。不过反过来说,任何事情都有代价,成熟了,不要别人买单了,也许激情和梦想就都没了。瑶瑶其实并不可怜,只是和向南这段姻缘很可惜,其实她的情况在现代高知女性里具有普遍性,她大度,只是也不太会相处,只是一味付出。或者说呢,一味付出,不给别人对你好的机会,也在某种程度上算作一种自私吧,只是这一点当事人一般来说都没有留意到。
  
  瑶瑶:
  
  所以瑶瑶的性格以及她的故事在现代年轻人里面也是一种很典型的情况,尤其是高知女性。她没能最终和向南在一起,只是因为向南的心不在她身上,这是一种可惜。如果没有杨晓芸,也许他俩是比较幸福的一对,如果相处得好的话。瑶瑶对向南的好,就像向南对杨晓芸,这一点瑶瑶和向南非常像,都是付出型的,夏琳也是。就像越相像的人越不容易携手走下去,就是太多交集就不容易互补。向南爱杨晓芸也不是期望从杨晓芸那里得到像他那样那么多的感情,而是杨晓芸开心幸福,两人的生活就开心幸福,这是付出型的和接受型的互补。瑶瑶只是没有找到一种合适的方式来和向南相处,她的胸襟太博大,甚至超过了男人。而男女相处,男人有时候也是可以容忍或需要女人一点不太过分的无理取闹的,生活不能像一潭死水,有点波澜才丰富。杨晓芸就是这样一个让向南感到丰富的女人,所以她是所有男女中相对来说生活的最顺利、最幸福的一个人,也就是这种没有什么大才能的小女人,才会生活的最幸福,也最容易得到幸福。
  
  感情与经营
  
  很多女人,大家都称赞是好女人,可是在感情的路上总是面对有缘无份的尴尬,每个人都知道感情靠经营、婚姻靠经营,只是很多时候知道得太多,为别人考量得越多,越让别人对你无从是好。相处,都要付出,付出也是一种需要,不能只让你一个人付出,也要腾出机会让别人对你好。
  
  一个重感情的人,就像陆涛对夏琳,米莱对陆涛,向南对杨晓芸,瑶瑶对向南......在他们自己看来,男女朋友就是未来的终生伴侣。可是很多时候不是只要人好、只要知道你对我好、我对你好、心知肚明会永远好下去就能继续下去的。很多时候,不会交往,还是不能走到头;以为会交往,又经常会爱过头。前者如向南和杨晓芸,后者如陆涛和夏琳。
  
  其实每个人生活在这世上,都是商人,什么都讲回报。只是这个商人,不是平常的那种概念。就像《奋斗》里你可以看到作为一个商人,一个成熟的商人,不是赚钱那么简单的,成熟的商人,只做他感兴趣的、觉得有意义的生意,甚至会时常放弃巨大的利益,这一点是我从《旁观者》一书了解到的。
  
  
  经营感情的“生意经”
  
  话说回来,拿感情来讲,是一种经营,所以徐志森说得没错,这在某种程度上也可以看成是一种生意。感情也要有付出有回报,但这种回报对于多数付出者来讲,他们需要的只是回应那么简单。然后需要位置调换,换一方付出,换一方回应。这样,感情才平衡,人才平衡,交往才能继续下去。这在根本讲究的还是一个回报率的问题,在这里叫做回应率好像更合适、更容易接受一些。感情的事,比生意复杂多了,它更像是太极,而太极最讲究的就是平衡。
  
  对于任何一种生意来讲,追求高利润是最危险也最不明智的,只有长久的才是稳定的,才能健步成长。在房地产界最流行“低于40%利润不做”的说法的时候,王石就曾说过“高于25%的利润不做”。想持续发展,必须确定一个合理的回报率水平,无论对于严格意义上的生意,还是感情,这才能平衡。
  
  《奋斗》里的大部分青年男女都是不平衡的,米莱最不平衡,她付出了所有,可是陆涛无所回应。夏琳也付出了所有,陆涛回应了,但不是夏琳需要的回应,华子和璐璐,向南和杨晓芸,比比皆是。男女之间,需要有一种平衡,理解,能达成共识,不是那么简单,并不容易。不过这一点单纯的杨晓芸和长情的向南、璐璐和猪头最终算是交了昂贵的学费勉强达到了平衡。
  
  
  “像你这么好的姑娘,上哪儿找去啊!”
  
  我问一个朋友:米莱,杨晓芸,灵珊,露露、夏琳,你喜欢谁?
  答曰:灵珊。
  问:她很招人喜欢?
  答曰:没啊,就是比较容易迷人的那种。
  又问:要是这些人选一个做女朋友,你选谁?
  答曰:米莱,象米莱这么好的姑娘 哪找去啊?
  又问:要是选一个做老婆呢?
  答曰:女朋友跟老婆一定要区分开啊?在我这儿没啥区别。
  
  嗯,有这些感触,因为也有人对我讲过“你是一个好女人,很难得”、“像你这么好的,到哪找去啊”、“现在的好女人越来越少了,遇到一个少一个,所以要珍惜”,原话、类似的话,而且不只是一个人的评价。当时得到这样的肯定很欣慰,现在却开心不起来。
  
  每个人都有自己独特的个性,所以你的人生要走什么样的路通常情况是顺理成章的,一路正常的让你怀疑这是否是神或者上帝的安排。我“长成”这样,注定不可能成为杨晓芸那样的小女人,我自己的性格可能和剧中人物有一些相似的地方,能理解夏琳的迷茫,米莱的痛苦,以及瑶瑶自我保护的辛苦。生活中遇到的问题有些还是能够了解她的想法和体会的,但经验是借鉴的,尽量避免片中一样最后无所适从,尽管生活中必不可免会走很多弯路、遭遇很多坎坷。
  
  再说夏琳:
  
  高学历的女同胞们多少都会从她那里找到些共同点,和瑶瑶一样,很独立,不需要别人宠着、爱着、粘着,她美丽、有才情、有志气、有想法、有能力,每个见过夏琳的男人都会被她独特的个性所吸引吧。用米莱的话说:“我真嫉妒你,你又穷,又漂亮,又有才气,真是嫉妒死了。”
  
  夏琳和很多女人都有相似的地方,和瑶瑶相似的是胸襟很大,和杨晓芸相似的是夏琳也很可爱、和夏琳在一起特有劲儿(陆涛的原话),和璐璐相似的是有志气并为之不断地努力,和灵珊相似的是夏琳也有一种神秘感,那是一种莫名的吸引,令人不得不侧目动容......从这些性格来讲,夏琳拥有了所有作为一个好女人的优势,徐志森也说他“也喜欢这个女孩子、很难有男人不喜欢夏琳”。所以,米莱的形容还真是恰当、彻底、痛快!
  
  很多人可能以为夏琳太自我,可是恰恰相反,她和陆涛几分几合,原因都在于她失去了平衡、失去了自我。
  
  夏琳和陆涛的搭配纯属校园里最令人艳羡的才子佳人型,而这种模式通常情况下都难以长久。究其原因,就是双方的个性都太强了,正面交锋的没办法不遇到刺。对于夏琳来说,和陆涛在一起时时刻刻感到巨大的压力,来自于陆涛事业上的成功、两人逐渐产生的人生观的分歧、以及后来陆涛身边的女人。夏琳多次尝试与陆涛沟通,拿买车那个例子,夏琳多次和陆涛说:“如果不能和你一起买车,买车这件事对我来说就不能让我高兴”、“如果我是一个爱慕虚荣贪图享受的人,在几年前你还穿假名牌的时候我就能得到(车、房、名牌、金钱等)了”。第19集在夏琳家她说的那段“心甘情愿”的台词(我在关于《奋斗》经典台词汇总中专门有详述)。很赞同,来回看了好几遍。
  
  “我所做的一切,都是我心甘情愿的,我从来没有强迫自己去做过什么,因为我爱你,这是我的意愿,也是我的快乐。”我最喜欢这一段夏琳关于“心甘情愿”的台词,尽管夏琳并没有真正表述清楚她想说的是什么。但显而易见的是她迷失了自己,迷失了方向。夏琳不知道在怎样对陆涛好,而陆涛也不明白应该和夏琳怎样生活。他们俩都迷糊了,所以看上去被对方控制了。徐志森曾多次提醒陆涛不能被夏琳控制,这种描述其实不恰当,实际上夏琳也被陆涛控制了,更好一点的说法是他俩都失控了。好在他们及时踩了刹车,所以又能找到了平衡。但其实陆涛并不是能真正理解夏琳的苦心并找到一些合适的改变,他只是终于能感受得到夏琳想说的、想表达的究竟是什么了。
  
  瑶瑶的问题
  
  瑶瑶也是,她应该勇敢一点,更放得开一点,其实她知道自己应该能够把握得住这段幸福。很多时候大度的女人还是很内敛很自控的,那是一种自我保护:把自己约束的很严格,在任何情况下都那么冷静、不表露出自己真正是心痛欲碎还是几近疯狂,冷静的近乎残酷,至少对他们自己来说。就像杨晓芸在“心碎乌托邦”闹得那场戏,瑶瑶的识大体,让心碎乌托邦的所有男人都夸赞。这不太好,过分识大体的女人有些不是人间烟火,让人只想像神仙姐姐一样供起来,不适合自己相伴一生,因为不真实,太博大了,太完美了,就算你无理取闹他们也不会发脾气,时间长了你会觉得真的受不了,我们需要的是交互,是融合,不是单方面的包容。
  
  其实真正的原因,让瑶瑶等很多这样的女人成为并不容易得到幸福的完美女人,还是在于她们害怕自己以杨晓芸那种方式真的表现出在乎了,就失控了。成熟女人很怕失控,这样的伤害太大,很难弥补,至少对于自己来讲。女人不再勇敢了,至少是小小的勇敢,这不太是好事情。这一类女人,就像是刺猬,受伤的刺猬、用情至深的刺猬、强作坚强的刺猬、一根一根拔掉自己的刺的刺猬。她们一直很会隐藏,露出的都是好的地方,都是没有刺的地方,其实总在受伤,还硬撑着,明明是很受伤的刺猬,明明是为了各种原因、各种人一根一根拔掉自己的刺,把自己的伤口包起来,隐藏起来,永远是笑脸。这不是坚强,是逞强,是自我保护,而这种逞强,如果有一天坚持不下去了,自己的死穴秘密完全暴露无遗,或者像杨晓芸那样闹一次、把最最真实的情感表露无疑,自己的“保护系统”就可能随之完全崩溃瓦解,她们就彻底失控了、彻底迷失了。
  
  也许男人真的永远没办法理解女人,而女人却真的可以理解他们说的每一件事。只是,女人不是总能找到简单的话语来直接告诉他们,让他们明白自己或者双方共同遇到的问题。女人也不是神,不是智者,她们在自己迷惑或者迷失的时候,自己都无法解决,更不可能给出别人任何简练的语言明确的说明。这种体会我有过,就像夏琳失去了自己,那个时候,你却是发现自己无论怎么做都不对的尴尬和痛苦,那真是难受极了,就算你想表达都表达不清楚,而这个时候对方只是觉得自己迷糊、一心想自己要一个痛快的结论,可是,谁来给我一个结论让我也痛痛快快的解决呢?也许换个环境跳出来冷静想想只能是唯一的办法,虽然带来的巨大痛苦和伤害,也是任何人和任何事都没办法弥补的,但这也是没有办法的办法。
  
  谁是最幸福的女人?
  
  所以从幸福的角度来讲,杨晓芸这一类是最容易得到幸福的,因为她是小女人、可爱、简单。
  不过,如果像夏琳,真正学会了经营,也会非常幸福,而且这种幸福比其他人更稳定更长久,而且这种情况通常也伴随着普遍意义上的成功,过着更舒适的生活,因为夏琳比杨晓芸有才能。但对于女人来讲,生活是否幸福永远是第一位的,远远超过事业上的成功,理想是否实现。其实这对于男人来讲也应该同样重要。就像徐志森说的:生活永远是最重要的。
  
   璐璐不能说最早得到了幸福,只能说她得到了想要的生活,她属于知识层次不高的北飘一族,所以能嫁给猪头,能安定下来,就是比较理想的生活,其实她自己也说,即是她嫁给了猪头,但还是喜欢的是华子。正是因为她的要求不高,妈妈、弟弟和自己在一起就行了,所以嫁给了猪头,因为生活,无法让一个无根的女人为无法把握的爱而等太久,没有安全感的生活太辛苦、也太残酷。华子是个好人,但是他还年轻,很多人生观的不同,也无法给璐璐安全感,而这却是璐璐最需要的。
    
   灵珊是一个明智的人,虽然年纪小,但是思想很成熟。从很多事情都能看得出来,包括对陆涛的态度,尽管她被陆涛吸引,但她并没有像夏琳那样热情,也没有像米莱一样执著。至于璐璐的弟弟,她只是没有接触过这样的人,觉得好奇,喜欢也只是喜欢,不是爱。她还是愿意当个小孩,跟着父亲也只是为了玩,并不是为了做生意。
  
   米莱
  
   很多人不喜欢夏琳,喜欢米莱。其实他俩谁好谁坏,不是能够简单评价的,他们都是生活里实实在在存在的人。确实,一个女人要是太喜欢一个男人,失掉了主心骨,下场都不会太好。嗯,这是米莱和夏琳的区别。失掉了主心骨,也就是失掉了自己,失控了。
        
    不能说陆涛喜欢夏琳纯粹是因为她的漂亮,陆涛喜欢的,也有夏琳的有主见的一面,而米莱其实能看到这一点。米莱对陆涛非常执著,执着的可以为他付出全部,其实一点都不缺心眼,就是执著。她陪地、陪裝修、陪房租、陪送自己(这里我用的是“陪”,虽然最后都“赔”了),就想陆涛赔回他们的感情,这是非常“狠毒”的一招,没几个男人能拒绝。
        
    但是,陆涛还是不会放弃夏琳而和米莱在一起,我估计,也没几个人在这种情况下最后真敢和米莱在一起。米莱失控了,而夏琳刹车了。所以,换我是陆涛,就算不和夏琳了,也不会和米莱,反而,和灵珊在一起,倒是一种可能性很大的选择。
        
    就好像杨晓芸几声撕心裂肺的哭喊,向南的心理防线就彻底崩溃任凭你瑶瑶对他再好再体贴也没有用。而夏琳虽然不会对陆涛哭喊,但是米莱再怎么陪,都是赔,也赢不回陆涛。 其实我也喜欢米莱,只是为她可惜。
  
   每个人都有自己独一无二的人生,所以无论你怎么样,什么样的性格,和什么样的人交往,我们都有追求幸福的权利,也要为之努力,认真奋斗,不要仅仅是停留在口头上。
  
   因为一些原因没写完,米莱貌似最傻却又是最精明最执著的,灵珊是最明智最中庸的,璐璐是最辛苦最无奈的。加上杨晓芸和夏琳,这五个女人啊,差不多代表着年轻女性最常见的五种情形。以后有空再更新吧,原载地址http://lazylorna.blog.163.com
  
  P.S.男人的一半是女人,女人的全部是男人。《奋斗》里面的男人们也各有千秋,顺便提两嘴。
  
  陆涛就不多说了,华子虽然对哥们仗义、但对于感情也有些怯负责任,向南,这个名字起的也很有深意的,用我好朋友Armyknife的话说,希望他更像个男人......

posted @ 2007-09-23 13:42 小强摩羯座 阅读(369) | 评论 (0)编辑 收藏

曾有人说过:男人是多情和长情的。而女人则是专情与绝情。      

    男人可以在他已和一个喜欢的人在一起的时候,在他的心里说不定还有一个或更多的“她”存在。因为他多情。男人可以在多年以后心中还在掂记着他的女朋友现在过得是否安好。因为他长情。      

    女人却不一样。当她和一个喜欢的人在一起的时候,她所想的就是他,她所做的也就是为了他。这时,即使有一个比现在的更好的男人出现,她也不会放弃他的。因为她的专情。而当她决定放弃他的时候,那就是说一切都没有余地了。因为她绝情。      

    男人,天生就是多情的。只是,他会对某一个人最长情。但这个人成为他妻子的可能性几乎为零。女人,天生就是专情的。只是,她会对某一个人最绝情。但这个人成为她的仇人的可能性几乎是零。      

    男人和女人真的很不一样。当男人知道以前的女朋友现在过得不好,他会去安慰她,而当女人知道以前的男朋友现在过得不好时,大部分肯定不会去安慰他。      

    对男人来说,女人是要来保护的,而他则成了个大英雄。对女人来说,男人是要来依赖的,而她则成了个小鸟儿。      

    女人不明白怎么男人可以有这么多的心去记着那么多的情。而男人不明白怎么女人可以这么决心的忘了一段情。      

    其实,男人对你说分手的时候应该还有余地的。因为他多情,也因为他长情。女人对你说分手的时候那就是没有余地了。因为她专情,也因为她绝情。      

    就好比,男人和男人之间爱搭肩膀以示友好,而女人和女人之间则爱手拉着手以示友好。相对来说,男人在开心和不开心的时候都喜欢大笑。而女人呢,在开心的时候她会开怀而笑,在伤心的时候她会伤心的痛哭。男子汉,流血不流泪。女人呢?如果她在伤心的时候还满面笑容的话,那别人肯定会以为她有问题了。      

    一个女人要决心和你分手的时候,你就不要妄想可以再把她的人和心留下。一个女人是不会轻易的把分手二字说出口的。但,一个男人说要和你分后的时候,你还可以努力一把,说不定你们还会有机会。很简单。就是多情和长情,专情与绝情之分。      

    在一个女人全身心的投入到一段感情中去的时候,那她的心是牢不可破的。但一个男人全身心投入到一段感情中去的时候,却还是可以有间隙让另一个她有机可乘。      

    当女人决定,她要离开他的时候,那这段情就真的完蛋了。不要问为什么,这个结果是必然的。当男人决定,他要离开她的时候,那她还可以补救的,未必完蛋。同样的,这个结果是必然 

posted @ 2007-09-06 12:25 小强摩羯座 阅读(462) | 评论 (0)编辑 收藏

【转载】能受用终身的九大原理

彼得原理

每个组织都是由各种不同的职位、等级或阶层的排列所组成,每个人都隶属于其中的某个等级。彼得原理是美国学者劳伦斯?彼得在对组织中人员晋升的相关现象研究后,得出一个结论:在各种组织中,雇员总是趋向于晋升到其不称职的地位。彼得原理有时也被称为向上爬的原理。 这种现象在现实生活中无处不在:一名称职的教授被提升为大学校长后,却无法胜任;一个优秀的运动员被提升为主管体育的官员,而无所作为。对一个组织而言,一旦相当部分人员被推到其不称职的级别,就会造成组织的人浮于事,效率低下,导致平庸者出人头地,发展停滞。因此,这就要求改变单纯的根据贡献决定晋升的企业员工晋升机制,不能因某人在某个岗位上干得很出色,就推断此人一定能够胜任更高一级的职务。将一名职工晋升到一个无法很好发挥才能的岗位,不仅不是对本人的奖励,反而使其无法很好发挥才能,也给企业带来损失。

 

酒与污水定律

酒与污水定律是指把一匙酒倒进一桶污水,得到的是一桶污水;如果把一匙污水倒进一桶酒,得到的还是一桶污水。在任何组织里,几乎都存在几个难弄的人物,他们存在的目的似乎就是为了把事情搞糟。最糟糕的是,他们像果箱里的烂苹果,如果不及时处理,它会迅速传染,把果箱里其他苹果也弄烂。 烂苹果的可怕之处,在于它那惊人的破坏力。一个正直能干的人进入一个混乱的部门可能会被吞没,而一个无德无才者能很快将一个高效的部门变成一盘散沙。组织系统往往是脆弱的,是建立在相互理解、妥协和容忍的基础上的,很容易被侵害、被毒化。破坏者能力非凡的另一个重要原因在于,破坏总比建设容易。一个能工巧匠花费时日精心制作的陶瓷器,一头驴子一秒钟就能毁坏掉。如果一个组织里有这样的一头驴子,即使拥有再多的能工巧匠,也不会有多少像样的工作成果。如果你的组织里有这样的一头驴子,你应该马上把它清除掉,如果你无力这样做,就应该把它拴起来。

 

木桶定律

水桶定律是讲一只水桶能装多少水,这完全取决于它最短的那块木板。这就是说任何一个组织,可能面临的一个共同问题,即构成组织的各个部分往往是优劣不齐的,而劣势部分往往决定整个组织的水平。水桶定律与酒与污水定律不同,后者讨论的是组织中的破坏力量,最短的木板却是组织中有用的一个部分,只不过比其他部分差一些,你不能把它们当成烂苹果扔掉。强弱只是相对而言的,无法消除,问题在于你容忍这种弱点到什么程度,如果严重到成为阻碍工作的瓶颈,你就不得不有所动作。

 

马太效应

《新约;马太福音》中有这样一个故事:一个国王远行前,交给3个仆人每人一锭银子,吩咐道:你们去做生意,等我回来时,再来见我。国王回来时,第一个仆人说:主人,你交给我的一锭银子,我已赚了10锭。于是,国王奖励他10座城邑。第二个仆人报告:主人,你给我的一锭银子,我已赚了5锭。于是,国王奖励他5座城邑。第三仆人报告说:主人,你给我的1锭银子,我一直包在手帕里,怕丢失,一直没有拿出来。于是,国王命令将第三个仆人的1锭银子赏给第一个仆人,说:凡是少的,就连他所有的,也要夺过来。凡是多的,还要给他,叫他多多益善,这就是马太效应,反应当今社会中存在的一个普遍现象,即赢家通吃。对企业经营发展而言,马太效应告诉我们,要想在某一个领域保持优势,就必须在此领域迅速做大。当你成为某个领域的领头羊时,即便投资回报率相同,你也能更轻易地获得比弱小的同行更大的收益。而若没有实力迅速在某个领域做大,就要不停地寻找新的发展领域,才能保证获得较好的回报。

 

零和游戏原理

零和游戏是指一项游戏中,游戏者有输有赢,一方所赢正是另一方所输,游戏的总成绩永远为零,零和游戏原理之所以广受关注,主要是因为人们在社会的方方面面都能发现与零和游戏类似的局面,胜利者的光荣后面往往隐藏着失败者的辛酸和苦涩。 20世纪,人类经历两次世界大战、经济高速增长,科技进步、全球一体化以及日益严重的环境污染,零和游戏观念正逐渐被双赢观念所取代。人们开始认识到利已不一定要建立在损人的基础上。通过有效合作皆大欢喜的结局是可能出现的。但从零和游戏走向双赢,要求各方面要有真诚合作的精神和勇气,在合作中不要小聪明,不要总想占别人的小便宜,要遵守游戏规则,否则双赢的局面就不可能出现,最终吃亏的还是合作者自己。

 

华盛顿合作规律

华盛顿合作规律说的是一个人敷衍了事,两个人互相推诿,三个人则永无成事之日。多少有点类似于我们三个和尚的故事。人与人的合作,不是人力的简单相加,而是要复杂和微妙得多。在这种合作中,假定每个人的能力都为1,那么,10个人的合作结果有时比10大得多,有时,甚至比1还要小。因为人不是静止物,而更像方向各异的能量,相互推动时,自然事半功倍,相互抵触时,则一事无成。 我们传统的管理理论中,对合作研究得并不多,最直观的反映就是,目前的大多数管理制度和行为都是致力于减少人力的无谓消耗,而非利用组织提高人的效能。换言之,不妨说管理的主要目的不是让每个人做得更好,而是避免内耗过多。

 

手表定理

手表定理是指一个人有一只表时, 可以知道现在是几点钟,当他同时拥有两只表时,却无法确定。两只手表并不能告诉一个人更准确的时间,反而会让看表的人失去对准确时间的信心。手表定理在企业经营管理方面,给我们一种非常直观的启发,就是对同一个人或同一个组织的管理,不能同时采用两种不同的方法,不能同时设置两个不同的目标,甚至每一个人不能由两个人同时指挥,否则将使这个企业或这个人无所适从。手表定理所指的另一层含义在于,每个人都不能同时选择两种不同的价值观,否则,你的行为将陷于混乱。

 

不值得定律

不值得定律最直观的表述是:不值得做的的事情, 就不值得做好。这个定律再简单不过了,重要性却时时被人们忽视遗忘。不值得定律反映人们的一种心理,一个人如果从事的是一份自认为不值得做的事情,往往会保持冷嘲热讽,敷衍了事的态度,不仅成功率低,而且即使成功,也不觉得有多大的成就感。 因此,对个人来说,应在多种可供选择的奋斗目标及价值观中挑选一种,然后为之奋斗。选择你所爱的,爱你所选择的,才可能激发我们的斗志,也可以心安理得。而对一个企业或组织来说,则要很好地分析员工的性格特性,合理分配工作,如让成就欲较强的职工单独或牵头完成具有一定风险和难度的工作,并在其完成时,给予及时的肯定和赞扬;让依附欲较强的职工,更多地参加到某个团体*同工作;让权力欲较强的职工,担任一个与之能力相适应的主管。同时要加强员工对企业目标的认同感,让员工感觉到自己所做的工作是值得的,这样才能激发职工的热情。

 

蘑菇管理

蘑菇管理是许多组织对待初出茅庐者的一种管理方法,初学者被置于阴暗的角落(不受重视的部门,或打杂跑腿的工作),浇上一头大粪(无端的批评、指责、代人受过),任其自生自灭(得不到必要的指导和提携)。相信很多人都有过这样一段蘑菇的经历,这不一定是什么坏事,尤其是当一切刚刚开始的时候,当几天蘑菇,能够消除我们很多不切实际的幻想,让我们更加接近现实,看问题也更加实际。一个组织,一般对新进的人员都是一视同仁,从起薪到工作都不会有大的差别。无论你是多么优秀的人才,在刚开始的时候,都只能从最简单的事情做起,蘑菇的经历,对于成长中的年轻人来说,就象蚕茧,是羽化前必须经历的一步。所以,如何高效率地走过生命的这一段,从中尽可能汲取经验,成熟起来,并树立良好的值得信赖的个人形象,是每个刚入社会的年轻人必须面对的课题。

posted @ 2007-09-04 00:04 小强摩羯座 阅读(130) | 评论 (0)编辑 收藏

Java正则表达式4种常用功能
         四种功能可以总结成:
            1、查询用find()判断是否查询到。
            2、匹配必须先用find()方法判断查询到,再用group()得匹配串。没有使用find()不能直接取出匹配串。
   这样设计可能是为了一般的处理逻辑上的合理性,因为不能没有判断是否查询到,就去取匹配串,那是不安全的。
            3、分解串用split()。
            4、替换方法有replaceAll(),replaceFirst()。
正则表达式在字符串处理上有着强大的功能,sun在jdk1.4加入了对它的支持

下面简单的说下它的4种常用功能:

查询:

String str="abc efg ABC";

String regEx="a|f"; //表示a或f

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean rs=m.find();

如果str中有regEx,那么rs为true,否则为flase。如果想在查找时忽略大小写,则可以写成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

提取:
String regEx=".+\\\\(.+)$";

String str="c:\\dir1\\dir2\\name.txt";

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean rs=m.find();

for(int i=1;i<=m.groupCount();i++){

System.out.println(m.group(i));

}

以上的执行结果为name.txt,提取的字符串储存在m.group(i)中,其中i最大值为m.groupCount();

分割:

String regEx="::";

Pattern p=Pattern.compile(regEx);

String[] r=p.split("xd::abc::cde");

执行后,r就是{"xd","abc","cde"},其实分割时还有跟简单的方法:

String str="xd::abc::cde";

String[] r=str.split("::");

替换(删除):

String regEx="a+"; //表示一个或多个a

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher("aaabbced a ccdeaa");

String s=m.replaceAll("A");

结果为"Abbced A ccdeA"

如果写成空串,既可达到删除的功能,比如:

String s=m.replaceAll("");

结果为"bbced ccde"

附:

\d 等於 [0-9] 数字
\D 等於 [^0-9] 非数字
\s 等於 [ \t\n\x0B\f\r] 空白字元
\S 等於 [^ \t\n\x0B\f\r] 非空白字元
\w 等於 [a-zA-Z_0-9] 数字或是英文字
\W 等於 [^a-zA-Z_0-9] 非数字与英文字

^ 表示每行的开头
$ 表示每行的结尾



"^\\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\\d+$"    //整数
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\\d+)(\\.\\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5\w]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5\w]/g,''))" value="允许下划线,数字字母和汉字">
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^\d{n}$"。
只能输入至少n位的数字:"^\d{n,}$"。
只能输入m~n位的数字:。"^\d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^\+?[1-9][0-9]*$"。
只能输入非零的负整数:"^\-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^\w+$"。
验证用户密码:"^[a-zA-Z]\w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
只能输入汉字:"^[\u4e00-\u9fa5]{0,}$"
验证Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
验证InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
验证电话号码:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
验证身份证号(15位或18位数字):"^\d{15}|\d{18}$"。
验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。
验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09

posted @ 2007-08-24 23:02 小强摩羯座 阅读(243) | 评论 (0)编辑 收藏

Base64编码方法

 Base64编码的作用:由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。它使用下面表中所使用的字符与编码。
  Base64编码方法要求把每三个8Bit的字节转换为四个6Bit的字节,其中,转换之后的这四个字节中每6个有效bit为是有效数据,空余的那两个bit用0补上成为一个字节。因此Base64所造成数据冗余还是比较严重的,采用这中编码方法会使得编码后的数据长度变成编码前长度的三分之四倍。但是,Base64是当今比较流行的编码方法,因为它编起来“速度快而且简单”,这是网上的说法,我更觉得它是历史遗留下来的原因。
  举个例子,有三个字节的原始数据:aaaaaabb bbbbccccc ccdddddd(这里每个字母表示一个bit位)
  那么编码之后会变成:      00aaaaaa 00bbbbbb 00cccccc 00dddddd
  上面的例子只是说明了Base64的移位方式,因为我语言表达能力较差,唯恐造成误解,故举此例。
这还没完,读者现在只是了解了Base64编码方法的一部分,还有一个Base64编码表需要了解,编码表是这样的:
编号 字符 编号 字符 编号 字符 编号 字符 编号 字符l
0 A 16 Q 32 g 48 w (pad) =
1 B 17 R 33 h 49 x
2 C 18 S 34 i 50 y
3 D 19 T 35 j 51 z
4 E 20 U 36 k 52 0
5 F 21 V 37 l 53 1
6 G 22 W 38 m 54 2
7 H 23 X 39 n 55 3
8 I 24 Y 40 o 56 4
9 J 25 Z 41 p 57 5
10 K 26 a 42 q 58 6
11 L 27 b 43 r 59 7
12 M 28 c 44 s 60 8
13 N 29 d 45 t 61 9
14 O 30 e 46 u 62 +
15 P 31 f 47 v 63 /
  现在先别管上面这个表,在知道了移位方式之后,请再看个例子。
  有三个字节的原始数据:10101101 10111010 01110110
编码之后的数据是:        00101011 00011011 00101001 00110110 (还是数字看起来比较整齐~)
编码之后的这四个字节都转换成为十进制数是:
           43                   27                 42                   54
  现在用这四个数去上面那个编码表里找,找到的字符是r b q 2,于是乎,三个字节的原始数据:10101101 10111010 01110110经Base64编码方法编码之后的结果是rbq2。
  还有很重要的一点要说明,如果原文的字节数量如果不是3的倍数,不够的地方可以用全0来补足来凑成6位一组的字节。如前面所述,Base64编码方法要求把每三个8Bit的字节转换为四个6Bit的字节,所以当转换后的字节数不4的倍数时,就要使用“=”来补足,因为编码前的一个字节只少可以对应编码后的二个字节,一个正确Base64编码最多只会有两个“=”。所以对于Base64解码,就是把上面的过程逆着来一遍即可。
 

posted @ 2007-08-21 11:34 小强摩羯座 阅读(468) | 评论 (0)编辑 收藏

 
2007-05-11 21:56:41

  本专题从最基础的表单知识,到表单的高级应用,让你有一个比较全面地认识,相信你在读完本专题以后,一定会对表单非常熟悉。

  一、表单概述
  表单,在网页中的作用不可小视,主要负责数据采集的功能,比如你可以采集访问者的名字和e-mail地址、调查表、留言簿等等。
  表单的组成
  一个表单有三个基本组成部分:
  表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
  表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
  表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
  为了顾及不同的网页设计工具,本文只讲述代码的设计,不具体讲述操作方法,下面就是表单的HTML代码设计要点:
  1.1 表单标签<form></form>
  功能:用于申明表单,定义采集数据的范围,也就是<form>和</form>里面包含的数据将被提交到服务器或者电子邮件里。
  语法:<FORM ACTION="URL" METHOD="GET|POST" ENCTYPE="MIME" TARGET="...">. . .</FORM>
  属性解释见下表:
  action=url 指定一来处理提交表单的格式.它可以是一个URL地址(提交给程式)或一个电子邮件地址。
  method=get或post 指明提交表单的HTTP方法.可能的值为:
  post:POST方法在表单的主干包含名称/值对并且无需包含于action特性的URL中.
  get:不赞成。GET方法把名称/值对加在action的URL后面并且把新的URL送至服务器.这是往前兼容的缺省值.这个值由于国际化的原因不赞成使用.
  enctype=cdata 指定提交的结果文档显示的位置:
  _blank :在一个新的、无名浏览器窗口调入指定的文档;
  _self :在指向这个目标的无素的相同的框架中调入文档;
  _parent :把文档调入当前框的直接的父FRAMESET框中;这个值在当前框没有父框时等价于_self;
  _top :把文档调入原来的最顶部的浏览器窗口中(因此取消所有其它框架);这个值等价于当前框没有你框时的_self.
  例如:<form action="http://www.yesky.com/test.asp" method="post" target="_blank">...</form>
  表示表单将向http://www.yesky.com/test.asp以post的方式提交,提交的结果在新的页面显示,数据提交的媒体方式是默认的application/x-www-form-urlencoded方式;
  1.2 表单域
  表单域包含了文本框、多行文本框、密码框、隐藏域、复选框、单选框和下拉选择框等,用于采集用户的输入或选择的数据,下面分别讲述这些表单域的代码格式:
  1.2.1 文本框
  文本框是一种让访问者自己输入内容的表单对象,通常被用来填写单个字或者简短的回答,如姓名、地址等。
  代码格式:<input type="text" name="..." size="..." maxlength="..." value="...">
  属性解释:
  type="text"定义单行文本输入框;
  name属性定义文本框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  size属性定义文本框的宽度,单位是单个字符宽度;
  maxlength属性定义最多输入的字符数。
  value属性定义文本框的初始值
  (观看效果页样例1)
  样例1代码:<input type="text" name="example1" size="20" maxlength="15">
  1.2.2 多行文本框
  也是一种让访问者自己输入内容的表单对象,只不过能让访问者填写较长的内容。
  代码格式:<TEXTAREA name="..." cols="..." rows="..." wrap="VIRTUAL"></TEXTAREA>
  属性解释:
  name属性定义多行文本框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  cols属性定义多行文本框的宽度,单位是单个字符宽度;
  rows属性定义多行文本框的高度,单位是单个字符宽度;
  wrap属性定义输入内容大于文本域时显示的方式,可选值如下:
  默认值是文本自动换行;当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现;
  Off,用来避免文本换行,当输入的内容超过文本域右边界时,文本将向左滚动,必须用Return才能将插入点移到下一行;
  Virtual,允许文本自动换行。当输入内容超过文本域的右边界时会自动转到下一行,而数据在被提交处理时自动换行的地方不会有换行符出现;
  Physical,让文本换行,当数据被提交处理时换行符也将被一起提交处理。
  (观看效果页样例2)
  样例2代码:<TEXTAREA name="example2" cols="20" rows="2" wrap="PHYSICAL"></TEXTAREA>
  1.2.3 密码框
  是一种特殊的文本域,用于输入密码。当访问者输入文字时,文字会被星号或其它符号代替,而输入的文字会被隐藏。
  代码格式:<input type="password" name="..." size="..." maxlength="...">
  属性解释:
  type="password"定义密码框;
  name属性定义密码框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  size属性定义密码框的宽度,单位是单个字符宽度;
  maxlength属性定义最多输入的字符数。
  (观看效果页样例3)
  样例3代码:<input type="password" name="example3" size="20" maxlength="15">
  1.2.4 隐藏域
  隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上。
  代码格式:<input type="hidden" name="..." value="...">
  属性解释:
  type="hidden"定义隐藏域;
  name属性定义隐藏域的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  value属性定义隐藏域的值
  例如:<input type="hidden" name="ExPws" value="dd">
  1.2.5 复选框
  复选框允许在待选项中选中一项以上的选项。每个复选框都是一个独立的元素,都必须有一个唯一的名称。
  代码格式:<INPUT type="checkbox" name="..." value="...">
  属性解释:
  type="checkbox"定义复选框;
  name属性定义复选框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  value属性定义复选框的值
  (观看效果页样例4)
  样例4代码:
  <input type="checkbox" name="yesky" value="09">yesky.com
  <input type="checkbox" name="Chinabyte" value="08">Chinabyte.com
  1.2.7 文件上传框
  有时候,需要用户上传自己的文件,文件上传框看上去和其它文本域差不多,只是它还包含了一个浏览按钮。访问者可以通过输入需要上传的文件的路径或者点击浏览按钮选择需要上传的文件。
  注意:在使用文件域以前,请先确定你的服务器是否允许匿名上传文件。表单标签中必须设置ENCTYPE="multipart/form-data"来确保文件被正确编码;另外,表单的传送方式必须设置成POST。
  代码格式:<input type="file" name="..." size="15" maxlength="100">
  属性解释:
  type="file"定义文件上传框;
  name属性定义文件上传框的名称,要保证数据的准确采集,必须定义一个独一无二的名称;
  size属性定义文件上传框的宽度,单位是单个字符宽度;
  maxlength属性定义最多输入的字符数。
  (观看效果页样例5)
  样例5代码:<input type="file" name="myfile" size="15" maxlength="100">
  1.2.8 下拉选择框
  下拉选择框允许你在一个有限的空间设置多种选项。
  代码格式:
  <select name="..." size="..." multiple>
  <option value="..." selected>...</option>
  ...
  </select>
  属性解释:
  size属性定义下拉选择框的行数;
  name属性定义下拉选择框的名称;
  multiple属性表示可以多选,如果不设置本属性,那么只能单选;
  value属性定义选择项的值;
  selected属性表示默认已经选择本选项。
  (观看效果页样例6)
  样例6代码:
  <select name="mySel" size="1">
  <option value="1" selected>yesky.com</option>
  <option value="d2">chinabyte.com</option>
  </select>
  (观看效果页样例7)
  按Ctrl可以多选
  样例7代码:
  <select name="mySelt" size="3" multiple>
  <option value="1" selected>yesky.com</option>
  <option value="d2">chinabyte.com</option>
  <option value="3">internet.com</option>
  </select>
  1.3 表单按钮
  表单按钮控制表单的运作。
  1.3.1 提交按钮
  提交按钮用来将输入的信息提交到服务器。
  代码格式:<input type="submit" name="..." value="...">
  属性解释:
  type="submit"定义提交按钮;
  name属性定义提交按钮的名称;
  value属性定义按钮的显示文字;
  (观看效果页样例8)
  样例8代码:<input type="submit" name="mySent" value="发送">
  1.3.2 复位按钮
  复位按钮用来重置表单。
  代码格式:<input type="reset" name="..." value="...">
  属性解释:
  type="reset"定义复位按钮;
  name属性定义复位按钮的名称;
  value属性定义按钮的显示文字;
  (观看效果页样例9)
  样例9代码:<input type="reset" name="myCancle" value="取消">
  1.3.3 一般按钮
  一般按钮用来控制其他定义了处理脚本的处理工作。
  代码格式:<input type="button" name="..." value="..." onClick="...">
  属性解释:
  type="button"定义一般按钮;
  name属性定义一般按钮的名称;
  value属性定义按钮的显示文字;
  onClick属性,也可以是其它的事件,通过指定脚本函数来定义按钮的行为;
  (观看效果页样例10)
  样例10代码:<input type="button" name="myB" value="保存" onClick="javascript:alert('it is a example button!')">

  二、表单外观的美化
  很多时候,我们仅仅为了实现数据采集这个功能来使用表单,常看到的表单都是“千人一面”、毫无生气,本专题尝试着来改变这一现象,试图赋予表单一个丰富多彩的面貌。
  表单的外观,也是最为直接的花样,可以通过改变它来实现特效,本文分两个出发点来讲述:CSS魔法和图像魔法。
  1、CSS魔法
  CSS,就是大家知道的层叠样式单,它可以定义页面元素的外观,包括字体样式、背景颜色和图像样式、边框样式、补白样式、边界样式等等,下面就从这几个方面出发,讨论怎样将CSS应用到表单中,彻底美化它!
  1.1 字体样式的应用
  字体样式包括:字体族科(font-family)、字体风格(font-style)、字体变形(font-variant)、字体加粗(font-weight)、字体大小(font-size)、字体(font),具体的定义方法,在这里不详细讲述,可以参考它的资料。
  也许你已经注意到,按钮上的文字不漂亮,其实可以通过CSS字体样式来解决,同样地,其它的几个涉及到文字的表单项,例如,文本框、多行文本框、口令框、下拉选择框都可以应用字体样式。
  为了充分展示这些应用,下例特别设计了几种样式,在实际应用中,不必这么凌乱,灵活运用:
  (观看效果页样例11)
  分析:
  文本框里的文字是加粗的,大小是9pt,字体是宋体,代码:
  <input type="text" name="formExam" size="10" maxlength="10" style="font-family:宋体; font-size: 12px; font-weight: bold" value="加粗">
  口令框文字是红色的,代码:
  <input type="password" name="formExam3" style="font-size: 9pt; color: #FF0000" size="8" maxlength="8">
  下拉框文字颜色是红色的,字体是Verdana,大小是9pt,代码:
  <select name="select" size="1" style="font-family:Verdana,Arial; font-size: 9pt; color: #FF0000">
  <option value="2" selected>yesky.com</option>
  <option value="1">redidea.net</option>
  </select>
  多行文本框了的字体是Verdana,有下划线,大小是9pt,代码:
  <TEXTAREA name="formExam2" cols="30" rows="3" style="font-family:Verdana, Arial; font-size: 9pt; color: #000099; text-decoration: underline" align=right>underline css style</TEXTAREA>
  发送1和发送2按钮的文字不同,是因为发送1按钮使用了9pt的宋体文字,所以比较美观,发送1按钮的代码:
  <input type="submit" name="Submit" value="发送1" style="font-family:宋体; font-size: 9pt;">
  小结:只要我们对字体的样式熟悉了,就可以灵活多变,不一定要在标签里面使用style来定义,完全可以在<head>里定义,或者外部引用CSS文件,用到的时候引用一下就能达到预期的效果。
  1.2 背景颜色和图像样式的应用
  有很多时候,网页由于颜色的搭配,不得不对表单的背景颜色和图像样式进行设计,背景颜色利用background-color属性,背景图像利用background-image属性,颜色和图像同样能够得到意想不到的效果。
  (观看效果页样例12)
  分析:
  文本框背景是黑色的,字体是白色的,代码:
  <input type="text" name="RedFld" size="10" maxlength="10" style="color: #FFFFFF; background-color: #000000">
  口令框背景是灰色的,代码:
  <input type="password" name="RedFld3" size="10" maxlength="10" style="background-color: #999999">
  单选和复选按钮的背景是红色的,代码:
  <input type="checkbox" name="checkbox" value="checkbox" style="background-color: #FF0000">
  <input type="radio" name="radiobutton" value="radiobutton" style="background-color: #FF0000">
  下拉选择框的选项是丰富多彩的背景,代码:
  <select name="select2" size="1">
  <option selected style="background-color: #FF0000">yesky.com</option>
  <option style="background-color: #0000CC">redidea.com</option>
  <option style="background-color: #009900">chinabyte.com</option>
  <option style="background-color: #ff33cc">sina.com</option>
  <option style="background-color: #999999">sohu.com</option>
  </select>
  多行文本框的背景是一个图像,代码:
  <TEXTAREA name="RedFld2" cols="25" rows="3" wrap="VIRTUAL" style="background-image: url(back.gif)"></TEXTAREA>
  submit1按钮的背景是黄色的,代码:
  <input type="submit" name="Submit3" value="Submit1" style="background-color: #FF9900">
  submit2按钮的背景是一个图像,代码:
  <input type="submit" name="Submit22" value="Submit2" style="background-image: url(back.gif)">
  小结:用好background-color属性和background-image属性,就可以设计很出“色”表单了。
  1.3 边框样式的应用
  也许你觉得表单的边框过于死板,我们能否设计单线条,或者其它的边框样式呢?当然可以!
  和边框有关的属性有:边框式样border-style、上边框border-top、右边框border-right、下边框border-bottom、左边框border-left、边框颜色border-colr、边框宽度 border-width、上边框宽度border-top-width、右边框宽度border-right-width、下边框宽度border-bottom-width、左边框宽度border-left-width、边框 border,这里不作详细的讲述,请参考有关资料。
  (观看效果页样例13)
  分析:
  文本框有8种类型边框样式,即border-style,分别展示在本例中,边框宽度的设置有一个规律:
  border-width: [ thin | medium | thick | <长度> ]{1,4}
  边框宽度用一到四个值来设置元素的边框宽度,它们分别被应用于上、右、下和左边框宽度。如果只给出一个值,它被应用于所有边框宽度。如果两个或三个值给出了,省略了的值与对边相等
  例如:<input type="text" name="RedF" style="border-color: #006600; border-style: dotted; border-width: 1px">
  边框颜色的设置有一个规律:border-color: <颜色>{1,4}
  边框颜色用一到四个值来设置元素的边框颜色。如果四个值都给出了,它们分别被应用于上、右、下和左边框颜色。如果只给出一个值,它被应用于所有边框颜色。如果两个或三个值给出了,省略了的值与对边相等。
  对于多行文本框以及按钮,设置边框的方法和文本框一样,不再陈述;
  由于下拉选择框Select不支持边框的设置,所以对它设置是徒劳的;
  单选按钮和复选按钮的边框,设置的效果不十分协调,所以建议不要对它们设置,不然有“画蛇添足”之感;
  边框的特殊设计展示
  聪明的读者一定会想到,如果设计单边框,一定更加漂亮,对!下面我们来尝试以下部分边框的设置效果,本例仅仅以Solid和dotted两种类型的边框作演示,其它类型的边框原理相同:
  (观看效果页样例14)
  代码:style="background-color: #FFFFFF; border-color: #000099; border-style: solid; border-width: 0px 0px 1px"
  (观看效果页样例15)
  代码:style="background-color: #FFFFFF; border-color: #CCCCCC black #FF0000; border-style: solid; border-width: 1px 0px"
  (观看效果页样例16)
  代码:style="background-color: #FFFFFF;border-left: 1px dotted #ff0000; border-right: 1px dotted #ff0000; border-top: 1px dotted #ff0000; border-bottom:1px solid #000000"
  注意:边框类型的外观如下:
  none :无边框。与任何指定的border-width值无关;
  dotted :点线;
  dashed :虚线;
  solid :实线边框;
  double :双线边框。两条单线与其间隔的和等于指定的border-width值;
  groove :3D凹槽;
  ridge :边框突起;
  inset :3D凹边;
  outset :3D凸边;
  2、图像魔法
  图像,是网页的重要元素,能否应用到表单中呢?接下来,我们用图像来改造死板的表单,分两个部分来探讨:用图像代替按钮、用背景图美化表单元素。
  2.1 用图像代替按钮
  由于默认的表单按钮太丑陋,绝大多数的网站采用了图像按钮,那么,我们通过两个实例来看看怎样实现的:
  用图像代替提交按钮:
  当只有一个提交按钮的时候,可以简单地实现,不用加事件函数,代码是:
  <input type="image" name="..." src="url" width="" height="..." border="...">
  除了标签改为input type="image"以外,其它的属性和<img>标签的属性是一样的。
  (观看效果页样例17)
  是不是只要用图片就可以代替所有的按钮呢?是的,不过,不是上面这么简单了,必须加上事件函数,不然的话,图片都是提交按钮,不能完成复位等功能,看看下面的例子就知道了:
  用图片代替所有的表单按钮:
  (观看效果页样例18)
  注意:
  代替submit按钮的图片代码格式是
  <input type="image" name="..." src="..." onClick="document.formName.submit()">
  代替reset按钮的代码图片格式是
  <input type="image" name="..." src="..." onClick="document.formName.reset()">
  注:这里的formName是表单的name属性值。
  2.2 用背景图美化表单元素
  其实,前面已经提到过,用background-image:url()属性来定义表单元素的背景图,这里仅举一例,可以看到,除了select没有效果以外,其它的都可以配合网页的背景来设置它们。
  背景图的设置
  (观看效果页样例19)

  三、表单的提交
  既然表单是用来采集用户输入的数据,那么,就应该保证用户的数据被准确地提交到预定的地点,也就是说,我们在表单提交的时候,应该对用户的数据进行检验,一来可以避免用户误输数据,二来可以避免用户输入非法的,或者说不合格的数据;检验合格以后,还要保证用户的数据提交到特定的程序。
  1.数据的检验
  数据的检验,通常有两种程序:客户端检验和服务器端检验。客户端检验,比较快,服务器端检验,相对来说比较慢,为了确保安全,通常同时采用,这样就可以避免用户刻意破坏。
  不管采用什么方式,数据检验的原理都是一样的,一旦用户输入的数据不符合规定,就报错,要求用户重新输入,客户端检验常使用Javascrip脚本,服务器端的视系统而定,本文不对数据检验的具体程序设计进行探讨,仅仅列举几个例子来说明。
  必填项,以及简单的数据类型检验
  (观看效果页样例20)
  分析:
  本例给表单添加了onSubmit事件,通过onSubmit="return CheckDate()"指定提交前,必须通过函数CheckDate()来检验,如果不合格,返回输入数据;
  数据检验的函数如下:
<script>
function CheckDate(){
//取得输入的数据
userName = document.RedForm.userName.value;
userEmail = document.RedForm.userEmail.value;
//如果没有输入姓名
if (userName=="") {
alert("请输入姓名");
document.RedForm.userName.focus();
return false;
}else{
//如果没有输入Email,或者Email地址错误(不含@)
if ((userEmail=="")||(userEmail.indexOf("@")==-1)) {
alert("请重新输入Email地址");
document.RedForm.userEmail.focus();
return false;
}else return true;
}
}
</script>
  2.表单的分支提交
  有的时候,表单需要根据用户的选择,提交到不同的程序,怎么做呢?
  通过脚本来检测用户的选择分支,从而向不同的程序提交表单,看看样例:
  分支提交
  (观看效果页样例21)
  分析:这里首先用到的是form的onSubmit="TwoSubmit(this)",然后根据选择的分支,来分别递交到不同的程序,TwoSubmit()函数如下:
<script>
function TwoSubmit(form){
if (form.Ref[0].checked){
form.action = "cop.asp";//这里是分支一
}else{
form.action = "ind.asp";//这里是分支二
}
form.submit();
}
</script>
  3.用任何元素提交表单
  是不是只有按钮或者图片按钮才能提交表单呢?当然不是,实际上,任何页面元素都可以提交表单,不过嘛,都是通过脚本来完成的,下面我们就使用链接来代替Submit按钮:
  用链接来提交表单
  (观看效果页样例22)
  分析:
  通过onClick="document.form.submit()"来提交表单;用onClick="document.form.reset()"来复位表单,这样一来,任何一个元素都可以实现提交表单了。

  四、表单的常用技巧
  这些常用技巧,往往是和事件以及脚本联系在一起,本文注重功能,至于脚本,就不一一详细分析。常见的技巧有:下拉跳转菜单,表单内容的聚焦。
  1.下拉跳转菜单
  在Dreamweaver中,可以很方便地建立基于表单的下拉菜单,为了兼顾非Dreamweaver用户,这里讲述一下这种技巧。
  基于表单的下拉跳转菜单
  (观看效果页样例23)
  分析:实际上,这里用到了一个函数,用于向选择的地址跳转,
<script language="JavaScript">
function FormMenu(targ,selObj,restore){
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
</script>
  然后,给下拉选择框赋予一个事件onChange="FormMenu('parent',this,0)",就可以了。
  2.表单内容的聚焦
  内容聚焦,常用在Copy&Paste类网站上,用的好的话,可以方便用户。
  内容自动聚焦
  (观看效果页样例24)
  分析:上面分别使用了两个事件,Email的是onFocus="this.value=''",自动选择的是onMouseOver="this.select()"
  3.去掉表格和表单间的空隙
 表格和表单的空隙处理
  (观看效果页样例25)
  表格,我们常用来构架页面,可是,表格里的表单总是和表格的内容有一个空隙。
  分析:为什么没有空隙呢,看看右边的代码就知道了。
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<form name="form3" method="post" action="">
<td> <input type="text" name="textfield2"><br>
<input type="submit" name="Submit22" value="Submit">
这里没有空隙 </td>
</form>
</tr>
</table>   
  也就是说,把<form>标签放到<tr>和<td>中间,对应的</form>放在</td>和</tr>中间!
  4.用Email提交表单(只适合Outlook用户,不适合Foxmail用户)
  Email提交表单
  (观看效果页样例26)
  分析:看看我们的表单<form>标签就知道了,格式如下:
  <form name="..." action="mailto:xxxxx@xxx.xxx?Subject=表单反馈" enctype="text/plain" method="post">...</form>
  这里的mailto:后面加上要接受信息的地址,?Subject是设置默认的Email标题,enctype="text/plain"是必要的,表示信息以文本方式提交,没有任何加密,所以这种方法常用于没有Asp/Php/cgi支持的空间,也只是一个代用的方法,用户必须安装Outlook,并且是默认的邮件程序,才能顺利执行提交,据说TheBat!也可以,大家可以试验一下。

posted @ 2007-08-18 01:02 小强摩羯座 阅读(209) | 评论 (0)编辑 收藏

仅列出标题
共20页: First 上一页 12 13 14 15 16 17 18 19 20 下一页