Categories

Calendar

November 2009
M T W T F S S
« Oct   Dec »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

名字空间的问题

昨天晚上回到寝室,发现室友都没有在玩游戏,而是关灯睡觉了,很是惊奇,后来才发现原来寝室没有交电费给停电了,我倒是觉得挺开心的 -.- ,至少这样可以早睡了。于是也整理睡觉,正要关机的时候收到湖边的短信,让我帮忙调一段很短的汇编代码,其实我汇编已经几乎忘光了,连 mov 的方向在两种汇编下面分别是怎样的都分不清楚了,不过既然是很短的,那还是看看能不能帮上忙吧。于是第二天一大早就起来,然后就邂逅了这个让我不断地以为自己肯定是还没有睡醒的 bug 。代码是嵌入在 C 语言里的,大概是某个题目吧,要求用汇编来实现把小写字母转换为大写,也就是实现注释中那段 C 语言的功能:

Growl for Windows meets GreaseMonkey

最近学校的 CC98 论坛简直慢得令人发指,总是让我感觉又回到了蓝田时代——洗完脸刷完牙回来了一个页面还没有打开。加上考试周到了,又特别喜欢灌水,所以老是想去刷新页面看有没有新帖子,其实主要也是看的俱乐部水楼、晚安楼之类的地方,不过每次等半天页面终于出来了,发现没有新帖也觉得相当浪费时间和感情。想起 quark 之前有做过一个监视 98 的新帖子,然后用 notification-daemon 给出提示的东西,于是我想也做一个类似的东西好了,让它自己在后台刷新,网络慢点也没有关系,至少我不用一直等在那里了,有新帖的时候再关注一下好了。

不过在 Windows 下没有 notification-daemon 可以用,而且诸如 Python、Ruby 之类的脚本在 Windows 下跑起来都觉得相当别扭。记得之前看过一个叫做 Growl for Windows 的东西(这家伙的缩写真有点那个……),好像就是 Mac 下的那个 Growl 的 clone 。于是去仔细看了一下,似乎支持一套标准的协议,而且各个语言的 binding 都很全。

为 Python 的 HTTP 客户端加入自定义的 Cookie

几乎所有脚本语言都提供了方便的 HTTP 客户端处理的功能,Python 也不例外,使用 urllib 和 urllib2 可以很方便地进行 HTTP GET 和 POST 等各种操作。并且还允许以类似于插件的形式加入一些 handler ,来定制 request 和 response ,比如代理的支持和 cookie 的支持都是这样添加进来的。具体来说,通过如下方式构造一个 opener :

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())

然后这个 opener 就可以处理 cookie 了,相当方便,并且可定制性也……好吧,总之,现在我希望能在客户端手动插入一些 cookie 值,但是不管是 HTTPCookieProcessor 还是 cookielib 里的 CookieJar 都没有提供类似的方法可以来实现。

CPU 风扇的问题

在上次讲调试的小课堂里我曾经提到过我前一阵子遇到过一个 Matlab 的问题,具体症状是,开启 Matlab 来做计算,过了大约一天以后,再去看,就会发现系统处于完全无响应的状态,完全挂掉了,键盘有一个灯在闪烁。

碰到了好几次之后我相当崩溃,这个 bug 几乎处于不可调试的状态,首先要重现 bug 就很麻烦,虽然几乎都能重新,但是我不可能一直坐在那里盯着屏幕等一天(具体需要几个小时来重现我也不太清除),而且 bug 出现之后系统会挂掉,唯一的办法是强制重启,这个时候所有现场都被销毁了。另一方面,阅读代码的必杀技也没法用,因为我的程序是一段不长的 Matlab 代码,在这样的脚本语言里,内存都是自动管理的,我能想到的危害最大的操作大概就是申请超大内存了,一般会有两个结局:如果 swap 空间还能承受得了的话,会使用 swap 空间,并导致系统奇慢无比,不过并没有挂掉;如果 swap 空间都不够用了,那么 Linux 系统会把这个进程 kill 掉,而不是同归于尽。总的来说,不太可能是这段 Matlab 脚本导致了这么严重的问题,如果真有问题的话,估计是出在 Matlab 了,并且还是非常强悍的 bug ,会让系统彻底挂掉。

漫谈 Clustering (5): Hierarchical Clustering

本文是“漫谈 Clustering 系列”中的第 8 篇,参见本系列的其他文章。

系列不小心又拖了好久,其实正儿八经的 blog 也好久没有写了,因为比较忙嘛,不过觉得 Hierarchical Clustering 这个话题我能说的东西应该不多,所以还是先写了吧(我准备这次一个公式都不贴 )。Hierarchical Clustering 正如它字面上的意思那样,是层次化的聚类,得出来的结构是一棵树,如右图所示。在前面我们介绍过不少聚类方法,但是都是“平坦”型的聚类,然而他们还有一个更大的共同点,或者说是弱点,就是难以确定类别数。实际上,(在某次不太正式的电话面试里)我曾被问及过这个问题,就是聚类的时候如何确定类别数。

MSTC 小课堂之 C 语言调试技术

一方面现在越来越大类培养了,另一方面我们自己的审视标准也在上升吧,总是有一种现在小课堂参与率不够高的一种“错觉”,反正觉得有些劳民伤财。所以,一方面现在我们开始降低小课堂的成本(比如,省略掉横幅这个较昂贵的宣传方式),另一方面尽量让主题更加大众化一些。

比如上次 quark 的关于 Word 的小课堂,就效果不错。说起来当时听说 MSTC 居然要讲 MS 的技术了,一些老朋友还深表诧异! 而这次我来讲的 C 语言调试的课堂,其实主要是想讲调试的,但是还是在前面加了个“C 语言”就是要显得大众一点,C 语言现在是很多专业都要学的课嘛。

MSTC 月刊创刊号

idea 应该就是若缘半夜突然醒来决定写下来的了,然后最后把创刊号做出来,实在是花了很多心血,也经历了不少波折,不过,天色已晚,还是不多说了。好像外面在刮风打雷下雨了,再不回去就只能待在实验室了。这里奉上 MSTC 月刊创刊号下载。

总的来说,很不容易,我虽然做的苦力并不多,但是也感觉异常辛苦。不过大概也是第一次排版杂志的关系吧,对于要做什么完全没有概念。但是,感觉真的是每月都做的话,大概大家都承受不了这么大的负担呢。总之,先起个好头,后面的慢慢来吧!

另外,由于最近忙碌了好久,一直没有怎么更新 blog ,两个系列也拖了好久,偶尔想来写都是一些无聊的内容,实在不想把这里水掉,所以索性另外开了一个 blog: http://diary.pluskid.org ,于是在那里我可以放开水了,完全不写技术的东西,而这里,还是尽量保证质量吧!所以,对于看我灌水不感兴趣的朋友就不用关注那个新 blog 了。