Archive

Author Archive

种子杯历届命题回顾(二)

November 3rd, 2008

   在我们开发复赛框架的时候其实也是在我们项目的进行过程中,和其他的项目组相比起来我们的确是比较轻松的,组长和主要开发人员能够用这么多时间做和项目无关的工作,这种环境给我的感觉相当的好,没有过大的项目压力,又能够每天在和dodo的交流中学到很多的东西,这种在共同的工作中受到的影响是潜移默化的。记得自己当初在为加入团队而进行面试的时候就说过,自己加入的目的就是为了寻找和自己志同道合的人,dodo作为我的学长,应该是良师和益友了,如果问我在团队自己收获得最多的东西是什么,大抵就是这段经历了。

    似乎有点扯远了,回到正题来。为复赛框架而进行的紧张的开发刚结束,我们就开始思考决赛出题的问题了。Idea还是dodo给出的——贪食蛇,这个题目相信大家都很熟悉了,为了让题目不至于太简单我们增加了一些元素,比如说Key和Door, 吃到Key以后能够打开Door,从而可能出现更短的到达目标点的路径。最后的要求是以最短的代价吃到最多的苹果。

    在框架的技术方案上,我们摒弃了原来的独立进程的方案,而回到了dll上来,原因是复赛中大家都无法使用调试器来调试自己的程序。在界面框架上,我和dodo都不喜欢MFC,所以决定使用设计得更好的WTL框架。开发是在五子棋的基础上进行的,所以耗费的时间略少。最后的代码并不多,大约3000+的样子,在良好的设计思想的指导下,代码的质量相当的高,可以当作学习的模板。dodo在之后也多次用这个框架来给新队员们介绍设计的思想。

   比赛的时间是一个下午,所有的队伍都现场完成自己的作品。和dodo共事久了,发现他是一个相当喜欢卡点的人,每次都在刚刚在deadline之前把事情做完,程序总是在最后一刻才改完,然后就急忙奔赴比赛场所。在他们比赛的时候自己也花了一些时间写了一个示范的程序,原本打算晚上演示一下的,不过可惜差一点没调试出来。选手们在5:30提交了自己的程序,然后我和dodo就赶忙在隔壁的教师休息室批改作品,这中间还发现了评分程序的一个bug,幸好被及时的发现了。那次也是印象中第一次吃工作餐。晚上的时间是现场答辩的颁奖典礼。那些面孔此后依然熟悉,很多人都成为了团队中的队友。

   比赛的完成情况和之后的一届相比还是有很大差距的,虽然不是很难的题目,但是大多数组都无法想到用广搜来解决这个问题,这大概是因为电信系的同学对于算法并没有很大的关注的原因吧。自己在学习数据结构的时候根本就没有听老师讲,在大一下的时候就阅读了一本用C++模板方法讲述的数据结构的书,看得相当的有味道。而到上课的内容则完全没有意思,对于广泛使用的数据结构的教材,个人推荐不要去看,书里面经常可以看到的是大段难以理解的文字描述,对于学生的理解来说是有害而无益,国外的书的质量则很高,讲得深入浅出。这又是题外话了。

  附决赛的框架程序 GreedySnake

Author: admin Categories: 闲话生活 Tags:

又忙起来了

November 2nd, 2008

  好久不习惯这样了,之前的很长时间都过得很自由。不过之后的时间估计要狠狠的忙一阵子了,好多好多必须要做的事情~~~~,不过这样的感觉也还不错,自己的潜能在这种环境下能够得到最大限度的发挥。

Author: admin Categories: 闲话生活 Tags:

种子杯历届命题回顾(一)

October 31st, 2008

      不知不觉种子杯已经办到了第4届了,前面的两届都是自己亲自参与了其中的命题,回头去看的时候总会有许多感慨,命题时的乐趣和艰辛浮现在脑海中,当然也会想起那些总会给我们带来惊喜的参赛者们,其中的许多已经成为了团队的伙伴。细细品味那些日子,会有种很满足的感觉。接下来我们将一起回顾一下种子杯历届比赛的题目和后面的故事。

      06年是我第一次参与种子杯的命题工作,当时负责的人是realdodo(现就职于微软),我和realdodo当时在一个项目组,理所当然的成为了他的助手,如果只是简单的出一道题让参赛者去做未免也太没有意思了,所以realdodo给出的idea是实现一个比赛框架,这个想法直接影响了后面几次的命题。复赛的题目选择了五子棋,五子棋的英文名字叫做renju,我们的项目也被命名为Renju。

      Renju框架的开发人员只有我和realdodo,开发的时间大约为1周的业余时间。这次的开发经历让我受益匪浅。首先dodo提出了一个很奇怪的需求,作为一个框架程序,我们要保证它不能因为参赛者的程序而挂掉,如果我们使用dll的方案,似乎总是有可能会让程序挂掉(现在想起来应该可以用SEH), 所以dodo提出的方案是用隔离的exe,使用pipeline的方式来进行通信,这个和google chrome browser使用的策略比较相似。而我首先要做的就是实现pipeline通信的封装,在那之前我并没有接触过pipeline,自己在window API编程的经验也不多,所以并没有绝对的把握,不过做过以后发现其实也蛮简单的,基本上查查MSDN也就水到渠成了。在那之后对于未知的东西基本上没有了畏惧的心理,而且逐渐掌握了快速学习新知识的方法。而dodo在框架中所使用的各种C++的编程习惯和技术也让我对C++了有更新的认识,从前在书上读到的东西第一次成为了自己的作品。

   最后的框架在匆忙中成型,加上一个cactus以前完成的AI,一切OK。比赛是在南一楼的DSP机房进行的,我一起去现场进行了监赛,比赛的结果比较让人失望,大多数队伍都没能完成一个像样的AI,或许题目的难度太大了一点。不过这次的比赛形式依然让很多人觉得很满意,选手们在参加完比赛以后可以继续研究我们完成的框架程序,并从中受益。

  附上比赛的框架程序

Author: admin Categories: 闲话生活 Tags: ,

被百度屏蔽的豆瓣

October 27th, 2008

   今天在豆瓣上发现了一篇帖子, 原帖如下:

 

百度把豆瓣屏蔽了

2008-10-26 08:59:15
http://www.baidu.com/s?wd=site:douban.com

而 Google 上有八百万条:

http://www.google.com/search?&q=site:douban.com

百度居然几乎屏蔽了豆瓣的所有内容,真小人,自己技术不过关就用这种下三滥的做法,鄙视之。

  一开始的时候我还以为是百度的技术问题,不过在decster的提醒之下发现豆瓣的内容还真是检索不到。就拿这篇帖子为例,把它的关键字在baidu和google中检索,只有google中有结果。在印象中baidu的结果中是有豆瓣的,不知道是不是我的错觉,反正现在是没有了,在google上搜索发现讨论这个问题的帖子基本是在24小时内出现的,难不成是baidu的人让豆瓣交钱,豆瓣拒绝之后就成这样了?唉,说实在话我一直不喜欢baidu的真实这个公司的道德问题,而喜欢google的理由也有很多来自于它的Don’t be evil的理念。

   标题的最后落脚为豆瓣,其实是想推荐一下豆瓣,的确是一个非常好的网站。每次看完一部电影或者动漫之后都会去上面读读别人的评论,豆瓣的用户的文化水平还是相当的高的,有相当多的经典评论。没事的时候还可以在豆瓣上瞎逛,看看有没有自己喜欢的东西,上次发现一了叫哥特的音乐风格,比较符合我的口味。除了娱乐,对于学习也很有帮助,比如在人工智能这一领域,如果你想参考那些书值得一看,可以把其中一本经典的书先找出来,看看相关的推荐,那些推荐很高的书通常都很值得一读,自己已经在上面找到了很多好书呢~,我的豆瓣,有兴趣的去加我好友吧。

  听说豆瓣也招人,以后有机会应该会去试试,我个人相当看好这家公司。

Author: admin Categories: IT时事 Tags:

写在开始的——

October 21st, 2008

  从开始写博客起到现在拥有了自己的独立空间和域名已经过去了2年多,中间因为一些原因曾经中断了很久,也换过了不少地方,最早的歪酷,到blogspot, 还有donews和baidu hi,这些地方都留下了自己的痕迹。博客的质量其实一直很低,很少有精力去写出一些高水平的文章出来,大多是简单的文字而已。从今天开始自己也算是个小小的站长了,除了写一些自己的技术和生活的体验外,我想自己还会做一些有意思的web的小东西和大家分享。

   在这里的第一篇文章记录了我此时的一点点欣喜,和对未来的憧憬~

Author: admin Categories: 闲话生活 Tags: ,