打上了ArchLinux里面提到的LCD补丁。附件包含制作好的RPM包。

No votes yet

奶奶的小菜园,纯天然绿色蔬菜。绿色的菜叶充满乡间的气息和恬静的感觉。


By my N73 Camera

No votes yet

默认的Ubuntu安装是没有Man手册的,因此需要额外安装一下这些包

  • manpages
  • manpages-dev
  • libstdc++6-4.2-doc
  • manpages-posix
  • manpages-posix-dev

No votes yet

Ubuntu & Debian默认关闭了Modeline支持

听说是因为一个root用户的安全的“原因”:https://bugs.launchpad.net/ubuntu/+source/vim/+bug/130531. 所以Ubuntu & Debian系统在默认情况下都禁用了modeline支持(请详见此类系统的:/usr/share/vim/vim71/debian.vim)。

因此说来,普通用户在.vimrc中打开还是没有坏处的。具体方法如下:

set modeline

补充一下:什么是vim的modeline呢?

vim的modeline就是通过在文本中加入一行形如下文的东西来控制vim格式的功能(我也是今天刚知道他叫modeline)

// vim: set ts=4 sw=4 et cindent

PHP源代码中基本都使用了这种功能,更详细的说明可以参考:help modeline

No votes yet

问题简述

相似度比较基于空间向量模型(Vector Space Model)。将两段文本用向量A、B表示,计算AB夹角的余弦值用以表示相似度。

具体步骤如下:

  1. 提取两段文本中所有词(事先需用空格分割好)。
  2. 计算每个词在两段文本中分别出现的次数(用BSD tree.h里的RBTREE保存)
  3. 用词频做为A、B的分量。
  4. 使用余弦公式计算AB夹角的余弦值。

举例

T1 = 我 爱 北京 天安门
T2 = 我 爱 北京 立交桥

提取所有的词

W = 我 爱 北京 天安门 立交桥

计算每个词分别出现的次数

CA = 我:1 爱:1 北京:1 天安门:1 立交桥:0
CB = 我:1 爱:1 北京:1 天安门:0 立交桥:1

分别计算向量AB

设S为总词数即T1,T2中总共出现词的数量

S = 4 + 4 = 8
A = (1/8, 1/8, 1/8, 1/8, 0/8)
B = (1/8, 1/8, 1/8, 0/8, 1/8)

应用余弦定理计算向量夹角

代码

源代码下载

git clone git://gitorious.org/postgrework-jianingy/mainline.git postgrework
cd postgrework/pg_trgm_sml

直接浏览

http://gitorious.org/projects/postgrework-jianingy/repos/mainline/trees/...

No votes yet


两位作者都是MIT教师,很有经验。当初在网上找到电子版,只因为看了开篇一个对系统各个部分性能很生动的比喻而被吸引。随后,一鼓作气读完第一章。先前对UNIX系统的很多疑惑都由此解开。书中习题丰富,引人思考。每大章配有Project便于学以致用,加深理解。内容涉及I/O,异步、并发,通信等多个部分。不只介绍API用法,而且加上很多原理性的解释。多处通过实例对不同处理方法进行优劣对比。实为学习Unix系统编程的好书,强力推荐。

No votes yet

昨晚意外中了Google的Bucket Test,发现Google已经有个靠用户Promote搜索结果的功能。截图右下角还出现了给搜索结果添加注释的功能。想不到这个曾经朴素的搜索结果页正在发生着革命性的变化。

Google's Result Promote

No votes yet

每当需要重启一个PostgreSQL,都需要知道数据库在磁盘上的具体位置。在重启前,可以通过如下方法找到数据库在磁盘上的位置。

postgres=# show data_directory;
 data_directory
----------------
 /export/db/postgres
(1 row)</pre>
No votes yet

Bamboo中文分词系统1.0.0 发布, 我感觉应该没啥大问题了,进入了可用的阶段了。欢迎大家测试。

修改日志

  • bamboo现在有能力进行词性标注了。
  • Bamboo现在有能力进行命名实体的识别了,其中包括人名,地名和机构名。
  • Bamboo现在有能力识别各种英文标识符了,例如: UA-1234-5678, F-15,等等
  • CRF2有专有的训练脚本了,您再也不用劳神去研究如果Build一个CRF2的模型了
  • 我们努力让配置文件更加具有可读性和灵活性,虽然还有很多工作需要继续完成。
  • 很多让人头疼的Bug被修正了。
  • 改变了PHP,PostgreSQL的扩展程序结构,现在他们可以运行得更快了。

项目主页

No votes yet

测试程序

#include <sys/time.h>
#include <iostream>
#include <string>

int main()
{
	struct timeval tv[2];
	struct timezone tz;

	int count = 50000;
	int elapsed = 0;

        // .. string initialization

	gettimeofday(&amp;tv[0], &amp;tz);
	while(count--) {
        // .. real action here ..
	}
	gettimeofday(&amp;tv[1], &amp;tz);

	elapsed = (tv[1].tv_sec - tv[0].tv_sec) * 1000000 
                      + (tv[1].tv_usec - tv[0].tv_usec);

	std::cout << "elapsed: " << (double)elapsed / 1000 << "ms" << std::endl;
}

operator+ vs append

使用 s = “/” + t, 测试时间为 16.375ms, 但是使用 s.append(”/”).append(t) 时间是 5.528ms.

operator+ vs operator +=

使用 s = s + t, 测试时间为 5596.4ms, 而相比之下 s += t 需要 4.639ms.

结论

很明显,像书本上讲的一样,opterator + 总是会创建一个临时对象。所以,要慢很多。因此,当需要连接字符串时应该首选 ** += **.

No votes yet