2008年12月15日

深圳之行——初来乍到

2008年12月11日晚上8:37分,我踏上了南下深圳的火车,开始了我的深圳之行。与我同行的是刘金柱,他现在研二,是我的大哥,我们平时都叫他柱子。

本次来深圳的任务是完成NAS二期项目的需求工作,预计时间是一个月左右。

列车经过12小时30分钟的运行,于第二天早上9:07分到达深圳。接着我们乘坐地铁、公交达到了目的地——杭州华三通信有限公司深圳研究所。项目经理吴剑和校友吴正华接待了我们,帮助我们安排住宿、办理通行证、申请电脑等工作。中午我们在公司的食堂吃了午餐,虽然比学校的食堂贵了一些,但是物超所值,比学校食堂的饭菜好多了。柱子同学说他上次来深圳胖了十几斤,这次要在这里减下去,呵呵祝他成功,我就要好好享受一番了。

住宿的地方还不错,是一间公寓,三室一厅,有热水。因为现在来公司的人比较少,所以偌大一个房间,只有我们两个人住,还是相当宽敞的。

下午洗了个热水澡,除去了一身的疲惫。晚上吴正华为我们接风,在“面鼎香”请我们吃了晚餐。深圳的消费水平的确蛮高的,一顿饭花了100元,在武汉估计只要五六十就可以了。

接着我们去了吴正华现在的住处,我亲身体会到了刚毕业开始工作的新员工的生活状态——从一个集体宿舍搬到了另一个集体宿舍。他们是4个人合租一套房子,租金是2700~2800元/每月,自己做饭或者在外面吃饭。每天早上8:30上班,中午12:00~13:30午饭、休息,晚上6:00下班,加班的话一般到晚上9点钟左右。他们的生活范围就是在公司的附近,处于深圳的郊区,见不到都市的繁华。

种子杯小记——复赛

种子杯的复赛持续了一个星期,上周日初赛点评会之后讨论复赛题目,周二上午8:00发布复赛题目,周六晚上23:59作品提交截止,周日晚上19:00复赛点评会,最后是复议、发布复赛最终结果。

复赛回顾、经验教训:
题目:为了提高比赛的公平性,复赛采用了自动化测试,限制编程语言为C/C++、java和C#,没有限制平台,但是我们要求参赛队提交的程序必须接受统一的参数,规定了输出格式,这样才允许我们进行自动化测试。但是由于参赛队伍受初赛的影响,依然有几个队伍使用了交互式的运行方式、而不是题目要求的接受命令行参数,导致我们的自动化测试没有完全发挥作用。
写demo:裁判组应该在题目发布前先完成这个题目,即使不能完整的实现所有的功能,也要有一个demo,因为我们的经验不足,估计代码的能力尚未达到要求,我们必须采用这样的方法才能相对准确的判断题目的规模、难度是否合适。
批改:自动测试程序写的不好,容错性不足,有些队伍没有完全按照规定格式输出,导致判分错误。手工进行判分又容易出现失误,需要认真仔细。

2008年12月4日

种子杯小记——初赛

2008年的种子杯编程PK赛现在进行了差不多一半了,我今年很荣幸的作为裁判组的一员参与组织了这个比赛。从11月2号开始筹备,从宣传到出题、评分,我从另一个角度体验了软件开发的过程。
今年的初赛题目是写一个本地的文件服务器,模拟FTP的部分功能,主要包括用户管理、目录管理、文件管理三大部分,没有限制平台和编程语言。
在评分的时候,我发现了我平时写代码的一些不好的习惯,当我给别人评分的时候这些细节我看的清清楚楚,但是自己写的时候就不把这些细节当回事。这让我切身的体会到了"细节决定成败"的道理。比如关于代码注释,正确的做法是注释与代码一起写,但我们经常会先写代码,当程序基本完成的时候才把注释补上,而这样造成的后果就是注释量偏少,而且后来添加的注释不能准确地反映写代码时候的思路。
态度决定一切,在评分的时候我们就遇到了一个态度不那么好的队伍,他文档中的语气显得十分的傲慢,觉得自己的代码肯定是最好的,但是他的文档代码与他的自我感觉并不是非常的符合,这些让评委们对这个队伍的印象不是非常好。
经验教训:没有限制编程语言和平台,接收参数、输出信息没有严格统一,导致无法进行自动化测试,判分的时候评委的工作量太大,而且因为每个评委的评分标准不是非常统一,最后还需要一个人进行分数的修正,导致这个人的工作量又增加了很多。
经过初赛的点评,这些参赛队伍有了一些提高,我自己也从中学到了很多的东西。接下来的复赛相信更加精彩。

2008年12月2日

用上了Twitter,好像少写了很多blog。

写Twitter很方便,没有blog这么麻烦,不需要像blog这样长篇大论、推敲字词的用法。但是blog还是有blog的优点,各有所长嘛。坚持写下去,总会体会到益处的。

2008年11月24日

碌碌无为

这两周我很忙,忙的团团转,但是我却不记得都忙了什么了,好像什么都没有做。我想是因为我没有好好的安排自己的时间,做事缺乏计划性,事情完了之后也不好好的总结思考。看来我该认真的想一想我的习惯了。Dian团队的团训——"优秀是一种习惯"——时刻念叨这,却没有认真的执行。

2008年11月14日

ProxyCache的server的崩溃问题解决了

Proxy Cache 是我现在正在做的项目,今天终于把server崩溃的问题解决了。

这个问题应该是在写server代码的时候遗留下来的,由于当时客户端没有写完,这个问题一直没有表现出来,也就放在那里忘记了。客户端写好后开始联调,运行没多久,几个server进程就一个一个的崩溃了,错误是 malloc(): memory corruption (fast): ,提示是内存操作错误,我仔细的检查了我程序的所有内存操作,没有发现什么错误。请钟老师帮忙看一下这个错误,他用反汇编帮我把这个错误定位到了函数,但是这个函数没什么错误,一定是其他地方有问题,在这个地方引起了程序的崩溃。

我用GDB一步一步的调试也没跟踪出什么问题来,只好请教我们组的大牛柱子同学,帮忙看看我的代码。经过一阵讨论,柱子同学指出,server的接受和发送函数的错误处理很可能有问题,要好好琢磨一下。于是今天一天我看了几本关于Linux网络编程的书,仔细的研究了一下send()和recv()两个系统调用的错误处理。再看看我的代码,错误处理的逻辑非常混乱,几乎全是错的(我有点奇怪server怎么还能运行那么长时间才崩溃)。整理思路,把错误处理部分重新写了一遍,再运行,等我吃完饭回来,server依然健在,哈哈,搞定了!

感谢钟老师的debug,感谢柱子的review,让我把这个问题解决了。

2008年11月13日

博客搬入新家

之前一直在百度(http://hi.baidu.com/coblay)写博客,现在感觉百度提供的博客功能过于简单,不能满足我的需求,而且也不方便与其他的服务整合,决定还是用blooger.com。
我的百度博客:http://hi.baidu.com/coblay