2005年11月3日
以前曾经看过少林寺方丈释永信的访谈,当时就觉得深为高僧,相貌却并不脱俗,有点像傅彪,谈吐也颇为不凡,深入时代。
他的观点是:"世界在全球化,面对西方的经济强势和文化强势,少林寺必须作出应对。少林寺不改变就无法再在这个社会中保持影响力。"
关于方丈:
1.用企业的理念和精神来提升管理水平和工作效率。
2.《洛杉矶时报》将他描绘为一位融中国佛教文化与现代企业文化为一体的成功宗教人士。
3.美国"探索"频道的一个有关释永信的短片《新少林方丈》中,就已经用"CEO"作为"方丈"。
4.少林寺1500年历史上最年轻的方丈。
5.1996年在国内寺院中第一个建立起自己的网站,那会儿国内好多人还不知道互联网是什么。
6.中国第一个学习MBA课程的僧人,以及取得学位的方丈。
7.第一个把少林功夫搬上舞台。
8.拥有所有的现代通讯设备:宽带、笔记本电脑、数码相机、时尚手机,很会发短信。
昨天无意中上了少林寺的网站,发现了方丈的blog:
http://www.shaolin.org.cn/html/html/seng/menu03.htm
摘抄部分:
"佛说了些什么?容易理解吗?我告诉大家,佛所发现的人生真理,非常的简单,甚至简单到我说出来大家都不敢相信。佛自己当初悟出这个真理时也不敢相信,书上说,佛悟道后,不想也不愿把自已悟到的真理传授给别人,怕被别人耻笑。佛所悟的真理,以及49年说法传道的内容,其核心就是五个字:别胡思乱想。做人能做到不胡思乱想,他的内心就会变得清明安祥,烦恼痛苦也随之而去。佛经上所说的四万八千法门,数自己的呼吸也好,观心观空也好,念佛也好,拜佛也好,参话头也好,以及别的,只有一个目的,就是让人做到不胡思乱想。我们禅宗讲明心见性,想通了就好。同样是吃饭,过去是糊里糊涂吃饭,现在是明明白白吃饭;同样是睡觉,过去是七梦八梦睡觉,现在是踏踏实实睡觉。马祖禅师说,饥来吃饭,困来睡觉,就是这个意思。切不要以为,成佛以后就腾云驾雾,万人朝拜,或者其它不着边际的奇迹,那都是妄想,都是外道。
什么是禅?不要胡思乱想就是禅。
佛经上说,人身难得。世俗人生尽管没有意义,但一个人一辈子几十年时间,却是很珍贵的,我们通过学佛,通过努力修行,可以过上与世俗生活方式有别的另一种有意义的人生,那就是成佛。有人可能要说了,佛也是人么?是的,佛也是人,佛是觉悟了的人。所以经上说,众生是未觉的佛,佛是已觉的众生。切不要以为成佛以后,就是坐在大雄宝殿的莲花座上,香绕烟熏,万人朝拜。不是这样的。当年释迦本尊成佛以后,还是风里来雨里去,托钵游化一生。成佛以后,人还是那个人,只是他心理状态发生了根本变化,变得明亮宁静,没有任何困扰,生机勃勃,更有活力。
我们每天忙忙碌碌,上下左右,东张西望,而佛说不定就紧贴着我们背后,在窃笑我们的糊涂,我有时和人开玩笑说,只要我们突然来个急转身,就不定就能和佛撞个满怀。悟道成佛,随时随地都是可能的,古代、现代的禅师们开悟的故事不是很多么?不要把开悟想象成升天成仙 之类的,开悟只是平常事,就象放下肩上的重担一样平常。一个人人品正,一心一意地做人,就自然而然昌盛成佛了。"
我觉得很好理解,挺有道理,莫非我深具慧根?
一切苦恼的来源,往往是想太多了。心魔一除,一切皆可坦然视之。
昨天从同学那知道了个网站,校内网(www.xiaonei.com)。进去后才知道,注册和活跃用户非常多,光我们学校就有4000多人。流量很大,Alexa达到了1000多名。能做到这样,自然有它吸引人去提高它PV的地方。胡思乱想了些原因,纯属个人瞎谈。
1:域名的心理暗示
校内(xiaonei)这名字给人名正言顺的感觉,很好的域名推给了用户这么一个心理暗示:它是和大学有联系的正规网站,注册一下没错。接着在注册时候很聪明的稍加提示(方便找人与被找,该用真名),使得用户很自然的用真名去注册。
看过该网站创始人的访谈:“校内网严格限制注册,只对大学生开放。需要拥有XXX@XXX.edu.cn的学校邮箱或是在指定的大学IP地址范围内上网才能注册xiaonei.com帐号。这种机制保证了xiaonei.com用户的纯净,从而形成了校内网的特色,即“真诚”和“信任”——多数用户都使用真姓名、真信息和真照片。”
那就是说该网站的用户没有闲杂人员,用户很简单都是大学生,这个心理暗示鼓励同学大胆的写上真名。这是以后成功的关键。
(现在好像不用校内邮箱也可以注册了,大概是有了用户基础的原因。)
2:很有针对性的SNS服务
除了Web2.0SNS网站基本都有的功能(如个人页面、日志、相册、好友等)。此网站提供了很有针对性的聚类查找,譬如按"同大学、同院系、同高中、同地区",有了第一条“真名注册又是大学生,用户群体纯净单一而庞大”的前提,这就变的挺有意义了,查找的都是同学,来自同一处的谁不想看看有谁阿,毕竟上这么多年学,都有各自的地区、高中和大学。然后以此基础形成小圈子就更加合理了。
还有一个很有特点的功能就是"谁最近看过我的页面,我最近看过谁的页面"。该功能虽然比较消耗资源。但放在这里却是最吸引人提高它PV的地方。其实做为SNS网站,不说也明白,男的喜欢看看女的,女的喜欢看看男的,年轻的大学生尤甚,而这个功能提供了很好的YY作用,而且这里的用户不但男女都有而且都是同一背景的学生,就算看看以前同性的老同学或其他学校的同学,大家也愿意去click一下。所以,聪明的xiaonei以醒目的位置并且以照片代表用户,来告诉你你正在看的某同学还被谁访问过了, 以人链人,想不提高PV都很难。这比单单通过用户的好友去链用户要好多了。
在试用过程中,我留了好多言给以前的同学,前面说过的一些前提让留言很随意,就像手机短信比打电话好的优势在于可以表达无法用语言表达的话一样,对于以前同一学校很不熟的同学,没有熟悉到发过短信,那留个言嘛多随意。再者,就是我留过的言和同学对我的留言在我和对方的留言板都有显示。充实了留言页面又可以及时看见对方的反馈,这种互动又是个心理暗示。大家想想,在论坛发个贴,尤其发了好几个的时候,咱还得把该贴收起来,时不时回去看看又没有新回复,这多烦。
可见它对用户群体的习惯和心理研究的很透彻。
最后说一下,可能是程序里用户状态用的太多,在相册那里有很多bug。
咳。。就扯这么多,声明我绝对不是马夹。。
今天是好日子,终于接到IBM CDL的offer了,做为一个本科生能够以IBM做为自己职业生涯的起点,我很感激。回想参加这次校园招聘的历程,一次笔试三次面试, 历时将近一个半月,期待与煎熬并存。
大三结束,我们一行同学到了爱立信实习,先实习接着毕业后转正,差不多是这个规划。我被分在了Ericsson的Core Network,也就是核心网部门下的一个team,做的任务编写通信网交换机的命令文件。刚进去时候我兴趣很浓,经常找一些通信方面的东西来看,从通信网原理到公司的软硬件都看了个遍。那时的培训是充满乐趣的,和老外教练也相处融洽。可是毕竟Ericsson属于通信领域,我在心里还是想从事所擅长的软件行业,所以当在网上看到IBM 2007校园招聘的消息后,便决定一试。
小结:
一:技术背景是基本要求.尤其是Java, J2EE等相关技术,这方面一定要有积累。
1.Java 基础知识.
Java数据类型;面向对象:类与接口;集合类(Set,Tree,Map);Java修饰符:abstract,static,final
Java虚拟机;垃圾回收机制
Java线程与同步
Java异常处理
2.数据结构.
链表;二叉搜索树;二叉排序树;索引散列;排序算法
3.设计模式.
MVC;Factory;Observer;Proxy;Strategy等,不一定要23个全知道,但是重要几个需要比较熟并且项目中用过
4.数据库.
SQL语句(嵌套查询,联合查询,存储过程)
5.J2EE.
Servlet和JSP区别;Servlet生命周期;EJB;Web服务器和应用服务器区别;
Xml/Web service(XML解析技术; Xml-RPC;SOAP;WSDL);
一些常用框架:Structs,Hibernate等(除了会用,最好知道框架组件是什么实现的)
6.C++方面.
内存管理和面向对象是关键.
我笔试技术部分考的是C++,但面试基本问的是Java和J2EE
7.其他.
网络知识,七层协议,操作系统,编译原理.(基础课)
技术是无止尽的,很多是靠项目积累和思考.上面列的只是些知识点,需要灵活应用的,这些如果掌握了差不多的话,那IBM的笔试和一面中的技术部分就没什么问题了.
二:软件工程的知识.像一些软件开发方法;Teamwork;软件测试:黑盒,白盒,测试用例怎么写等.
三:要有几个自己做过的拿的出手的项目,有难点有创新,可以用来做介绍和应付问题的 .
四:要了解公司的价值观,战略和业务产品.
五:英语口语表达能力非常重要,每次面试都可能出现英语交谈.
六:面试时无论中文回答还是英文回答都要有条理有逻辑.尤其是面对一些open question,像职
业规划;兴趣;挫折;你的优点是什么;弱点是什么;你为什么选择IBM;他们为什么要招你等.
七:要能够自我激励,大公司校园招聘周期会很长,在等待的日子里也要不断吸取知识.笔试过后是一面然后是二面最后是终面.每次到下一轮都是至少一周到两周的等待. 即使面对的是可能再也不会来的下一轮通知,也不能放弃.一个人什么都可以输,就是信心不能输.
这周去了趟南京,把大三住的房子退了,走的时候一片狼藉,为了房东不拖欠我们一个月的押金,就靠我和小个里里外外收拾房间,那个累阿. 晚上小个回宿舍,我还是睡在那房子里, 睡也没睡好, 因为东西都搬掉了,没被子,只好把衣服脱了盖衬衫睡, 被蚊子一直咬,咬的我只好穿长裤睡,真可怜.....回去两天办了好多事,都清掉了. 比较幸运的是把原来 "主板键盘触摸板坏了, 硬盘也被我拆了" 的打算扔掉的lenovo笔记本给卖了, 价格还不错, 用了点小trick , 就卖给了珠江路的JS.....具体过程省略,想知道私下教...
同时又买了个nano, iTunes我用的太顺手了, 苹果的SW做的很人性化...
把同学的mp3 库拿了过来,发现了一首不错的说唱, mockingbird, 想学,但是太难。。
不想说什么了,这样的意大利也能夺冠。 看到马特拉齐的嘴脸就想到卑鄙小人, 不可否认,他是很聪明的一个让人恶心的搅屎棍。 一个足球场上的大师,一个带领法国进入决赛的英雄,一个即将结束自己足球生涯的人,本来有一个完美的收场,但是就这样被马特拉齐给破坏了!就因为这混蛋故意侮辱齐祖的家人。 齐达内不应该顶他,应该踢死他。
如果不换罗米, 如果门将没受伤, 如果梅西能够上场, 如果索林守住位置, 如果.... 没有那么多如果.... 足球就是足球, Argentina,don't cry for me.... 走好...我的世界杯结束了
世界杯要开始了,在chinaren看到一个好帖子,是我最喜欢的巴蒂, 转贴一下,同时也希望程序员朋友们表要太辛苦了,该放松就放松放松.HIA HIA..~
四年一度世界杯又将在德国重燃战火,32强将为了这个,象征着世界足球最高荣誉的金杯,发起冲击。在此,我谨想抒发内心对足球的爱,感激那个让我了解足球,深爱足球的人,是他让我知道了足球的艺术,是他给我带来了足球的乐趣。他就是:加布里埃尔·奥马尔·巴蒂斯图塔
一代巨星巴蒂斯图塔正式宣布退役已有一年多的时间,曾几何时笑傲沙场的战神今也已离去多时。谨以此贴怀念昔日的英雄,也希望我们永远记住战神给我们带来的精彩瞬间。
战神-我们依然怀念你
2005年3月13日,36岁的阿根廷著名球星加布里埃尔·奥马尔·巴蒂斯图塔已在卡塔尔正式宣布挂靴。 一直征战卡塔尔联赛的巴蒂斯图塔在卡塔尔首都多哈接受阿根廷国家电视台“第七频道”采访时作上述表示的。 巴蒂斯图塔说,退役后他将继续从事足球事业,并表示争取成为一名足球教练员。就在04赛季,巴蒂斯图塔以25粒进球成为卡塔尔联赛的最佳射手。
有人说:没有马拉多纳,二十世纪的足球是不完美的,是残缺的。 可是出生在80年代的我,根本没有机会欣赏到马拉多纳那像上帝一样的表演,可是我心目中的二十世纪的足球依然完美。因为还有他--加布里埃尔-奥马尔-巴蒂斯图塔(gabriel omar batistuta)一位身背吉他手持长枪的激情战士,那个永远的战神。 1969年2月1日,巴蒂出生于阿根廷艾弗拉内达。在这个曾经诞生过格瓦拉的国度中永远流淌着浪漫和激情天性,以及一种无法言语的气质。 1991年夏天,巴蒂转会到了佛罗伦萨。在这的曾经欧洲文化的中心,他用他的射门和进球演绎了英雄的10年。 1996年2月1日,在佛罗伦萨球会官方杂志《紫百合》主编孔太的倡议下,一颗新星终于以巴蒂的名字命名。孔太说:“巴蒂生日那天,在位于美国伊利诺伊州的国际行星注册处,我们注册了这颗星星。这颗行星位于天兔座,靠近猎户星座。巴蒂从未获得过足球先生的荣誉,我们想借此让他名垂史册。”同年,一尊巴蒂的塑像被竖立在佛罗伦萨俱乐部的边上。2000年5月,他离开了效力10年的佛罗伦萨。来到了罗马,得到了他的第一个意甲冠军。其实,佛罗伦萨人多虑了,虽然巴蒂在佛罗伦萨几乎没有得到任何荣誉,可是一提到巴蒂,人们想到的就是那个身批紫色战袍,一手握着角旗怒吼的战神!那头飘逸的长发,力拔山兮气盖世的勇猛,气吞万里如虎的射门,多少门将为之胆寒。这决不仅仅是冠军能够得到了。星星和铜像决不能是人们记住巴蒂,巴蒂却可以让人们永远的记住那生命不息,战斗不已的精神。 多少年了,我已经习惯了巴蒂在禁区前的怒射,习惯巴蒂乱军之中的头球,也习惯了他飘逸的长发和进球后的激情。 可是那天,当我清楚的看到裁判举起的电子牌上是19号和9号,9号巴蒂要下了!这是他在阿根廷队中的第一次当队长。难道也是最后一次吗?瑞典人挡住了阿根廷前进的脚步,挡住了巴蒂前进的脚步。 比赛结束后,巴蒂站在场地边上,默默的,静静的,仅仅是站在那里。没有眼泪,也没有抱怨。有的仅仅是那挺立的胸膛和散乱的头发。 那个时候,我知道,他老了。 年轻的巴蒂谈笑间,取上将之首级,温酒刻,斩对手于马下。 那时的我,为了一张紫衣战神的海报,辗转于酷热的夜市中。 现在,我已经不会在为了一张海报,跑到老远的夜市上了, 现在的巴蒂,也已经不负当年之勇。 可是曾经代给了我快乐,感动的巴蒂是永远的战神! 伟大的巴蒂,永远不是最伟大的巴蒂。巴蒂不是伟大的,因为“伟大”已不够修饰他。他是神!“伟大”对神来说太平庸了。 千古江山,唯那凌空一脚消魂。 万种风情,有此战神无敌称谓。
巴蒂的个人资料:
姓 名: 加布里埃尔·奥马尔·巴蒂斯图塔
场上位置: 前锋
英文姓名: Gabriel Omar Batistuta
球衣号码: 9
出生日期: 1969-2-1
出生地点: 阿维拉内德
身 高: 185 cm
体 重: 73 kg
代表国家队出场次数: 78
代表国家队进球数: 59
[曾效力俱乐部]
卡塔尔
阿尔·阿拉比队2003年8月1日 至 20053月13日 36场26球
意大利
国际米兰 2003年1月22日 至 2003年7月30日 19 场 6球
罗 马 2000年5月30日 至 2003年1月21日 53场 33球
佛罗伦萨 1991年8月1日 至 2000年5月30日 269场 168球
阿根廷
博卡青年 1989年11月30日 至 1991年5月30日 29场 13球
河 床 1989年8月1日 至 1989年11月30日 7场 4球
纽维尔老男孩 1988年9月27日 至1989年7月30日 16场 4球
[所获荣誉]
1991年美洲杯/最佳射手、
1992年法赫德杯、
1993年法兰奇杯、
1993年美洲杯、
1994/95赛季意甲联赛最佳射手、
1998/99赛季意甲联赛最佳射手、
1995/96赛季意大利杯/超级杯、
2000/01赛季意大利甲级联赛冠军、
2003/04赛季卡塔尔联赛最佳射手
[其它资料]
昵称:巴蒂
外号:战神
惯用脚:右脚
婚姻状况:已婚,
妻子:伊莲娜(Irina)
孩子:蒂亚戈、卢卡斯、华金、哈立德
父母:奥斯玛尔、格洛丽娅
三个姐妹:埃丽亚、阿莱亚德拉和加布莱拉
爱好:打猎 、钓鱼
最喜欢的车:可以和奶奶兜风的吉普车
最喜欢的歌手:帕瓦罗蒂
最喜欢的颜色:蓝色
这是我所知道和收藏的所有关于巴蒂的资料,希望与所有热爱足球,热爱巴蒂的球迷们一起怀念这位伟大的球员。
没有夺得过一次世界冠军,没有夺得过一次欧洲冠军杯,没有夺得过一次世界杯最佳射手,战神就这样的黯然离去了!
但是在我们心中,你是最好的球员,无论你的人品还是球技,都博得了世界的尊重,我们将永远爱你! 希望大家能支持我,帮我顶一下,谢谢大家!做人要厚道呀!
这几天借同学硬盘用,发现里面有部日剧<一升的眼泪>. 关于此剧,他曾写过文章.其"眼泪流的满脸都是" 一直被我鄙视....
不过从不看日剧的我,居然也把它看完了, 还真感人哇, 其实主要是女主角比较PL ...没想到日本人虽说变态,居然也能拍出感情这么细腻的电视剧....
主题曲也很不错~:
开始用hibernate前,最好了解一下这两个概念:
1:软件模型
*概念模型(软件分析阶段):
模拟问题域中的实体.仅描述实体的概念,属性和各实体间的关系.ll
*关系数据模型:
实体对应的数据库中的表.面向关系的
*域模型(软件设计阶段):
在概念模型基础上创建,由域对象(Domin object)或称为业务对象(Bussiness Object)组成.是真实世界的实体的软件抽象,面向对象的.
主要有"实体域"和"过程域". 可以这么说:
实体域是业务数据在内存中表现形式. (譬如客户,定单等)
过程域执行业务逻辑.
2: ORM 对象关系映射
对象---关系映射,也就是映射"域模型"和"关系数据模型". Hibernate采用xml来映射对象类和数据库表.
Hibernate 就是用来处理"实体域"对象的持久化,那么什么是持久化?什么是持久层?
*持久化:就是将在内存中的实体对象永久保存.
*持久层:就是把对象从内存中持久化到数据库,文件等的数据库操作层,为业务逻辑层提供了面向对象的API.
传统的三层架构:表现层,业务逻辑层,数据库层. 用了Hibernate后.现在是在业务逻辑和数据库之间加上持久层,该层是通过配置文件自己生成的.
关于ejb方面的持久化,像CMP和BMP我不了解,也没试过,概念实在太多,但查阅了相关资料,觉得hibernate属于纯java环境,不象EJB 每个厂商都有自己的容器.所以开发者要针对每种容器做开发,有很大局限性,而Hibernate可以运行在任何环境下.
用Hibernate的好处:
1:程序员只需要关心业务逻辑.不用自己手写sql代码,这样会带来无法重用问题.譬如改变数据库结构或改变需求的时候我都要重写访问数据库代码.
2:支持多种数据库平台.
讲了那么多,该谈谈怎么用了. 关于 Eclipse 中的开发实现: 下次再谈
由于公司mysql数据库编码改了,从latin1到utf-8, 所以打算把lucene搜索重写一下.
关于java的编码问题相信不少人都困扰在此.尤其是要配在linux环境下.我以前就是搞的非常痛苦.看这里
现在换成utf-8,最适合java了,下面是几个原则,遵守了就没问题了:
将Java/J2EE系统的统一编码定义为UTF-8。UTF-8编码是一种兼容所有语言的编码方式,惟一比较麻烦的就是要找到应用系统的所有出入口,然后使用UTF-8去“结扎”它。
一个J2EE应用系统需要做下列几步工作:
开发和编译代码时指定字符集为UTF-8。JBuilder和Eclipse都可以在项目属性中设置。
使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding("UTF-8")
网上有此filter的源码。
在JSP头部声明:
在Jsp的html代码中,声明UTF-8:
设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
一般数据库都可以通过管理设置设定UTF-8。
其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等。
创建的索引的编码就是从数据库读出的数据的编码.
编码问题很快就解决了,可是分页出了点问题,导致我胡思乱想,假设了N种情况,后来发现,原来都是幻觉.. .算了,不说了.
http://search.ci123.com/
昨夜又是一个通宵.现在我头狂痛,但是. 我们终于完成了.... 在被刺激后,一夜之间解决了好多问题,现在
大文件的分包算法终于搞定了,这是结对编程出现的结果;
BUG修复完成了,譬如Hashtable枚举线程不安全问题.
画图加了功能;
多份文档完成了;
安装程序制作完成,跑得很流畅,装起来还像模像样的;
我们一起努力了七天..不容易阿....
ps:推荐web开发者使用firefox浏览器调试网页,效率更高。下载地址:
昨天晚上博客园挂了,今天补一下昨天的日记.同时今天是我的阳历生日(1985 3.7---->2006 3.7),庆贺一下
今天大家还是像一个被阻塞的线程,无法前进.对难题仍然比较茫然,譬如昨天遗留的传递序列化对象的问题, 今天怎么调试都不稳定,有时可以有时就老是出现此错误
未处理的“System.Runtime.Serialization.SerializationException”
类型的异常出现在 mscorlib.dll 中。
其他信息: 二进制流不包含有效的二进制标头,这有 0 个可能的原因,
如无效的流或在序列化和反序列化之间的对象版本更改。
本来以为是客户端采样数据的问题. 后来经过多次修改测试程序排除一个个可能性, 终于发现是属于socket传输在缓冲区内TCP数据没有分界的原因. 当传输数据过快时候 造成数据在缓冲区内连在一起 , Socket会把它做为整块数据取出 , 反序列化时候自然就出错了.(我是这么理解的) . 然后我们就在传输的每个要发送的序列化对象byte数组 前加上该数组的长度, 在服务器端读的时候先读出该长度,然后根据长度再读出对象就可以了.
还有不少东西没有完成,就剩一天了,大家今天打算早休息,明天早点开始,完成程序,把文档,安装程序做了.
已经第五天了,今天好像没什么效率, 感觉很伤神,也比较劳心,脑子嗡嗡的.
服务器端是差不多了.现在比较担心客户端, 因为实在是太困难了, 又要分析多种高层协议,又要组合包提取二进制流,又要判断类型...连防火墙都没有做那么多事. 这里还没说要把监听分析出来的流发到服务端等. 我们查了那么多资料也没见有这方面介绍的.要不就是偏于理论,要不就是讲来讲去就是说如何监听包的, 就算是分析也是分析IP头和TCP头, 没有介绍如何组合包的. 凭我们几个用google几年的经验,就是这方面搜索引擎是搜不到了,就算有也是人家商业产品的专利, 我们只有自己做了. 小宇和张赟是做客户端, 加油~
今天晚上大家包夜加班了,不打算睡了.这几天过去我肯定会瘦好多, 而其间的经历也算是一笔有价值的财富. 附照片一张:

今天好累, 到这时候我手已经抬不起来了.
服务器端已经结合了jht的DAO部分, 虽然在联合的时候发生了小小的意外,但幸亏发现这个bug所花的成本并不高,看来单元测试还是需要做的彻底.
联合了DAO部分后, "接收异步binary, 触发界面事件, 判断恶意代码,存取数据库" 等功能应该算是比较紧凑了.
今天比较高兴的是在"多线程, 类交互, 和挂载事件"等方面有了自己的收获,因为多线程对稳定性要求比较高, 所以今天又重构了不少昨天的代码, 能够把设计模式学到的东西运用到实际中来,很开心.
晚上的时候我把界面弄好了, 下面就差song的画图部分,服务器端应该就可完成了,明天应该可以吧. 这个界面感觉太简陋了, 截了不少图上去, 毕竟时间少,任务重,脑子累...
服务器UI:

今天大家开始动手编码了,还是合并包的难点没想到解决办法,但是为了不耽误进度,我们就没有多停留在此,继续前进.
今天我写了服务器端的异步监听和接收的部分, 测试已经通过. 同时Nunit也写了几个单元测试程序. 关于可疑包的特征码对照还要想个高效的办法. 有不少类都采用单例模式.这样比较节省资源. 譬如异步监听的主类就采用了一个单例, 异步接收客户端发包的类就不是了,一个连接客户一个异步接收类. 觉得做网络编程,最主要的就是节省资源, socket要有开有关~ 明天有空就要开始设计UI了,同时有些文档也要及时跟进了..
今天大家继续往前走, 查阅资料攻克难点. 在获取解包的基本数据上基本已经没有问题.用原始套接字(RAW SOCKET) 监听网络包, 一层层的剥离IP头,传输层协议头(TCP,IP) , 采用unsafe(不安全代码),指针,位移获取数据. 但是最郁闷的是不知道如何将一个完整文件的多个分散的包合并起来, 就是分散包的重组.
理论上说, 我们想IP头应该有些属性可以用来作为包合并的依据的,而就像很多资料里所示,我们猜想是正确的:
Identification

识别码(ID)。每一个IP封包都有一个16bit的唯一识别码。我们从OSI的网路层级知识里面知道当程式产生的数据要通过网路传送时都会被拆散成封包形式发送当封包要进行重组的时候这个ID就是依据了。

Flag

标记(FL)。这是当封包在传输过程中进行最佳组合时使用的3个bit的识别记号。请参考下表
000. 当此值为0的时候表示目前未被使用。
.0.. 当此值为0的时候表示封包可以被分割如果为1则不能被分割。
..0. 当上一个值为0时此值为0就示该封包是最後一个封包如果为1则表示其後还有被分割的封包。

可是我们找了许多分析包的工具,CommView,Packetyzer等,测试时候都没有发现这些属性能够有用,非常郁闷,
留下次难点,我们今天还是按照计划, 完善了测试用例, 设计了类图和接口, 并进行了分工,明天继续.
为了挑战一下自己,同时给大学生活不留下遗憾, 抱着试试看和希望体验一下规范的软件开发过程的态度, 我们小组一共五人报了趋势百万程序大赛.
今天中午拿到了比赛试题,需求很复杂, 相当于做一个网络防火墙,开始感觉一筹莫展,没有什么概念,后来大家查阅了大量文档,然后又多次讨论,总算摸清了点门路.
关于这次比赛我制定了一份开发时间计划表,打算采用测试驱动开发保证代码稳定性.也希望能够按照计划一步步进行
我们采用C#,第一大家比较熟. 第二比VC++简单开发比较快
开发工具:visual studio.net 2003
开发语言:C#
单元测试工具:Nunit
版本控制工具: Tortoise SVN
3月1日,3月2日:
1:分析试题,列出功能点
2:设计详细测试用例
3:设计类,接口
4:完成系统详细设计和部分设计文档
5:模块分工
3月3日, 3月4日:
1:功能代码编写
2:单元测试代码编写
3:完成各自的Test manual
3月5日,3月6日:
1:系统集成和测试
2:修改bug
3月7日:
1:完善文档
2:制作安装程序
3月8日:
最终提交
PS:
1:采用TDD:为每一模块建立一个测试工程,模拟与之交互的另一模块的接口进行测试代码编写, 引用功能代码的DLL,然后编写功能代码.
2: 组员要求:
第一, 没有拿奖不要紧,大家要努力: )
第二,一定要做完
第三,比赛的时候不要受其他事情干扰
整体来说,今天大家按照计划完成了要做的事, 我们在多次讨论中清晰了需求, 列出了该项目的功能点和难点.初步建立测试用例,
明天要完善测试用例,同时设计好类和接口,然后分工,任务还是很重的,加油!
今天也写了部分测试代码,以下是客户端监听网络上的数据包的 (协议 IP 端口)

这里包括了内网和外网的数据包, 传输层协议TCP,UDP可以获取,但是如何获取应用层的协议HTTP,FTP等是个难题, 目前想到的是通过端口
来判断,但不知道还有没有其它方法了,明天还要查资料.
ps:推荐web开发者使用firefox浏览器调试网页,效率更高。下载地址:
我们的模糊数学老师 是个牛人! 吹牛狂人
早就从上一届人那边听说模糊数学老师很好玩 , 这星期第一次上课,果然名不虚传:
韩老师经常说: 0 谁谁谁问了我一个问题,我马上反问了他几个问题,过了几分钟他对我说:韩老师,我懂了! 1 喂喂喂……,喇叭怎么不响拉?……哦,好,谢谢!(出现频率40%) 2 哎,你们坐后面的还看的见啊?前面不是有座吗?你们不坐前面等会我专门提问你们最后一排的,………………哦,反光啊!!(50%) 3 啧,作为一名老教师,我觉得这样太过分了!!!(30%)(经典) 4 很好!相当出色!几班几号?(80%) 5 啧!我觉得这个讲台设计的有问题!(10%) 6 这本书不行!真的不行!你们最好都听偶讲!那个书不要看,跟我走。(20%) 7 那天有个公司的老总请偶去给他们讲课,我说可以,但是听课的必须是高级工程师以上的……我连讲3个小时,最后一分钱不收!(20%) 8 我曾经给省内大部分的高校老师上过模糊数学……(20%) 9 我的研究生,现在在荷兰…………………………(30%) 10 上一界有同学找我,说:“韩老师啊,我线代不行哎,你带偶补补来~” 我那天给他连补一个下午,过几天,成绩出来了,80多分,他看了,相当开心,啧,相当开心!(10%) 11 我们从下次开始,连测三次!(10%)(经典) 12 这种题目嘛,只要两步就出来了!只要两步!三步都不要!(80%)(经典) 13 我给你们两个承诺!只要你们给我一个承诺!(10%)(经典) 14 你们有问题来问我哎!我一定给你们一个完满的回答!!(30%)(经典) 15 这道题做对的举手!恩,不错!有80%……(其实只有20%)(70%) 16 希望大家以后都报名选修模糊…………(30%)
OH,FUZZY! 加几个: 1.参加一个国际型的研讨会,下面全是牛人, 我做的报告受到了与会者的热烈欢迎,掌声雷动 2.那位同学在它的研究中加入了模糊的方法,得到了领导的赏识 3.别的好多研究生要求我给他们开模糊课,我都没有睬他们,为什么?我只对软件学院感兴趣,软件学院的本科生……我是很有感情的…… 4.模糊的东西讲完了,下面就是你们这些软件高手们的事了 5.我给你们院的很多本科生,研究生写推荐信,去美国的,去澳大利亚的,去爱立信的全是我写的 ...
(补充中..)
摘要: cakephp的model关联复杂,需要一个model的数据时,其它相关联的model都出来了,造成smarty循环打印数据不方便实验了一会,发现用samrty里的section语句可以达到.还是比较麻烦的.假如想得到" LinkCategory表" 下的分类的名字, 和与该分类相关联的" Links表" 下的item. 输出为 分类一itemitemitem ........分类二itemite... 阅读全文
编译原理课上老师要求写的实验程序, 共享给需要的同学参考一下.
课虽然上完了,程序还是有点用的,不发出来可惜了, C#实现,内有文档.
下载:
词法分析器
语法分析器
PS:如果能帮到你,就留下一言半语吧。: -)
看到很多人做lucene的应用时候都要面临中文分词怎么加的问题,下面介绍一个简单的中文词库,这个词库附带相应的算法,数据结构学过的人看懂没什么问题,只要简单的构造一个对象,就可以分词了,对于不是太大的应用来说,还是相当可行的,点击下载
该分词库使用很简单,先初试化该类
ChineseSegmenter seg = ChineseSegmenter.getGBSegmenter();
然后调用seg.segmentLine("要分词的中文段", " ")//第二个参数为分词之间以什么间隔
譬如
public static void main(String[] args) throws Exception {
ChineseSegmenter seg = ChineseSegmenter.getGBSegmenter();
System.out.println(seg.segmentLine("儿童节日", " "));
}
输出为儿童 节日 儿童节
下面简要说以下如何加到搜索代码里,
lucene 建立索引的代码引入的analysis分词法为 WhitespaceAnalyzer
import org.apache.lucene.analysis.WhitespaceAnalyzer;
IndexWriter writer = new IndexWriter(Directory, new WhitespaceAnalyzer(),true);
public void AddDocument(String Title , String Content , ..)
{
Document doc = new Document();
ChineseSegmenter cs= ChineseSegmenter.getGBSegmenter(); //初始化该类
doc.add(Field.Text("content", cs.segmentLine(Content, " "))); // 将分好的词写进索引
doc.add(Field.Text("title", cs.segmentLine(Title, " ")));
try
{
writer.addDocument(doc);
}
catch(IOException e)
{
System.out.println("wrong");
e.printStackTrace();
}
}
上面建立索引时候为把文章的标题和内容进行断词然后存入了索引, 搜索的时候同样用WhitespaceAnalyzer,
然后把结果hit中的结果合并就可以了.
Web开发中适当运用一些弹出子窗口有很多好处,可以节省页面设计代价,获得好的用户体验,在最近项目开发中我遇到了几个父子窗口的问题,现在整理给大家,希望有所帮助.
情景一: 打开某一子窗口, 子窗口中任一按钮点击时候不能弹出新页面,进行完操作后,关闭该子窗口,刷新父窗口.
1: 页面A:父窗口,其中有一个打开子窗口的链接,<a href="#"onclick="open()">页面C</a>
A中有如下js代码:
<script language="JavaScript">
function open()
{
window.showModalDialog("页面B");
}
</script>
2: 页面B,此为中间页,起过渡作用
B html 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>**</title>
</head>
<frameset rows="0,*">
<frame src="about:blank">
<frame src="页面C">
</frameset><noframes></noframes>
</html>
3:页面C ,要打开的子窗口.
它关闭时候刷新父窗口很简单,只要把A中
<a href="#"onclick="open()">页面C</a> 改为
<a href="页面A"onclick="open()">页面C</a>
情景二:打开某一需要用到activex控件子窗口, 子窗口中任一按钮点击时候不能弹出新页面,进行完操作后,关闭该子窗口,刷新父窗口.
此时候就不能用 window.showModalDialog()事件打开模式对话框了,因为activex控件会报错,必须用window.open()
1: 页面A:父窗口,其中有一个打开子窗口的链接,<a href="#"onclick="open()">页面B</a>
A中有如下js代码.
<script language="JavaScript">
function open()
{
window.open("页面B",'upload', 'height=400, width=420, top=0, left=0, toolbar=no, menubar=no,scrollbars=no, resizable=no,location=no, status=no');
}
</script>
2: 页面B,要打开的子窗口,关闭时候触发window.opener.location.reload();window.close();即可刷新父窗口并且关闭子窗口.
情景三:打开某一子窗口, 让用户选择要添加的东东,譬如要添加到文章里的相片选择后关闭子窗口,然后选择的东东出现在父窗口里.
在下图中,我点击"添加照片"链接然后弹出子窗口,在子窗口中选择后点击"添加照片"按钮,子窗口自动关闭,并且父窗口"已添加照片:"下面列出了我选择的照片。


实现方法:类似情景一需要中间页面B , 只是子窗口C中点击"添加按钮"时触发的js事件中,除了获得选中的checkbox的值外,还要把获得的值回传给父窗口,传值回去的代码如下.
window.parent.returnValue="选中的checkbox";
window.parent.close();
而父窗口要捕获此值就要在情景一中所说的open()事件中添加获得返回值
<script language="JavaScript">
function o | |