雪灾

回家一个星期了,每天看到的新闻都无一例外地在报道这次大范围雪灾的最新情况。事实上,这里的气温也是已经连续一个星期低于10摄氏度了,而且天气预报说直到新年前都会是这样。

这次的雪灾,每个镜头都是那么的触目惊心,像前两天广州火车站那么多人被迫在广场留宿几个晚上,不是一般的冷!而且还有雨。湖南重灾区更惨,如果我在低过0度又没有电又没有水的情况,同时也意味着没有暖气的情况下都不知道怎样过。可能只能用煤气煮雪应付着,也可能更槽糕。

湖南段的断电和暴雪,导致了火车走不动,事实上民航也好不了多少。在滞留的旅客中,有很多我的同学,希望他们能顺利回家。

chunyun

Google做了一个春运交通图,应该是实时的吧,地址是这里

冬雨

再过一小时就回家了,在大学城逗留的最后一天,竟然哗哗地下起了雨。起来的时候,天暗暗的,越是听到雨声越能感觉校园的宁静。天气预报说今天只有6到9摄氏度,明天和后天也是一样,还是回家避寒比较明智。

这几天主要在忙新成员培训,试试当小老师,虽然准备了很长时间,花了很多时间,不过还是值得的。在这个过程中,不仅回顾了自己学过的东西,还发现新的东西。讲课的过程也很新鲜,不过喉咙有点受不了,慢慢才习惯。总之,这五天半还是蛮好玩的,呵呵,以后有机会再试试。

辗转相除法

今天回顾一下以前学过的C++,看到了用辗转相除法求两个正整数的最大公约数,似乎很有意思,记录下来,以后忘记的时候可以看看。

for ((r = m % n) != 0) {
	m = n;
	n = r;
}
/* n is the Greatest Common Divisor of m and n */

上面举了一个C代码的例子。然后上网查了一下为什么这样辗转相除可以得到最大公约数。其实就是要搞清为什么gcd(m, n)和gcd(n, r)是一样的。

假设“m = n × q + r”,再假设x是m和n的公约数,则x能够整除m,也能够整除n,因此x能够整除r。因为m和n的任意公约数x都有刚才说的性质,就是能够整除r。所以,最大公约数作为公约数的一个也不例外,最大公约数也能整除r,所以gcd(m, n)和gcd(n, r)相等。

这篇日志的另外一个目的是试验一下Syntax Highlight这个插件,用来把代码上色的,效果不错。

本科考试结束

前天下午,本科的最后一次考试终于结束了。回想四年来的读书生涯,真是经历过很多事情。大一可以说是无知,当时什么都不知道,每样东西都能带来新鲜感,如果对大一的读书作个评价,那可以说是四年里最勤奋的一年,带着高考的那股劲,每日早出晚归,考试成绩的优异,是之前和之后都没得比的。大二是轻度堕落,学习成绩随着感情生活跌宕起伏。大三是转型期,带着强而有力的基础去学自己真的想学的东西,同时尽力一拼去拿保研的资格。大四的考试则是为了凑学分。

不管怎样,下学期没课了。因此可以更加专心发展自己的专长。但是,研一的时候还是要读书考试,不过现在早着,到时再说,现在先享受半年再说。

最近最热门的IT话题莫过于MacBook Air,被很多人称作史上最薄的笔记本电脑。不知道实用不?但是其设计真的很酷。

学习C总结

前个星期,终于看完了俗称为K&R的《The C Programming Language》的第二版了,因此现在作一总结。

不得不说,当初看这本经典之作的初衷还真是有点奇怪。这个学期刚开始的时候,不知出于何种目的,想找一本经典原版书看看,可能是因为暑假的时候完整地看完了英文版的CCNA网院教程,觉得看英文版的IT书实在对自己很有益处。找了很久,看了很多人的评论,最后圈定了两本,一本是K&R2,另一本《Computer Networks》第四版。前者是C语言经典书中的第一位,C语言又始终是经典中的经典,所以就决定先看了。

K&R2里面有很多精彩的例子,而且大部分都很精短,我把它们分了几类。第一类是关于输入输出的,单凭getchar和putchar两个函数已经可以做出很多实用的程序,如UNIX的wc(word count)、cat、grep等等。第二类是涉及算法的,如二分搜索和快速排序算法。第三类是涉及数据结构的,如hash表的实现和树的实现和遍历。第四类是涉及系统调用的,如UNIX的cp、ls等。所以看完这本书,我觉得它包含了计算机系很多骨干课程的部分内容进去,而且因为这是介绍C语言的书,所以涉及到算法、数据结构和操作系统的时候,一般不会有太多解释。所以我觉得现在把所有课程学完之后看这本书,恰到好处,而且把很多已经忘得差不多的东西补回来。

学完这本书,主要收获如下:第一、记熟了很多算法;第二、明白了UNIX和Linux的输入输出运作;第三、记熟了很多C的库函数和相应的头文件;第四、终于理解了头文件是干什么用的;第五、见识了高手的编程风格…

接下来,有了C,打算不时做一下sicily(中大的ACM系统)。有机会也会把以前一些人工智能的算法和数据结构的实现用C去做试试。我一直的想法是,想找一个计算机应用的最小集合,目前我的答案是一个内核、一个编译器,一个汇编链接器和一个文本编辑器,有了这些其他都能变出来,以后再慢慢验证这个答案。

Personas For Firefox

Personas是mozilla labs的产品,我一开始没看完,还以为是几款比较精致的主题。后来试用了之后,觉得很神奇,安装的时候只有46KB。心里面想主题能够这么小?后来才知道原来不是这样。

Personas是FireFox的扩展,是用来更换主题用的。装了之后,如果想用新的主题可以不用重启FireFox就看到主题的效果,我们只需要单击FireFox左下角的狐狸就行了。Personas本身提供了很多主题的链接,也是通过左下角搞定,所以从此以后换主题就不用再下载主题、安装,然后再重启FireFox那么麻烦了。Mozilla labs的地址在这里http://labs.mozilla.com/

 

上面是我之前用的一款Personas的主题。最近终于看到CCNA Exploration 4.0的课程可以访问了,实在太好了。

广东动感换了网址

上个星期因为想查询我的手机业务,所以上动感地带的网上营业厅。但是很无奈,连续几天,总是上不了,网页的内容无法显示。我一开始还以为是不支持IE7或者FireFox,所以上不了。后来觉得不太可能。再多搜几次,才发现现在的地址换了。现在的网址是这个,http://m-zone.gd.chinamobile.com

现在,我终于能够把我的5元钱的彩铃业务退掉了。不过看到似乎GPRS真的由原来的5元包月100MB上升到15元。而且还只是几天前的事,无奈。

用N73上网

昨天试着用N73作电脑的modem上网,发现很爽。如果是用N73,方法很简单,就是下载了Nokia的PC套件后,用数据线或者连着手机,在套件中选用接入Internet就可以了。昨天一试,显示的接入速度有400多k。

后来在网上查了一下,原来现在5元就能包GPRS流量100MB,所以在广东还真是爽。不过不包月的话,好像还是1元1MB。那么,我这个假期在家里可以考虑使用一个月的套餐爽一下了,呵呵。

今天还有一个好消息,终于到邮局拿了《哈利波特7》。

纳米盘

这个可不是物质上的东西,今天要介绍的其实是一个叫做“纳米盘”的网站。纳米盘是一个提供网络硬盘服务的网站,功能很明确,就是做网络存储的服务。它的一大卖点是支持外链。根据网站上的说法,是尝试用分布式的方法做网络存储,看样子感觉上是实验室的产品。http://www.namipan.com

上图就是我上传到纳米盘的一张图片。到现在为止,我试用了纳米盘大概一个月,感觉速度不错,也很简洁,它还提供一个客户端上传下载的程序我还没试过。总体感觉这个网站的服务不错。

read系统调用的问题

最近在学习《The C Programming Language》的第八章第六节,这一节讲的是如何设计一个类似ls的程序。例子的思路是很好的,但是在Linux下实现却遇到一个很难解决的问题。

其中一步是读取目录文件的信息,因为懂得Linux的人都知道,Linux下面什么都是文件,目录也是文件,然后目录里的文件的信息(包括名字和节点号等)以列表的形式保存在目录文件中,所以要知道目录里到底有什么文件,就要读取目录文件。读取文件在书上的例子是用了系统调用read,在这一章其实read已经用了很多次了,我都把用法记得很熟。

然而,把源文件编译出来的结果却始终读不了目录里的信息,追踪下去,发现原来是系统调用read出了问题,read可以读很多文件,但是读不了目录文件,上网搜了一下,原来很早以前,出于安全性考虑,就已经不允许系统调用read去读取目录文件。然后搜到了一个类似的系统调用专门读目录,叫getdents调用,无奈似乎在include目录下找不到这个函数的声明。所以折腾了很久之后最终放弃了。现在,我只有放弃使用系统调用,而是利用Linux一个同名函数readdir去间接实现我的readdir了。其实,既然Linux的readdir能够实现,而且源代码又是可以看的,那么我应该找到它的实现就知道正确的系统调用是什么了。不过Linux的函数名字很多时候是define过的,要找出原来的函数的实现很烦,所以放弃了。

昨天Google的涂鸦原来不止是庆祝新年,还庆祝TCP/IP协议诞生20周年,看看底部就知道了,呵呵