magic codes
c/c++ , algorithm,sphinx
c/c++ , algorithm,sphinx
三月 5th, 2011
最近多次遇到linux丢包的问题,表现为/sbin/ifconfig 在eth0 设备下dropped项不为0
解决方法就是安装对应网卡的驱动(下面的操作都是在root 权限下)
步骤:
1. lspci 找到网卡设备的型号
2. 根据型号去相应网站查找(google 即可),我这里是:Intel Corporation 82566DC Gigabit Network Connection
3. 到Intel 官网找到响应型号的linux驱动
4. 下载后解压,阅读README,可知,只需要cd src ; make && make install即可
遇到的问题:
1. make 编译不通过,提示没有kernel 的头文件, yum install kernel-devel
2. 安装kernel-devel后 , make 还是不能通过,提示没有kernel的头文件,我猜测是路径不对,于是打开Makefile
发现可以添加kernel源码的路径
# All the places we look for kernel source
KSP := /lib/modules/$(BUILD_KERNEL)/build \
/lib/modules/$(BUILD_KERNEL)/source \
/lib/modules/$(BUILD_KERNEL)-default/build \
/usr/src/linux-$(BUILD_KERNEL) \
/usr/src/linux-$($(BUILD_KERNEL) | sed 's/-.*//') \
/usr/src/kernel-headers-$(BUILD_KERNEL) \
/usr/src/kernel-source-$(BUILD_KERNEL) \
/usr/src/linux-$($(BUILD_KERNEL) | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/') \
/usr/src/linux \
/usr/src/kernels/2.6.18-194.32.1.el5-x86_64
最后一条是我添加的,make 之后编译通过,make install 安装
3. 运行 modprobe e1000e 加载驱动模块,然后/sbin/ifconfig查看,dropped还是不为0 ,应该是加载失败了
4. 继续回去翻阅README,原来linux 2.6内核下需要先卸载才能加载模块
运行命令:
rmmod e1000e; modprobe e1000e
5. /sbin/ifconfig 查看dropped变为0 , 问题解决
总结:
我在安装或配置服务的时候,往往都是看一眼文档,然后按照自己的理解去配置,这个习惯并不好,其实文档中有各种问题的解决方案,如果事先阅读,会事半功倍。在配置失败的时候,一定要耐心的在回去查阅文档说明等,往往会有意外收获,甚至让你捶胸顿足,原来这么简单,都怪自己没细心看。
二月 15th, 2011
1. command
ifconfig eth0:0 down
2. remove forever
check /etc/sysconfig/network-script/
reference:
Linux command to remove virtual interfaces or network aliases
一月 24th, 2011
因为对linux 编程没有系统的学习,基本是用到什么,查什么资料,在使用execl函数的时候,我碰到两个问题,写在这里,免得忘记。
execl 函数调用的第一个参数应该是程序名,相当于argv[0], 最后一个参数必须是(char *)NULL 这是硬性规定,如果最后一个参数不是NULL,会出现Bad Address错误!
一月 19th, 2011
我不是疯狂,仅仅是热爱而已
一直想找一项运动,作为自己终生的坚持,但无论足球篮球还是羽毛球,都激不起我心中深层的热情,其实一直想玩轮滑,不为别的,就因为轮滑的同学们看起来特帅,一直没有买,因为一直不舍得那几百块钱。2周前买了,不是因为舍得了,而是有了志同道合的朋友,一狠心,我们3人一人买了一双,狠的真给力!
似乎一篇庆祝的文章早该在我收到鞋的时候诞生的,但因为种种原因,我的心却抽不出片刻来作志纪念。
其实,自从敢上街,我就想一个人,狠狠的滑一场,什么都不想,今日终如愿。
穿鞋出门,门口一个小坡,很小却也很陡,我曾经狠狠摔过的地方。为了抹去上次的阴影,我还是选择再滑一次,看来这几天的练习没有白费,轻松搞定,开心上路。
小区前面有一所学校,进去看过就知道,里面美女的数量是可以跟山经一拼的,这儿的操场是我们轮滑小组练习的地方,当我滑到学校门口的时候,却发现大门右边有一个又缓又长的坡,何不上去一试呢?心中笃定,于是固执的坚持。
我时刻告诫自己,把安全放在首位,于是我决定从小半坡上往下滑,然后慢慢增加高度,可是,在上坡的过程中,总觉得前面的坡很缓,于是不知不觉,我已经到了最上面,但我往下看的时候,才发现原来我已经超出了最初的设定,箭在弦上,于是就不得不发了。
准备练习一下S形减速,慢慢起步,滑行,速度迅速飙升,不下坡不知道什么叫速度,不下坡不知道什么叫心跳,不下坡不知道什么叫T煞,当我试图S形减速时,猛烈的速度会一下让你转向一边,不敢做了,S形是浮云,后面的整个过程都是内八字下坡,但是速度仍然刹不住,就在快要下到坡底的时候,脚下被小小的一道沟挡了一下,身子便立马飞出去了,前面有一棵树,我死命的抱住。。。
回头看,我的身子被甩出去2,3米的样子,索性没有受伤,哥的心终于舒展一点,摔摔真痛快!
有了刚才的经验,我定了定神,固执的再次往坡上滑去,这次学乖了,稍稍上一下,我便停下了,滑行,下坡,S形减速,慢慢熟练了,于是,我想试一下T煞。
在公司摔了5,6跤 ,终于换来了我的T煞,这次下坡,拿出来试试,起步,滑行,速度狂飙,左脚在前,右脚放到后面,成T字形,咣当一声,我应声而飞,原来自己的T煞一直都不对,停下的时候,T刹并转弯不错,很帅气,但这绝对是一个坏毛病,因为当你下坡T刹的时候,是很容易转弯的,如果你以为速度快了,会多转几个弯停下,那就大错特错了,高速下你向前的惯性根本不是转弯能消解掉的,结果就是,你的身子向前飞去,最终用身体刹车,这是我T刹的经验。。。
体验了一会下坡,渐渐有感觉了,于是决定进校园玩玩。
学校真的是很好的轮滑场所,路好车少,我没去广场,而是直接沿路滑行,刷遍整个学校。感觉越来越好,体会到了“用体重滑行”这句话,只要动作做好了,轮滑是很省力的,一点都不累。
在学校的直道上练习速滑,不断重复,偶尔有双推的感觉。 双推一直是我的目标,不过我现在并不打算练习,这次下坡的经历让我体验到基础真的很重要,基础就像数据结构和算法,学的时候不知道有什么用,而用的时候才知道原来是如此重要。
出来校园,夜色朦胧,暗黄的路灯下我拖着长长的影子,一个人。缓缓的滑行,心里变得安静。
上了江山南路,或许是有心挑战一下自己的极限,也或许是故意放纵一下自己的心情,亦可能是为了心中的那份执念,那份要做成一件事的执念,我决定刷到唐岛湾!
目光变得笃定,我上路了,人行道石子太震,我滑上了车行道。。。(未完,待续)
十二月 16th, 2010
Hi guys , This blog is powered by GAE , but I can't bind magicode.me for a long time ,so we can not use magicode.me to access this site untill now !
I have a free host space on godaddy , and I have made a 301 redirection from magicode.me to blog.magicode.me , so we can view this blog with magicode.me now !
enjoy yourselves
十二月 9th, 2010
今天上微博突然听见噩耗,GAE终于再次被墙了,我试了一下,果然appspot.com的二级域名已经不能访问,但是http://blog.magicode.me仍然可以访问,幸好绑定了顶级域名,否则就被伟大的Wall封杀了!对于没有绑定域名的同学可以用这种方法暂时访问:
编辑: C:\Windows\System32\drivers\etc\
在host文件最下面添加行:203.208.39.104 yourname.appspot.com
十一月 5th, 2010
3Q之战,字母与数字的战争
之所以写这篇文章,是因为我实在是看不下去了……
还记得在2009年的时候,腾讯推出QQ2010,,让我欣喜万分,用户体验太好了,很符合我的使用习惯,我把win7和QQ2010列为我最喜欢的软件。
也是在前些时候,360推出免费杀毒,彻底颠覆了杀毒自古收费的产业,发布仅仅几天,装机量达到全国第二,这让我佩服万分
不知从什么时候,腾讯推出腾讯搜搜,完全自主研发的网络搜索引擎,并且CSDN上还有soso团队的技术博客,其中的技术分享让我感到受益无穷。
忘了是什么时候,360启动免费软件起飞计划,使得我喜欢的主动防御工具MD得以免费,我欣喜若狂。
毕业的时候,我很想进入360,因为那里有pjf ,musehero等等我一直崇拜的技术牛人,但是看招聘信息上严厉的筛选条件,我还是止步了。
不过,360在我印象中,好像就从没有消停过,跟瑞星口水战,跟金山口水战,我现在不用杀毒软件,这跟我没关系,但是我却觉得360作为一个引领中国杀软的企业,不应该这么小家子气,没有一个权威公司应有的气质。
就在前些时候,“某某周刊”头条,指责了“狗日的腾讯”,只会抄袭,从无创新,靠庞大的用户技术扼杀了创新。
这一点,不敢苟同,下面来讨论第一个话题,腾讯的创新。 (..更多内容)
十月 24th, 2010
因为使用sphinx的过程中,进程老是崩溃,为了找出原因,我分析了crash_log,不过还是没有找到原因,倒是分析出了sphinx查询数据包格式:
说明一下下图的含义:每一小块代表一个含义,比如说client_ver表示客户端版本,带有*的小方块表示还可以再拆分,这里第一行是完整的协议图,后面四行是对*query的拆分(这里还有一些其他的比如filters,weights等我都没有拆分)。小方块上面的数字表示长度。比如client_ver占4个字节。还有一些是没有标长度的,他的长度就是前面的xxx_len,比如,查询字符串query_str的长度就是前面的:query_str_len。需要特别说明的是isgeo如果为1,才会有*geo部分,如果为0,则没有*geo部分。
本协议图适用于sphinx1.1beta版,对于其他版本,可能不完全相同,还有,由于我水平有限,可能有分析失误的地方,希望高人能够指出。
ps .下图可能显示不完整,建议下载后查看。
十月 24th, 2010
向量模型
上一篇文章中学习了布尔模型,事隔一个月后我才开始看下一节的内容,真是汗颜啊,估计没有像我这么学习的,废话就不多说了,总结一下向量模型这一节吧。
布尔模型的二值权值(0,1)过于简单,并不能很好的检索出符合用户查询的结果,比如,我要搜索“山东经济学院”,进行分词(有关分词的介绍,请看我另一篇文章:中文分词与搜索引擎),分为:“山东/经济/学院”三个词,设“山东”为k1,“经济”为k2,“学院”为k3。与这个查询相关的文章则必须包含k1,k2,k3,即(1,1,1)而对于包含“经济学院”即(0,1,1)的文章则无法被检索到(在山东,经济学院就是指山东经济学院)。根本原因就是布尔模型本身过于简单,只能表达相关或不相关(相似度分别为1,0)。向量模型的出现则很好的解决了这个问题,细化了相关与不相关之间的层级关系,比如说吧:完全相关(相同?)=10,不相关=0 ,则0-10(不包括0)之间文章都可以被检索到,并且按照相关度排序,这样就解决了布尔模型表达太过“生硬”的问题。
现在来看一下向量模型的具体内容。 (..更多内容)
十月 21st, 2010
正要睡觉,发现群里在讨论一个问题:
群里如此安静。。。我来提个问题(又是从哪里找的?)。。
已知
struct Node
{
int a;
char b;
...//中间省略无数代码
struct list_head list;
...//中间省略无数代码
};
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
近期评论