2010年7月 的存档

看到黑夜路人写的kv数据库应用,膜拜不已,作者给出了一些hash的参考链接,对于我等初学者只能研读并收藏之。 tmdb:http://heiyeluren.googlecode.com/files/tmdb-0.0.1.zip 各种字符串Hash函数比较:http://blog.csai.cn/user3/50125/archives/2009/35638.html 字符串hash算法比较 AND 经典HASH函数:http://blog.csai.cn/user3/50125/archives/2009/35639.html 其他: 依稀记得本科时候缪哥给我也讲过一个简单的hash算法,现在回忆起来应该是类似下面的(未经任何测试的伪代码) unsigned int hash(char *s){ unsigned int r; unsigned int h = 0; while(*s){ r += (*s) * round(pow(1<<8,h++)); } return (r & 0x7FFFFFFF); }

2010年7月13日19:44 | 没有评论
标签:

有意思的yy贴,后面有一段是有关WOW,介于不是很懂直接颜色改为灰色。 000000000000分割线00000000000000000 月入刚过十万大洋 帝都魔都几套车房 海外归来博士学历 红颜都是美女娇娘 职位全是企业高管 单位都是世界百强 逢年过节都发金条 班上没事整天上网 一米八五面容俊朗 肌肉结实双腿修长 初中抓网高中灌篮 大学最次校队队长 肉搏教官一个揍俩 百米速度参考刘翔 别看宅男天天在线 嘿咻叫我夜七次郎 能写程序能修电脑 写点小说译点文章 做饭烧菜稀松平常 吹拉弹唱样样在行 电脑五开感觉良好 阴影特效十分流畅 魔兽只是小小娱乐 酒吧KTV 是我主场 手机都要IPHONE以上 两千以下那叫低档 闲来无事看场电影 所选必须IMDB上榜 星际微操独步天下 APM 四百难以抵挡 回想当年打CS 丢个手雷一炮三响 稀有宠骑满包都是 没有橙武少来亮相 滴屁艾斯常年第一 带个蓝绿也拿肩膀 大号小号都SW毕业 不1V30您别下战场 成就不到两千五百 那你肯定是快餐党

2010年7月13日18:52 | 没有评论
分类: 那些奇葩
标签:

终于把git使用起来了,而不是照着书做练习,往往用在工作中才能会发现许多问题。因为原来使用svn比较多,总会忍不住和svn做比较,总结如下: 1。首先是概念的转变,svn是典型C/S结构或者说具有主从的概念,往往都是从服务器checkout代码再向服务器提交。对于git来说每个版本库都是平等,平等就相当于每个库都可以从其他库merge代码也可以提供给其他库自己的代码,这也符合git是一款分布式版本管理软件的概念。 2。版本管理软件的操作都差不多,无碍乎是初始化,checkout,checkin,然后提供一些显示diff,处理冲突,日志跟踪的功能。git比较有特点是存在暂存区的概念,任何修改都可以add到暂存区中,当然这个也没有太大必要,就是提交前的一个缓冲。当然也可以直接git commit <file>或者-a提交所以文件 3。在与远程库操作中git支持ssh,git和http三种协议,这对于linux用户来说事件好事,git的通信直接ssh即可,对于git协议通常用于只读的checkout因为它支持匿名访问。git的远程通信可以与svn做对比,git clone从远程库获取代码,通过git pull来更新代码,通过git push来提交更新(当然需要远程库同意)并且这些操作不是只针对一个远程库的(不像svn,从一个库checkout代码以后都只与这个库通信),通过git remote add可以添加其他远程库,并获取代码这也体现了分布式的概念。 4。在工作中还涉及带git和svn的通信,svn和csv的用户来说git可以无缝连接,git svn提供了丰富的方法,当然命令上也许有些差别。一般来说用git作为一种细颗粒度的版本控制,svn更多的作为一种存储仓库。git在版本的控制还是相当强大的。在使用git连接svn时,svn库最好是标准结构(即包含trunk,tags,branches三个目录)这样git svn clone -s可以很好的识别目录结构,我就碰到了一个没有很好结构的svn库,最后还是为了git重新整理的目录结构。git svn rebase命令同步svn库,其实是做了git svn fetch(先同步到本地远程库)和git rebase(关于rebase参看这里,今天看到的一句话上游merge,下游rebase,颇有意思) 5。有关编码问题,可以配置i18n.commitencoding和i18n.logoutputencoding ,我在gbk编码的机器上用iso-18859-1即可,这应该是对编码不做任何改动,所以提交和显示都是gbk。如果不做任何配置git会用utf8去encoding,必将出现乱。如果在utf-8的机器上查看gbk的log好像怎样都会出现乱码,我想应该是没有能把gbk转成utf-8的功能。不过最好都用utf-8或者都用同一编码的机器,这样就不用担心乱码了。 6。还可以配置全局的选项alias.XX “” 比如git config –global alias.ci “commit” git中没有把命令简化,这对于常用svn的人来说上手稍微不习惯,用alias可以很容易的解决这一问题。git中有关global的配置都在~/.gitconfig而库的配置都在.git/config中 先写这么多,git的命令之多是人难以想象的,这也能看出其功能之强大,很多用法我至今也不是特别了解,以后的心得继续补充。 文档: http://www.kernel.org/pub/software/scm/git/docs/ http://progit.org/book/zh/

2010年7月9日13:14 | 2 条评论
分类: 兴趣所在
标签: ,

尝试了mod_python和mod_wsgi两种配置方法 mod_python方式 到http://httpd.apache.org/modules/python-download.cgi下载源码包,apache 2.X使用mod_python3.3版本,使用DSO的方式编译成可加载的模块 ./configure –with-apxs=/usr/local/www/bin/apxs make sudo make install 注1:如果环境变量里面没有python的运行环境还需要指定–with-python参数。 注2:编译可能会出现错误,我用的是apache2.214和python2.4编译出现connobject.c:142: error: request for member ‘next’ in something not a structure or union。google到已经人报告这个bug,把connobject.c 142行“!(b == APR_BRIGADE_SENTINEL(b) ||”改为 “!(b == APR_BRIGADE_SENTINEL(bb) ||” 之后再httpd.conf中把编译好的so加载进来。然后在配置文件中添加站点的配置 ,具体可以参见mod_python的文档http://www.modpython.org/live/current/doc-html/directives.html SetHandler python-program PythonPath “[‘/path/to/site/parent’] + sys.path” PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On 注1:这里用的是Django中的mod_python 注2:如果站点所在文件夹不在系统环境变量中需用PythonPath添加 mod_wsgi方式 这种方式完全遵循wsgi协议,虽然现在我还对wsgi没有很深刻的了解,模块应该是让apache实现了协议的接口。 在http://code.google.com/p/modwsgi/downloads/list下载源码,与mod_python一样编译成so并在http.conf中加载 配置文档参考 http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives 有关Django的配置参考http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango http.conf中 […]

2010年7月1日20:37 | 没有评论
分类: 兴趣所在
标签: , ,