Elephants Dream

《Elephants Dream》是一部十一分钟的开源电影,据说制作时使用的软件是开源软件。这部短片有一个叫做orange的七人小队一起制作,主要使用Blender软件,从2005年开始,2006年完成。

这部短片是试验性质大于故事意义。事实上,我看了之后不是很知道想表达一个怎样的故事,场景之间也没什么关联。主角是Proog和Emo,他们一开始站在一个科幻的周围都是机械的场景里,然后走来走去,不过特效真的是不错。最后去到一个升降机,飞上宇宙,Proog问Emo,能不能看见机械的美丽,Emo只是说什么都看不见。后面还有一两个场景,似乎没有结局的。不过作为试验性质也是可以的了,《Elephants Dream》可以自由下载,使用了Creative Common协议发布,地址是http://orange.blender.org/

论文归

整整八个月的毕业论文设计过程,以及最后20天的论文冲刺,终于结束了。也就是意味着,我又可以回归到一个星期发三篇博客文章的水平。同时也意味着,中断了20天的《UNIX Network Programming》学习后,现在可以重新回归到学习上。

这二十天,好不容易完成了学校要求的不少于10千字和不少于10页纸的论文要求,当然,做完之后发现远远超过这些标准2倍多。但是,尽管如此,我还是认为论文是一件痛苦的事情。以后还要写论文的,汲取的教训就是不要到最后才来写论文,到中期就可以开始写了,后期还是集中调试和测试比较好。

昨天交完论文,最兴奋就是下载了Ubuntu 8.04 Hardy Heron,不过还没刻碟,也不知道什么时候才有重装的勇气。估计暂时还不会重装。至于Windows XP SP3,等到番茄花园出了才考虑要不要重装吧。不过这个学期一开学重装以后,电脑非常罕见的越用越快,估计是不是SP3的一些关键补丁已经打上了。

接下来,首先今天晚上尽力完成百度的intern笔试,然后回家休养一段时间,还要想想Cisco Team的事情。当然还要继续学《UNP》,可能的话去旅游,呵呵…

为什么返回字符指针

很多C语言的函数,比如strcpy或者socket编程中的ntop函数等,最终的结果是得到一个字符串。比如我们要复制一个字符串,可以这样写

char buf[30];
strcpy(buf, src);

但是之前我一直不是很明白为什么要返回char*,指向的也是buf。不过现在终于明白了,因为这样的话,可以直接用在其他有char*参数的函数之中,比如printf系列的函数当中。这样的结果就是可以省去很多不必要的中间变量,而且整段代码也会显得比较简洁。

其实最近很想写日志,包括上次ACM/ICPC的世界决赛的观后感,还有最近很多新闻,无奈整天敲键盘写论文已经令到手指没有太多感觉。

最近比较期待Windows XP的SP3和新的Ubuntu的出现,或者到时重装系统吧。

UNP里学了两招

最近在看《Unix Network Programming》的时候学到了两招,一个是errno的用法,另一个是getenv函数。

errno是一个全局整形变量,我的理解是它定义在<errno.h>里。通常,C语言中函数调用失败都会返回-1或者NULL值。其实,函数除了返回一个表示出错的值外,通常还会把全局变量errno设为一个特定的值,每个操作系统都会把错误值的常量放在<errno.h>。

我们可以在函数返回错误的时候,把errno打印出来,再对着<errno.h>或者使用man命令看看到底是什么错误。比如在Ubuntu最常见是Permission denied。其实标准库也提供打印errno含义的函数,最近就是学到这个,是一个定义在<stdio.h>的函数,叫perror。perror接受一个char*字符串参数,先打印字符串,加个冒号,再打印errno值这时的含义。下面举个例子:

if (socket(AF_INET, SOCK_STREAM, 0) == -1) {
	perror("socket error");
	exit(1);
}

 

第二招是getenv函数。以前也是在附录看过这个函数,但不知道有什么用,原来函数名里env表示enviroment环境变量。使用这个函数,比如getenv(“BERRY”)就能获得环境变量BERRY的值,如果该环境变量没有定义,会返回NULL。至于去获得环境变量的值有什么用,我暂时也不是很了解,估计很多多平台的程序都会使用到这个函数。顺便一提,在Linux中,建立和修改环境变量用export命令,撤销环境变量用unset命令。

交响情人梦

之所以看《交响情人梦》是因为《我猜》里面有一次提到这部电视剧的高收视,还说题材很特别,表现的是古典音乐。

然后终于下载下载下来看。看了一个星期左右,确实是部好戏。不算是一部励志的片,却也有一点。应该说是一部轻松搞笑的片比较合适,很活泼地表现了本来可能会很沉闷的古典音乐题材。

这部日剧讲的是男主角(喜欢指挥)和女主角(弹钢琴)在音乐大学最后一年的事情。讲了两个人各自遇到一些挫折,然后互相鼓励和大家的帮助,不断走出新的天地。

上面写得很短,因为剧情确实不是很多,而且很多是纯属搞笑的。也不算是一部爱情片,女主角有一点花痴。之所以没得好写也要写,是因为这部日剧看了之后会让人想到很多东西。相比很多台湾的青春偶像剧,有内涵很多。

最近在做pku的3557和3558的时候遇到很郁闷的事情,3557的精度要求低,3558的精度要求高。然后过了3557,却在3558总是wrong answer。试了很多方法做了几天,最后一个AC的人给了我代码参考,我发现和我的基本思路是差不多的,最郁闷是按他的思路编写提交,还是过不了。不过因为他的代码能AC,我就知道肯定是我的程序的唯一一个从来没检查过的地方有问题。就是组合数的函数,最后作详细的测试,果然,C(19, 7)的时候发现了错误。换了一个健全的组合数就AC了。从中,其实要感谢很多人,提供了很多意见。同时也要汲取教训,一个小小的地方蕴藏的杀机,可以被放大很多,尤其是我AC了3557。现在我会相信微软某个API的字符串没有做溢出检查导致几个亿的损失这样的话了。

现在要为了论文冲刺了!