2010年12月31日星期五

火车杂谈录

火车坐的多了,遇到过形形色色的人。大多数的是外出打工的人,三三两两的坐在一起,说笑东西。南来的北往的好不热闹。一般坐火车我不怎么说话,也没有人找我说话,我只是当个听众直到下站。

坐在我右边过道的对面是个中年人,不论年纪和相貌像极了2010年的诺贝尔和平奖的获得者(以下简称为A),只是没有戴眼镜。坐他旁边的是年纪稍小的青年人(以下简称为B),对面的是个女大学生(以下简称为C)。下面是他们间的对话:


B:你是干什么的。

A:农民工。

B:怎么看也不像啊。

A:其实也差不多,在工地上,是做项目的。

B:哦。

A:小伙子,你是干什么的。

B:我现在也是做项目的,以前当兵的。

A:当兵感觉怎么样?

B:还行。

A:如果让你们过去打台湾,你愿意去吗。

B:如果让我去还是得去的。

A:我是说如果自愿的呢。

B:自愿的。呵呵,那还是得去的。

A:要是我就不会去。

B:为什么。

A:让那些当官的吃香的喝辣的,让老子我去送死,我凭什么去啊。

B:现在的共产党确实没以前好了。

A:你看台湾多民主。台湾的社会确实比我们这边好。

B:可能是蒋介石去台湾带过去很多宝物,所以台湾才比我们发达。

A:其实蒋介石是个很慈悲的人,他人心很软,信奉基督教。他不忍心这些宝物被破坏才带走的,当时想着反攻大陆的。不然的话这些东西在文革中可能被破坏的了。

B:他们带过去也是据为己有的。

A:不会的,他们在台湾建了个故宫博物院。

B:现在建好了吗。

A:很久以前就建好了。

B:那宝物在运送途中应该被偷走不少吧。

A:应该不会的。我去过台北的故宫博物院,看到一个很小的樱桃,只有大手指的指甲盖那么小,有六扇窗户,每个窗户里有一个人。试想这么小的东西,当时有人藏一颗放在衣服里谁会发现啊。像这么小的东西还有很多,还有手大的小白菜什么的。

B:……

A:其实国外还是挺好的,我去过XX(注:没听清楚)。那里的人出门就不用关门的,当时导游和我们说,这里人很朴实的,很少有盗窃的事情发生。人们过得都很好了,政府福利待遇好,为什么要去行乞和盗窃啊。以后多出去看看就知道外面的世界是什么样子的了。

B:为什么你不出去。

A:语言不通,到那里什么都听不懂就很麻烦的。还有,我是很爱国的。其实真的到了国家受到侵略了,我还是会报效国家的。

A:小姑娘,上大几了。

C:大四了。

A:学的什么,该找工作了吧。

C:学的会计。

A:那可以考些注册会计师当个会计的呀。

C:我不想当会计,想进银行。

A:现在的银行不好进的,至少是一本毕业。

A:以后想呆在哪里呢。

C:想在杭州。

A:女孩子在大城市还好,男孩是千万别在。

B:为什么呀。

A:男孩子还是回老家,在大城市什么时候能买得起房子啊。我有个亲戚,也是刚大学毕业,说是想呆着上海,被我撵回家了。男孩子呆着大城市连老婆都讨不到,女孩子还好,可以找个有钱的人嫁了。

C:可是有钱人不一定好。

A:是啊,可没有钱谁嫁啊。

A:现在的大学生还都眼高手低,我招的一个大专生,发票都贴不好,教了四五遍了还不会。我就问他,你都是怎么毕业的呀。

A:他还整天说工资低了,也不知道自己值多少钱。

A:我老板总说我们招的人用着不行,说招不到好的了。我就和他说,我们当时不也是你招进来的吗。这也难怪,扩招把学生的质量都降下去了。以前我们画图都是手工画的,很费劲的,现在他们用CAD都做不好。

A:其实有钱也不一定好,现在的社会人的幸福感没有了,生活压力也大。上一次同学聚餐的时候,有个女同学还做了个试管婴儿,听说还做成功了,花了好几十万。

……

有感于韩寒被删博文

我不止一次看到过“韩寒被删博文”。是的,韩寒的文笔好、思维敏捷,文章畅快肆意。绝大部分文章在当下是不可多得的。然而有些文章存在时间并不长,有的过了几天几个小时就会被删除。还好我们有RSS订阅,被抓取的文章即使被删除也会完整地存放在订阅器中。不过对于那些刚发表就被删除还来不及被订阅器抓取的文章,也就杳无声息地消失了。还好,韩少的粉丝多,总有人盯着他的新浪博客,一旦有新文章出现就会第一时间保存及流传出来。这也避免了韩少重复发表又重复被删除的劳作,节约了大量的劳动力。

可是大多数人的知名度并没有韩寒高,辛辛苦苦写的文章,还没来得及流传开就被删除掉了。对于“强烈谴责sina连续三次删除本人博文!”这样的事情时有发生,我们能做的只能是无奈及谴责。这其中不乏有价值的文章,从此也不得见了。

删贴删文章,从根本上说是对知识产权的侵犯与不尊重,只是自古到今从来也没有得到尊重过。“文章千古事,得失寸心知”,我们需要更多更好的文章,而不是一味地叫嚣与谄媚。

2010年12月30日星期四

浙大附属义乌医院之面见

临近毕业,面临就业。2010年12月23日,接到0571打头的电话,原来是浙大附属义乌医院人事处通知考试的电话。电话里说我的简历通过了筛选,问我能否在12月27日到杭州参加笔试和面试。对方又询问我是否有笔记本电脑。我说没有,她解释说,没有的话,我们这边会为考生准备台式的电脑,到时候要用PPT做幻灯片。

挂了电话,突然想起自己大约一个月前在网上投过这家医院的简历,这么久过去了才通知考试,确实有点意外。不过也没敢大意,因为要用到PPT,赶紧又到图书馆借了几本书把PPT知识的点点面面又好好复习了一下。顺便上网查了一下医院的大体情况。浙江大学医学院附属义乌医院是由浙江大学和义乌市政府合作创办的医院。浙江大学附属的医院已经有浙一院、浙二院和邵逸夫医院,义乌医院是第四个浙大附属的医院。前几个附属的医院现在发展的都很好,义乌医院在浙大的管理下和义乌市政府的支持下发展前景也是可预见的好,医院的目标是三甲综合性医院,经过十年左右的时间建成辐射浙中区域最重要的医疗中心。

提前一天到了杭州,第二天一大早坐车去考试地点,因为住的地方离那里有些远,再加上杭州早上的上班高峰期人又比较多,等我赶到考场已经八点半了。不过工作人员很热心地给我安排位置坐下,发给我两份资料,并安慰我说,不要着急时间还很多。

这两份材料都是关于医药改革的,一份是国务院的文件,一份是浙江省的文件。考试的要求是归纳整理文件的内容,形成思路并做成PPT以便下午的讲演。

两份厚厚的文件读完时间已经过了一大半,然后就抓紧时间做PPT. 期间工作人员一直给我们添水倒茶,医院和学校的领导也经常过来视察。

上午的考试结束后,每位考生可以免费领取一张学校食堂的餐券。我中午吃的是两荤两素,学校的伙食还挺不错的。吃过饭在华家池校区溜达了一下,坐在湖边的椅子上晒了会儿太阳。

下午的考试分为两个部分,一部分是心理考试,一部分是PPT的讲演加面试。心理考试很简单,也就是选择“是”与“否”。

面试考场里有学校和医院等数十位的领导,我做过PPT的讲演之后,考官们开始问一些问题,有些专业的问题,比如数据库的优化、UNIX系统等。还问了些其他的问题,比如为什么会选择我们医院、怎么更好地学有所用等。面试的气氛感觉很和谐,考官们也没有摆出严肃的姿态。

所有人面试结束后,在一起聊天等成绩。大约半个小时后,成绩出来了,由人事部部长公布参加体检的名单。我估计参加体检率在3:1左右,竞争还是比较大的,结果当然是几家欢喜几家忧。

很荣幸我在名单中,医院组织第二天的体检,为了照顾远道而来的同学,外省的同学体检费全免。

整个过程可以看出领导们很重视这次招聘,工作人员很热心和耐心对待考生,义乌医院的组织管理也很合理,整个招聘过程十分人性化。

2010年12月27日星期一

排酸肉

周末不上班,想自己做个土豆红烧肉,便去小区附近的通州国泰百货买五花肉,奇怪的是,卖肉的专柜里贴的标签,对应的位置注明的不是“五花肉”,而是“排酸肉”。

没空仔细问,反正就这一种肉长的像传说中五花肉。抓紧时间,挑了几个土豆就赶紧结账回去了。

其实我自己从来没有做过红烧肉,只是一直很喜欢吃。一个人随意发挥,手忙脚乱,折腾了半个多小时,终于把土豆和五花肉都弄熟了。

“煮熟了”就是我做菜的标准。要求很低,能力有限。最后想起来还没有放调料,赶紧翻出了盐和酱油翻了几下出锅。

自己尝了一块,感觉还挺香的,很好吃,出乎我的意料。合租的杨姐吃了以后连连称赞,一直在问,你是用什么锅做的?是我们家的锅吗?你都放了什么调料呀?为什么这么香?为什么肥肉肥而不腻呢?

有些飘飘然了。

晚上上网,想起这个名字,便在谷歌里查了一下。
我们平时所吃的鲜肉,在动物宰杀后肉温升高,成为细菌的温床。另外,肉的硬度增加、嫩度降低,风味、口感不佳。很容易受到微生物的污染而腐败变质。但如果在牲畜被屠宰后及时进行冷却处理,使肉的温度在24小时内降到0℃—4℃,并在以后的一系列加工、流通和销售过程中始终保持这个温度,就能够抑制肉中酶的活性和大多数微生物的生长繁殖,使肉的纤维结构发生变化,肉好熟易烂、口感细腻,营养的吸收利用率也高,口感更好。这就叫肉的排酸过程。

原来如此。一下子恍然大悟,菜鸟级的我明白了为什么做出来的肉很好吃了,原来是它自己的原因呀。当时做的时候,我还一直有些担心肉先下锅,把难熟的土豆放在里面一起炖的时间太长,会把肉炖过头,变得很硬,不好吃。结果被我炖了那么长的时间,肉质还是很嫩很软。

不过现在的食品安全是普遍叫人有些担忧的,我不知道这个“排酸肉”到底真的是经过上面讲的过程生产出来呢,还是有添加了别的什么东西。

在新华网上看见一篇2006年的来源自工人日报一篇名为《专家:市场所谓排酸肉纯属以讹传讹》的文章,文中中国肉类协会副秘书长、高级工程师边增林明确表示,商家所说的排酸肉实际上就是冷却肉。
活猪的PH值通常为7.4(碱性),宰后6~8小时内可下降至5.6(酸性),24小时候可达到最终值5.3左右。实际上是“产酸”、“变酸”了,所产的酸是以乳酸为主的体酸,“它象征着肉的成熟,是有益的”,自然也谈不上什么“毒”了。因此,对于人们所说的排酸,边增林认为,“这是一种无知的正义,是一种愚昧的企盼,是一种违背科学的讹传”。

所谓的“排酸肉”,价钱也不便宜,我看标签上标注的是每公斤25.6元。初来乍到,平时在学校也很少去菜市场,反正据我我看到的超市肉类专柜里,所有的五花肉都标以“排酸肉”的字样出售,是巧立名目,赚取眼球还是名副其实,真是搞不懂了。

如果这是具有介绍的那些好处的话,那还是要好好确定与规范排酸肉的标准,做好检查与监督,要不然,价格偏高的排酸肉被其他种类的肉冒名顶替,侵害了消费者的权益,排酸肉加工业也不能有序长久的发展。

文章配图

2010年12月26日星期日

中国移动之面试过程述

每年的11月份是校园招聘火爆的日子,这时候会有大型的企业到学校宣讲、招聘、打广告。中国移动算是一个比较早的从事该勾当的企业,其实比移动还早一个星期的有联通。

一个周末的某天上午,浙江联通的几个主管人事的人员懒散地聚集在我们学院楼下,等待应聘者上钩。我观察良久,选择了一个“温州联通”的展位坐了下来。对方是一爷们,他问,你家是哪的?我说,河南。他明显不屑地说,你一个外省的为什么报我们温州公司?我说,外省的就不能报温州公司了吗?他说,也不是不能,只是在我们公司工作想靠工资在温州买房子生活的话会比较辛苦,压力也大。

他并没有让我填写报名表,递给我一个登记名单说,你把自己的信息登记一下吧,然后就上网上投一下简历就行了。我接过来名单,发现整张纸上满是户籍温州的记录。

之后就没有报联通的职位,可能他说的这几句话对我的触动比较大。接下来同学们见面就说,移动开始了,报了没?农行开始了,报了没?信用社开始了报了没?

反正一有什么风吹草动,大家都是一窝蜂地钻进去。在这一轮的洗礼中,我报了中国移动、中国农业银行、中国建设银行、浙江省信用合作社这几个企业的职位,可能是这些企业是名正言顺的国企,效益好待遇也好的缘故,报的人数较多,都是安排笔试、一面、二面等一系列的步骤来刷来卡考试者,而且这些活动都安排在周末,所以拖得时间周期比较长,差不多一个月下来一个企业的招聘过程才算结束。因此会出现不少企业在某个周末竞争的局面,对于考生来说需要在内心纠结一番决定去哪个企业。

投过中国移动的职位报名表之后,过了大约一周收到了笔试通知。于是和几个同学远赴省会参加笔试。想着应该没有多少人会参加这个烂企业的招聘的,竞争应该也不会太大。可是下午见到应试的考生,着实吓到了,没想到黑压压的那么多人。听人说他们在别的学校还有其他的考点。

笔试的时间是十分充足的,可能因为考题太简单。笔试试题的题目不多。题型分为:中国移动文化、行测、专业英语、技术。移动文化主要是指移动所宣传的所谓神马价值观,一箩筐我也不知道,还有三大品牌的口号。行测基本上就是国家公务员考试的行测试题,只是绝大部分题的开头会出现“王建宙说:”这几个字。看来这个上市公司在企业内部有浓厚的企业领袖崇拜。专业英语就是选词填空,一段话空上一个单词,然后选择一个填上去。技术也就主要考3G的内容,不过iphone出现的频率极高,还有剪卡对抗联通什么的。

总之整套试题充满了移动公司洋洋得意的企业优越感,宣传其为社会做出了巨大的贡献,以及包括领导人的个人崇拜。试题总体难度不大,据我所知参加考试的几乎都进入了第一次面试。

过了半个月去杭州参加第一次面试,俗称“一面”。三个人考生一起进去,自我介绍,然后回答问题。提出的问题并不难,主要看你的“学校”出生。从后面的“二面”来看,所谓的优秀学校的人差不多都过了“一面”。

“二面”选在圣诞节,不知道移动的人怎么想的。我本以为经过笔试和“一面”的洗礼,留下来的兄弟不会太多了。让我想不到的是“二面”的现场也出现了海选的情景。参加“二面”的考试要求携带“三方协议书”,如果没带或者已签的话,和他们说说也没有问题。所以有好些人就谎称自己的协议书没有带。

面试的现场是在市区的移动总部。这次是单独一个考生进去,进入房间可以发现自己明显处于弱势的境地,一比十的比例,稍微有些压力。面试官根据自己心情来提出问题,问的不难,回答也较简单。每人差不多十分钟左右结束,气氛良好。经我询问,周围的人都是名牌大学的学生和本地的人。所以说想进入这些国企内部,你最好要“出生好”。

2010年12月25日星期六

雪花Gmail,圣诞快乐

圣诞节了,外面在下雪。打开Gmail,里面也在下雪,甚是好看。

一直在使用Gmail的Tree主题,看名字只是一棵树。此主题能按着你设定的城市,随时把该城市的天气所对应的景象显示在Gmail中。或者艳阳高照、或者晴空万里、或者乌云蔽日、或者细雨绵绵。使得我们不必趴在窗户上去看外面的天气怎么样了。

Jasmine最喜欢的Gmail主题是Candy,更准确地说是我用此主题把她从163诱骗到Gmail的。我一直和她说Gmail有多好,空间存储量大、安全、高效、功能强大……可她总是无动于衷地说,这些我不需要。等到她看到Candy这个小糖果的主题时,按奈不住它的可爱也就从了。

哎哟,大圣诞节里为什么会提起Gmail,因为下雪了吗。

开始“北漂”

最近几年,我是越来越相信 “机缘”这个词语了。有些事情你也许不去留意,也想不明白。上天就会在冥冥之中安排你到某个地方,见到某个人,发生某段故事。

因为与北京这座城市的“机缘”,我坐上了19号的火车,带着我驶向了这座陌生的城市。怀着众多北漂们相似的希望与憧憬,焦虑与不安,跃跃欲试。

经过二十二个小时,火车驶入北京站。很幸运,有两个熟人过来接我。没有来得及欣赏北京火车站,便一起急忙去取随车托运的行李。问来问去,走了十几分钟,终于拐进了一个尘土飞扬,坑坑洼洼,荒凉破落的小路上。然后七拐八拐,来到办理手续的地下室,结果告知行李要等两个半小时以后才能拿到。实在不想再拖着箱子往回走,就在小土路上吹着北风,听着早我半年来的那位北漂讲述他的生活。漫长的等待中,想恶心一把宿舍的小胖妮,就给她回短信说:北风吹乱我那油乎乎的长发,夜色里,我在北京的小土路上凌乱……凌乱……

取完行李,赶上北京下班高峰,堵车,堵车。直到凌晨,在租的小屋里安顿睡下。几个小时也没有睡安稳。一早起来,赶往国贸附近的公司。第一天在京城里混,不断给自己打气,边走边问,总算找到目的地。在繁华的大街上看着匆匆忙忙的路人,熙来攘往的车辆,感受北京的气息。

出了公司,刚要坐公交回去,要去德胜门见一位熟人,便在地铁里转来转去,虽然不是上下班的高峰,但是却很难找到座位。即使在起点站,我也挤不过那些身强力壮的男人们,他们轻松而习惯性的用胳膊肘把你撞到一边。一整天里,在车里站着,或是赶路。2号线转1号线再转八通线。头天晚上到租房的地方天已经黑透了,早上匆忙坐公交出的门。等我回去出了地铁站,又不知道往哪里走了。问了房东,也没有说清楚,问了几个路人,慢慢摸索,终于到“家”了。

接下来的几天里,先不说工作这方面的事情。单是日常生活,我就发现自己原来是如此脆弱了。先是交了网费,上不了网,以为电脑系统出了问题,房东系统发现还是解决不了问题,反而把系统弄得一团糟,不说上网了,连正常使用和关机都有问题,平时电脑这一块儿依赖hillway惯了,电脑知识也没有学扎实,手足无措,心情烦躁。

接着是不小心把门钥匙弄断了,困在房间里出不去,煤气也没有办法用。然后是因为烧水,忽然房间里的电全都断掉了。晚上一个人睡在一个陌生的地方,房东有事晚上没有回来,房门也锁不上,感觉到很不安。担心别人会破门而入,担心煤气中毒……躺在床上,心一直在悬着。给hillway发短信,说着说着眼泪忍不住就往下掉,才发现原来自己就这样不堪一击,这些小事就会让我心神大乱,伤心难过。

躺在床上,黑漆漆的夜,空荡的房间,陌生的城市,想着现在的压力和遥远的未来,我无所适从。甚至想一走了之算了,不是谁让自己走,而是自己已经在退缩了。前几天临来的时候不是说的好好的吗?一个人毅然大包小包的赶过来,好好工作,努力攒钱,为将来奋斗,在外面好好锻炼、打拼。不怕辛苦、不怕被人笑话,好好锻炼自己的能力,磨练自己。可是现在呢,怎么成了这个样子了?

本来以为自己很独立,很坚强,一个人在陌生的地方可以很快适应,开始新的工作和生活。现在我才发现自己是如此的脆弱,如此的孤单和难过,是因为一直都这样的脆弱,还是因为和hillway在一起的几年里,一直习惯了他的照顾和呵护,而变得越来越柔软呢?

人躺在床上,心悬在半空。闭上眼睛,脑海里浮现很多和hillway在一起的场景。想起他盘着腿坐上床上,给我声情并茂的演唱“清晨我放飞一只白鸽”。他经常逗我开心,让我感觉到很轻松、很快乐。而我有时候却会故意去惹他,惹他着急,惹他生气。我下次再也不这样让你急匆匆的满世界找我了。

抱着枕头,想起以前他伸出胳膊抱着我,偎在他的怀里,安心的闭上眼睛,听他轻轻地在我耳边,讲他小时候的事情。hillway可能以为我渐渐睡着了,但是他还在我耳边继续轻轻地讲,而我一直在听,很幸福、很满足的在听,因为我很喜欢,所以关于他的所有故事我都感兴趣,愿意听。

可是现在,只有我一个人,听着窗外肆虐的的北风,猛烈的吹打着玻璃在咣咣荡荡不停的响。陪伴我的,只有脑海中的记忆,枕头湿了一片,慢慢的,看着天亮了。

新的一天开始了,这些又算得了什么了,圣诞节到了。我要振作起来,只有自己的心态调整好了,才能积极解决这些小事情。想想当初的梦想,继续奋斗吧。加油!

IMG_2768

2010年12月21日星期二

火车票余票查询

曾几何时,风尘仆仆地跑到火车站,看到人山人海的人群和长龙逶迤的队伍,心里顿时就凉了。可没有办法,排队吧!在队友们缓慢地移动半个小时一个小时两个小时,终于排到了。问售票员,答之,没票。恨天、恨地、恨时间!

近几年铁老大说是提供人性化服务,在售票厅中提供了轮回跑动的余票信息的显示屏幕。这确实可赞,省得消耗了无谓的排队时间。可从家里、公司到火车站去也不容易。网络这么发达,为什么不提供一个显示余票实时信息的网站于民方便呢。

其实,已经存在一个可“实时”查看火车票余票信息的网站,只是余票信息每小时更新一次。但这总比没有好吧,至少让消费者自己可以约莫知道余票的信息,不至于盲目地浪费时间。可能铁老大一直以来都没把我们当作消费者来看。

余票查询的网站地址是:http://www.12306.cn/mormhweb/kyfw/ypcx/

您可以把它保存到手机中随时查看。当然这个网站也可以查询车次、中转、发到站以及票价等。不过对于这些查询我还是推荐到“郑州火车站铁路行”查询。虽然它是河南郑州的火车站网站,但可以查询全国的火车信息,更新及时、准确,难得河南人民能贡献出这么好的东西出来。

2010年12月13日星期一

JADE Agent Parameters

Agent Parameters

It is often useful to be able to pass parameters to agents. This is described in the Jade Programming Tutorial (sect. 3.4). On a command line, the parameters are placed in a list seperated by spaces after the "name:class" agent specifier. For example:

% java jade.Boot fred:ParamAgent(3 "Hi there")

Here fred will be passed 2 parameters: an integer and a string. In standard Java, we are used to retrieving command arguments from a String array parameter to the static method main. With JADE, retrieving arguments is a bit different because the same mechanism is used both to pass arguments from a command line and to pass arguments to agents created by programming.

In Jade, the arguments are obtained by calling the method getArguments which returns an array of Objects which must be cast to Strings (in this case). Here is an example of a ParamAgent which can retrieve the arguments "3" and "Hi there" shown above.

/**************************************************************
ParamAgent.java: Retrieving parameters
**************************************************************/

import jade.core.Agent;

public class ParamAgent extends Agent
{
protected void setup()
{
Object[] args = getArguments();
String s;
if (args != null) {
for (int i = 0; i s = (String) args[i];
System.out.println("p" + i + ": " + s);
}

// Extracting the integer.
int i = Integer.parseInt( (String) args[0] );
System.out.println("i*i= " + i*i);
}
}
}


The command line shown above doesn't work under UNIX or Mac OSX.

jean% java jade.Boot fred:ParamAgent(1 "Hi there")

tcsh: Badly placed ()'s.

With these systems, each agent specifier (name, class & argument list) must be quoted.

% java jade.Boot 'fred:ParamAgent(3 "fred toto")'

p0: 3

p1: fred toto

i*i= 9

Reversing single and double quotes can give surprising results; in this case: 3 arguments !!!

jean% java jade.Boot "fred:ParamAgent(3 'fred toto')"

p0: 3

p1: 'fred

p2: toto'

i*i= 9

Passing arguments to newly created Agents

Similarly, an array of arguments can be provided for new agents in the third parameter of createNewAgent. Here is how we could create a ParamAgent with the same name and arguments as in our earlier example. Note that the arguments are passed as Objects; thus, simple types must be converted to Strings or Wrapper classes.

Object [] args = new Object[2];
args[0] = "3";
args[1] = "Allo there";

String name = "Fred" ;
AgentContainer c = getContainerController();
try {
AgentController a = c.createNewAgent( name, "ParamAgent", args );
a.start();
}
catch (Exception e){}


Responder Agent

// ------------------------------------------------------------
// ParamAgent: An Agent receiving parameters
//
// Usage: % javac ParamAgent.java
// % java jade.Boot fred:ParamAgent(3 "Allo there")
//
// ... on UNIX, the agent specifier and arguments must be quoted:
//
// % java jade.Boot 'fred:ParamAgent(3 "Allo there")'
// ------------------------------------------------------------

import jade.core.Agent;

public class ParamAgent extends Agent
{
protected void setup()
{
Object[] args = getArguments();
String s;
if (args != null) {
for (int i = 0; i s = (String) args[i];
System.out.println("p" + i + ": " + s);
}

int i = Integer.parseInt( (String) args[0] );
s = (String) args[1];

System.out.println("i*i= " + i*i);
System.exit(1);
}
}
}

Reference:

2010年12月12日星期日

JADE Agent Parameters

Agent Parameters

It is often useful to be able to pass parameters to agents. This is described in the Jade Programming Tutorial (sect. 3.4). On a command line, the parameters are placed in a list seperated by spaces after the "name:class" agent specifier. For example:

% java jade.Boot fred:ParamAgent(3 "Hi there")

Here fred will be passed 2 parameters: an integer and a string. In standard Java, we are used to retrieving command arguments from a String array parameter to the static method main. With JADE, retrieving arguments is a bit different because the same mechanism is used both to pass arguments from a command line and to pass arguments to agents created by programming.

In Jade, the arguments are obtained by calling the method getArguments which returns an array of Objects which must be cast to Strings (in this case). Here is an example of a ParamAgent which can retrieve the arguments "3" and "Hi there" shown above.

/**************************************************************
ParamAgent.java: Retrieving parameters
**************************************************************/

import jade.core.Agent;

public class ParamAgent extends Agent
{
protected void setup()
{
Object[] args = getArguments();
String s;
if (args != null) {
for (int i = 0; i s = (String) args[i];
System.out.println("p" + i + ": " + s);
}

// Extracting the integer.
int i = Integer.parseInt( (String) args[0] );
System.out.println("i*i= " + i*i);
}
}
}


The command line shown above doesn't work under UNIX or Mac OSX.

jean% java jade.Boot fred:ParamAgent(1 "Hi there")

tcsh: Badly placed ()'s.

With these systems, each agent specifier (name, class & argument list) must be quoted.

% java jade.Boot 'fred:ParamAgent(3 "fred toto")'

p0: 3

p1: fred toto

i*i= 9

Reversing single and double quotes can give surprising results; in this case: 3 arguments !!!

jean% java jade.Boot "fred:ParamAgent(3 'fred toto')"

p0: 3

p1: 'fred

p2: toto'

i*i= 9

Passing arguments to newly created Agents

Similarly, an array of arguments can be provided for new agents in the third parameter of createNewAgent. Here is how we could create a ParamAgent with the same name and arguments as in our earlier example. Note that the arguments are passed as Objects; thus, simple types must be converted to Strings or Wrapper classes.

Object [] args = new Object[2];
args[0] = "3";
args[1] = "Allo there";

String name = "Fred" ;
AgentContainer c = getContainerController();
try {
AgentController a = c.createNewAgent( name, "ParamAgent", args );
a.start();
}
catch (Exception e){}


Responder Agent

// ------------------------------------------------------------
// ParamAgent: An Agent receiving parameters
//
// Usage: % javac ParamAgent.java
// % java jade.Boot fred:ParamAgent(3 "Allo there")
//
// ... on UNIX, the agent specifier and arguments must be quoted:
//
// % java jade.Boot 'fred:ParamAgent(3 "Allo there")'
// ------------------------------------------------------------

import jade.core.Agent;

public class ParamAgent extends Agent
{
protected void setup()
{
Object[] args = getArguments();
String s;
if (args != null) {
for (int i = 0; i s = (String) args[i];
System.out.println("p" + i + ": " + s);
}

int i = Integer.parseInt( (String) args[0] );
s = (String) args[1];

System.out.println("i*i= " + i*i);
System.exit(1);
}
}
}

Reference:

2010年12月8日星期三

WP-PostRatings的中文显示的设置

WP-PostRatings是一款Wordpress的文章评分插件,评分形式多样,功能丰富,小巧简单,足够强大。然而,插件的显示语言是英文的,这对中文博客来说不是太友好。不过中文的显示的设置也十分简单,下面简要介绍一下。

评分显示出要是在Post Rating Templates中设置的。

Ratings None:评分前的显示

%RATINGS_IMAGES_VOTE% (欢迎评分)

Ratings Voted Text:评分后的显示(评分人可见)

%RATINGS_IMAGES% (<em>共<strong>%RATINGS_USERS%</strong> 次打分, 平均得分: <strong>%RATINGS_AVERAGE%</strong> </em>)

Ratings Vote Text:评分后的显示(非评分人可见)

%RATINGS_IMAGES_VOTE% (共<strong>%RATINGS_USERS%</strong> 次打分, 平均得分: <strong>%RATINGS_AVERAGE%</strong>)

下面就是把评分后的文章按着最高评分列表显示出来。

Highest Rated:最高评分列表

<li><a href="%POST_URL%" title="%POST_TITLE%">%POST_TITLE%</a></li>

打分的代码,插入到文章的合适位置。

<span><?php if(function_exists('the_ratings')) { the_ratings(); } ?></span>

2010年12月7日星期二

Inove使用WP-RecentComments

WP-RecentComments是MG12写的一个最新评论插件,可以显示评论者的头像、名字以及内容。评论内容默认是折叠收起的,可以通过点击来展开,这样使得不需要进入页面就能查看完整的评论了。另外还有翻页的功能,可以查看更多的评论。

可是Inove使用最新版的WP-RecentComments总是出现样式混乱的问题:

  • 头像在上,名字和评论在头像下面。(我们需要的是头像在左,名字和评论在右)

  • 每条评论前面出现“点”。


具体的原因我没有细究,觉得应该是CSS调用的问题。于是拿出来wp-recentcomments/wp-recentcomments.php文件,发现其中的调用CSS语句中有一个判断是使用模板CSS还是插件CSS。觉得是这个判断没有起作用,反正我是想使用插件的CSS的,干脆把第一个if注释掉。方法是:

if($options['use_css']) {
if(file_exists(TEMPLATEPATH . '/wp-recentcomments.css')){
wp_enqueue_style('wp-recentcomments-custom', get_bloginfo('template_url') . '/wp-recentcomments.css', array(), $plugins_version, $plugins_css_media);
}
else {
wp_enqueue_style('wp-recentcomments', $plugins_css_url . '/wp-recentcomments.css', array(), $plugins_version, $plugins_css_media);
}
}


修改为:

wp_enqueue_style('wp-recentcomments', $plugins_css_url . '/wp-recentcomments.css', array(), $plugins_version, $plugins_css_media);

这样就可以调用插件的CSS了,解决了头像和评论的位置问题。

第二个问题的解决是,在主题的style.css文件中添加如下代码:

#sidebar .rc-item, #sidebar .rc-navi{background:transparent;line-height:145%;padding:2px 0;}

2010年12月6日星期一

Inove使用WP-RecentComments

WP-RecentComments是MG12写的一个最新评论插件,可以显示评论者的头像、名字以及内容。评论内容默认是折叠收起的,可以通过点击来展开,这样使得不需要进入页面就能查看完整的评论了。另外还有翻页的功能,可以查看更多的评论。

可是Inove使用最新版的WP-RecentComments总是出现样式混乱的问题:

  • 头像在上,名字和评论在头像下面。(我们需要的是头像在左,名字和评论在右)

  • 每条评论前面出现“点”。


具体的原因我没有细究,觉得应该是CSS调用的问题。于是拿出来wp-recentcomments/wp-recentcomments.php文件,发现其中的调用CSS语句中有一个判断是使用模板CSS还是插件CSS。觉得是这个判断没有起作用,反正我是想使用插件的CSS的,干脆把第一个if注释掉。方法是:

if($options['use_css']) {
if(file_exists(TEMPLATEPATH . '/wp-recentcomments.css')){
wp_enqueue_style('wp-recentcomments-custom', get_bloginfo('template_url') . '/wp-recentcomments.css', array(), $plugins_version, $plugins_css_media);
}
else {
wp_enqueue_style('wp-recentcomments', $plugins_css_url . '/wp-recentcomments.css', array(), $plugins_version, $plugins_css_media);
}
}


修改为:

wp_enqueue_style('wp-recentcomments', $plugins_css_url . '/wp-recentcomments.css', array(), $plugins_version, $plugins_css_media);

这样就可以调用插件的CSS了,解决了头像和评论的位置问题。

第二个问题的解决是,在主题的style.css文件中添加如下代码:

#sidebar .rc-item, #sidebar .rc-navi{background:transparent;line-height:145%;padding:2px 0;}

国人天生的懒

国人天生的懒

2011年的公务员考试结束了,平均每个职位有上百个人竞争,最后出来的结果肯定是几家欢喜几百家愁。

考试题和以往的宣传一样为了表明,党国还是一如既往的把人民的利益放在第一位,自始至终没有考虑到自己的利益,一切为了人民,为了人民的一切。

如此大气又贴心的誓言听着真让人心里暖融融的,是的,人民爱听这样的话,支持这样的话。

国人天生的懒就是自己不想做,总想找个人去做,然后自己坐享其成。好不容易出现了个立誓为大家从不为自己的人出来,于是大家就把权力都交给他吧。不过左等等右等等,等了几十年了,发现立誓的人却没有履行诺言,此时的国人手中无权,后悔晚矣。

铁道部新规

铁道部又出新规了,“普通列车火车票改签须在开车前办理”,也就是以后您赶不上普通列车,车票将作废。这也意味着以前的开车后2个小时改签的规定也同时给取消了。

人民出门一趟不容易,没钱坐飞机,没钱买汽车,大部分人出门还是选择坐火车。可是这火车总是摆出车老大的臭脾气,爱坐不坐。出行难,买票难,坐车难,现在赶火车更难。作为人民只能早不能晚,否则损失自负。人家火车晚点个把小时最多说声抱歉,我们还不得有怨言。

阿桑奇

知道阿桑奇是因为维基解密,开始还以为是大名鼎鼎的维基百科的兄弟部队,之后才知道维基解密是专门来解密各国政府的政治性文件。这下各国政府坐不下了,纷纷要求追捕阿桑奇。

这也印证了政治的阴暗和丑陋的一面。记得有人说过,不要去追随多么光鲜的政客,你不知道他们背后有多么肮脏。

同时很是钦佩阿桑奇,不顾个人安危,为了真相,为了自由。

2010年12月1日星期三

“贴身热舞”

晚上从图书馆学习回来,hillway来我的宿舍取东西。

临走时,为了消除他临走时产生的失落与被冷落的感觉,我即兴发挥,到他面前,唔哩哇啦,手舞足蹈了一番,有些群魔乱舞的架势。

因为是“贴身热舞”嘛,离得太近,动作幅度也很大,以至于hillway都不敢好好观看,一直在躲闪,嘴里说道:“难道你抽风了吗?”

“哈哈哈,当然没有,不是因为要热烈欢送嘛。”

我继续手舞足蹈,一不小心,在甩手的时候甩到他的脸上。

他反应了几秒钟,用手摸摸脸,看了我一眼,嚎了一声,走了。

猫猫