☆Wonderland of JinglE☆
百度空间 | 百度首页 
 
文章列表
 
2009年12月08日 星期二 15:52
     BKDRHash总体评价最好。其中最后返回结果和0x7FFFFFFF做与运算应该是为了避免un int转换为int时可能变成负数。

绝大多数字符串的hash算法都是选择一个合适的数(很多是素数)和每个字符相乘累加。比如BKDRHash是不断的乘131,DJBHash是用的33(初始种子是5381,times33算法的变形),SDBMHash是用65599 (=2^16+2^6-1)
// BKDR Hash Function
unsigned
 
2009年12月02日 星期三 09:28
    最近找工作,经过许多笔试、面试,弄的自己其实挺乱的,似乎忘了最开始自己的想法,怀疑自己到底在追求什么。也许该好好想想,我们追求的应该不仅仅是薪水,户口,房子等等。

 
2009年12月01日 星期二 10:40
动态数组在开辟空间的时候需要开辟中间地址缓冲区,最好先构造数据存储区,再构造中间地址缓冲区,那样分配的数据空间是连续的,而且释放空间时不用再遍历一遍。

int *p = ( int* )malloc( m * n * sizeof( int ) );

int **q = ( int** )malloc( m * sizeof( int* ) );

for( i = 0; i < m; ++i )

q[i] = p + i * n;

free(p);
free(q);


而实际上可以只malloc一次,把中间地址缓冲区的空间也一次开好。(同学面试的时候问到这个问题,怎么只malloc一次,开辟动态2维数
 
2009年11月25日 星期三 10:56
    题目大致意思要求一个字符串所有子字符串(长度从1到总长,但顺序不同,如ab和ba算一个)

思路:先对字符串进行排序,然后按字符串下标列出所有组合,其中需要剔除有相同字符的问题(例如abbc里第一个b组成的abc和第二个b组成的abc算作一个)

代码如下:

#include <stdio.h>
#include <string.h>
#include <algorithm>

using namespace std;

void comb(const char *source, int n, int r)
{

int *pos = new int[r+1]; //pos[]
 
2009年11月19日 星期四 23:25
    上午去了一趟传说中的兆维,一个以前只是常听说(一个重要的机房)但一直不知道在哪儿的地方。其实直到前一天晚上还犹豫要不要去,因为确实太远了。

终于想想还是想去,更多的是想了解一下douban。一直很好奇这样很有活力但相对较小的互联网公司。笔试题做的较烂,一道很简单的算法题居然没弄出来=。=  不过没关系,其实后来和面试官谈的时候自己更多的是想多了解一下是怎么运作的,盈利模式等等。

当然,中间也谈到公司很有798工厂的风格,很高的厂房似的办公环境,但布置的很有艺术气息,
 
2009年11月19日 星期四 20:38
今天发现一个问题,A包依赖的B应该是64位包依赖64位包,而实际上32位的B也能装上64位A,可能会有问题。调研相关文档后发现,其实一开始RPM的开发者不赞成加上这个功能,因为实际上如果依赖某个包,那32位的这个包就不会有lib64下的.so,在安装时就会报错。而后来在新版的RPM(4.6版本后),开始支持加入依赖包平台指定参数,但目前yum里最新的版本是4.4。和xieyuanjiang讨论后,发现实际A包现在并未用到B里的内容(可能是历史遗留问题),所以才会直接安装成功,所以这个问题应该不算问题。

关于加入支持依赖包平台
 
2009年11月18日 星期三 20:27
带有缩进的代码如下:
http://blog.csdn.net/ejingle/archive/2009/11/19/4833203.aspx


//如果需要打印出最短路径,把PosPair改为结构体,
里面加入当前坐标的前驱坐标
//后续改进:可以考虑用A*算法,设计较好的启发函数,减少每步的搜索次数

// find_horse.cpp : Defines the entry point for the console application.
//

//如果需要打
 
2009年11月18日 星期三 12:00
思路:在不改变客户端代码的情况下,只改变中控端代码。客户端传volid的时候传客户端IP地址和密码串的md5值。在中控端进行验证,验证成功后返回vol数据,否则goto fail;

客户端mount方式如下:

/usr/sbin/glusterfs --log-level=WARNING --volfile-server=xen-gfs-monitor --volfile-id=abc*ce23aa721f24ec3458c5d3be1f81b792 /dfs_abc

其中,ce23aa721f24ec3458c5d3be1f81b792为客户端IP和卷abc的密码组合后的MD5值。

修改xlators/protocol/server/src/server-protocol.c

函数:mop_getspec -
 
2009年11月18日 星期三 11:01
GlusterFS是一个开源的分布式文件系统,实际使用中有以下问题:

GlusterFS为了保证客户端连接的时候是root帐户,限制只接受来自客户端1024以下的端口。这样产生两个问题:一是1024以下有许多重要的系统端口可能被GlusterFS占用;二是在连接多个卷、server机器过多(数百台)的时候,会发生端口不够用。

解决办法:将客户端端口限制在800到1024,并复用端口,修改代码如下:

--- glusterfs-2.0.7/transport/socket/src/name.c 2009-10-01 21:19:54.000000000 +0800
+++ glusterfs-2.0.7-1117/transport/s
 
2009年11月18日 星期三 10:40
在给GlusterFS修改源码的过程中用到了打patch和使用一个spec打出4种不同的包,总结一下:

1)打patch

如果对原来某RPM发行版有改动,最好采取打patch而不是直接改代码重新打包,那样以后再改动时知道原来进行了哪些改动。

以glusterfs为例

  • 1. 首先将下载到的源码glusterfs-VERSION.tar.gz解压重新拷贝一份glusterfs-VERSION_new。

在glusterfs_new更改需要改动的代码

  • 2. diff -ru --show-c-function 旧的 新的 > XXX.patch (注意顺序,先旧的
 
     
 
 
个人档案
 
jingle8848

北京 海淀区 
上次登录:
1天前
加为好友
 
   
 
文章分类
 
 
 
 
 
 
 
 
 
 
     
 
日历
 
     
 
最新照片
 
   
 
我的搜藏
 
     
 
最近访客
 
 

从军行

gada_sun

伪娘高達

tengjz

psytown

JinrHope

seraphees

ribpig
     
 
最新评论
 
文章评论|照片评论


回复mumu:呵呵,总结了一些笔试面试题啥的
 
 

[表情]
 

哪公司
 

谢了,省了不少功夫
 
     
 
订阅我的空间
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     


©2009 Baidu