2012/04/14

本来没想现在去找实习的,不过既然腾讯来了,就去打一次酱油吧。这算是我第一次参加正式的招聘吧,虽然是实习生的,但是也有必要写篇博客记录一下。

1、流水帐
2、总结 (更多…)

已经有165个生物在围观
2012/03/31

Linux Kernel实现的链表与众不同,大多数人所熟悉的方式应该是在“链表中包含结构体”,而Linux内核的实现方式则是所谓的“结构体中包含链表”。这样的说法听起来很玄乎,不如给出具体的定义和实例。

struct list_head {
	struct list_head *next, *prev;
};

这就是内核代码中Linked List的结构体定义,从list_head定义可以看出,内核的链表是循环链表。我们可以这么用它:

(更多…)

已经有205个生物在围观
2012/03/27

这是Linux操作系统分析的实验,
要求是这样的:“通过glibc API函数追踪glibc代码和内核代码的调用过程,理解其关键机制,并能现场查找代码回答问题”

工欲善其事,必先利其器。
首先需要安装一下额外的工具包,一个是 libc6-dbg,这是带有debug symbol信息的 libc.so;另一个是libc6-dev,这是glibc的源代码,获取之后我们就可以在gdb中查看代码了。

在Ubuntu/Debian 系统上,我们可以通过以下2条命令获得: (更多…)

Tags: ,. 已经有139个生物在围观
2012/02/09

2月8日凌晨紧张激烈的选课结束,很高兴想选的课都选到了,比如《编译工程》《Linux操作系统分析》《分布式与并行算法》等。

选课本身没什么好说的,但是其中的一些现象让我忍不住写下这篇博客。

早在选课前一天,班级的QQ群,学院QQ群,09级、10级的交流群变得异常的活跃,充斥着各种询问课程的消息。

本来,听取同学的意见、师兄师姐的经验作为自己的选课参考也是一件好事,但是事实上群里的讨论已经偏离这种意图。 (更多…)

已经有548个生物在围观
2012/01/18

要求:模拟一个缓存管理器。给出的测试文件中包含50万个页面请求,每一行用(X,Y)表示,其中X=1表示对页面号为Y的页面写操作,X=0表示对页面号为Y的页面读操作。例如  0,6558     1,3024  等。
规定:磁盘上的页面大小等于Buffer的一个块大小,为4KB;磁盘上的数据库文件data.dbf包含5000个页面,缓冲区有1024个Buffer。设计一个缓存管理器,并统计页面请求的命中和不命中次数。

先说下我的思路,如图,问题牵涉到下面三个部分的协同工作,其中省略了磁盘的读写部分。


(更多…)

已经有380个生物在围观
2011/12/12

上一篇博客里提到了一个简单的聚类算法kmeans。这里是用C语言写的一个命令行的版本,它似乎可以运行,也能产生结果,不过我也没有仔细验证过是否正确 :-)    这里是在GitHub上托管的源代码。

使用方法以Linux环境为例,首先make一下,生成可执行文件kmeans

然后 ./kmeans  input.csv  ouput.csv  3   random  means

input.csv和ouput.csv是输入数据和输出数据文件,CSV文件不神秘,用文本编辑器打开看就是几行点坐标数据。
3是指定要把点集分成几个类。
中心点Center计算有两种方式:1.mean(均值); 2.median(中位数)
初始化方法有以下两种方式:1.random partition(随机初始化); 2.k-means++(Knuth的弟子想出的方法) (更多…)

已经有660个生物在围观
2011/11/18

K-means Clustering Algorithm 中文名也许叫“K均值聚类算法”,是统计学和数据挖掘领域中常用的一种算法。维基百科上是这样介绍的:k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean (更多…)

已经有830个生物在围观
2011/10/01

时间倒回到2011年5月的一天,大学的最后一门课《计算机信息安全技术》,讲到《缓冲区溢出》这一章,并且给出了一段示例代码来演示缓冲区溢出,回到宿舍后出于好奇我运行了一下这段代码,发现结果并不是书上所说的那样,当时在人人网也发过一篇吐槽的日志,但是一直拖到现在都没有仔细的去研究过,正好现在十一放假没事,就花点时间搞搞啦。

书第136页-137页。代码如下,出于简单考虑(其实书上的C++代码格式也是错的),我除去了头文件和cout函数,这样就跟纯C语言代码是一样了。 (更多…)

Tags: ,. 已经有663个生物在围观
2011/09/01
暑假终究是要过完的,再次感叹一下时间过得飞快!
翻一翻毕业照片,感觉好像也就是前几天发生的事情一样,熟悉的笑容,熟悉的校园,只是再也回不到那个计科07班了;
翻一翻暑假买的书,感觉好像也就是昨天才送来的一样,依旧没翻几页。
-
回想这个暑假,甚至都没写几行代码。
坐在书桌前的时间倒是不少,但真正好像也没看进去多少书,不然现在怎么回想不起来呢。
为毛会这个样子呢?(好像一直都这个样子的吧,囧) (更多…)
Tags: . 已经有549个生物在围观
2011/08/18

Python 新旧版本之间的语法不兼容,导致iBus图标不显示,候选词框也不显示;导致Wicd无法启动。如下图所示。

问题产生:

由于Ubuntu默认安装了python2.6 ,后来我自己又装了python3.1,但是在终端里面输入python启动的是2.6版本的,这个是系统的默认,我们可以查看/usr/bin/目录,如图: (更多…)

Tags: . 已经有373个生物在围观