五帝 的个人资料Wudi's Blog日志列表 工具 帮助

日志


2006/11/27

搬家

关闭这个 blog 后,有的时候有话没地方说,挺不方便的。

今天看了看去年就在 blogspot 注册了的 blog,发现功能增加了不少,而且似乎已经有段时间能直接访问了。

打算打算在那继续写 blog 了。

http://wudicgi.blogspot.com/

2006/8/3

关闭

昨天发现 MSN Spaces 变成 Live Spaces 了,有几处主要变化:

  1. 页面是按照 1024x768 的分辨率设计的,在 800x600 的分辨率下浏览非常不舒服
  2. 页面顶部增加了横幅广告
  3. 整体采用了 Live 的风格

鉴于本人对 Vista & Live 风格的厌恶,以及条目更新速度的逐渐降低,决定不在这里写 blog 了。

2006/7/4

在 Windows 上使用 Apache 2 配置 Subversion 服务器

昨天把 Subversion 的服务器端配置好了,发现有些指南存在一些问题,有的甚至会误导人。

下面把我的安装过程写一下,不一定完全正确,但保证可以马上运行起来。

1. 安装 Apache

如果还未安装 Apache,先安装。注意版本只能是 2.x 的,mod_dav_svn 模块不支持 2.2。

2. 安装 Subversion

从 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 下载文件名形如 svn-x.x.x-setup.exe 的程序,并安装。安装时选择配置 Subversion 模块。

3. 创建基本验证所用的用户文件

在 C:\Program Files\Apache Group\Apache2\bin 目录下,执行:

htpasswd -c svn.passwd <username>

然后根据提示输入密码,svn.passwd 这个用户文件就建立好了,把它复制到 conf 目录(不是必须复制,只要在配置文件中填写正确的路径就行了)。

4. 配置 httpd.conf

第 2 步完成后,Subversion 服务应该就已经运行起来了,不过有些地方还需要配置一下。打开 httpd.conf,你会发现刚才运行的安装程序在最后一行 LoadModule 语句后添加了如下语句:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

我曾试图按照一些指南上说的,把 C:/Program Files/Subversion/bin 里的文件复制到 Apache 的 modules 目录里,并把 http.conf 里的路径也改成相对路径。但发现这样 Apache 总是运行不起来(即使把某些手册中提到的 libdb42.dll 和 libeay32.dll 文件也复制过来),出现 "The requested operation has failed!" 的提示。所以现在还是使用安装程序所添加的绝对路径。

接下来添加 Subversion 的配置部分,将以下语句追加到 http.conf:

<Location /svn>
    DAV svn
    SVNParentPath D:/svn_repositories # SVN 库的父目录,这样就可以通过 /svn/* 访问各个库了
    AuthType Basic
    AuthName "Subversion Repositories"
    AuthUserFile "C:/Program Files/Apache Group/Apache2/conf/svn.passwd" # 上一步创建的用户文件
    Require valid-user
</Location>

至此,Subversion 服务就配置好了。

2006/5/4

模式识别 之 分类器

这两天在学习模式识别中的分类方法,由于知识有限,很多内容看不懂。

前两天做了一个简单的基于贝叶斯决策理论的分类器。在应用合并概率公式时发现一个问题,如果一个样本中有一个词在第一类中出现的概率为1,还有一个词在第一类中出现的概率为0(或者说在第二类中出现的概率为1),这时最终就会出现0除以0的问题,这是我不愿意看到的。还有,只要有一个词在某一类中的概率为1或0,最终概率就会等于1或0,这也是我不愿意看到的。为了解决这个问题,对于在某一类中出现的概率为1或0的词,我把这个概率改为0.999999或0.000001这样接近于1或0的数字。最终测试结果还是比较令人满意的,分得八九不离十。

今天下午看到了一篇论文,里面提到了 Winnow 这个线性分类算法。看了半天没怎么看懂,里面的向量 x = (x1, x2, ..., xn) 表示待分类的文本实例,然后这个 x 向量还要和权重向量 w = (w1, w2, ..., wn)  点乘。这样看来 x 向量里的每个坐标应该都是数字,但是分类时提取出来的都是词,进行到这块就不知道该怎么处理了。不过中科院早已经把这个方法应用到垃圾邮件识别上了,据说效果比贝叶斯的要好一些。

2005/7/13

硬盘出问题了

今天下午写程序时,打开 foobar2000 听 APE 的音乐。听着听着,发现硬盘有异常噪音,读取困难,系统假死。开始还能做一些别的操作,后来完全就是假死了。

无奈,只能按住电源键 4s 强行断电。这样一弄,惹来了一个麻烦。前几次重启时并未出现任何警告,这次出现了 SMART 的警告。但我觉得硬盘不会有那么严重的问题吧,先凑活着用吧,有了台式机这硬盘就不会有频繁的读写了。

最后,用原来备份的完好的镜像把 C 盘恢复了。不知是不是和 SMART 有关,原来 10 分钟不到的操作,这次用了 30 分钟。

从 11:00 一直忙活到 01:30,才把必须的软件装完了。

2005/7/4

GBK 汉字内码扩展规范 之 码位分配及顺序

GBK 采用双字节表示,总体编码范围为 0x8140 - 0xFEFE,首字节在 0x81 - 0xFE 之间,尾字节在 0x40 - 0xFE 之间,剔除 0xXX7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

全部编码分为三大部分:

1. 汉字区。包括:
  A. GB 2312 汉字区。即 GBK/2: 0xB0A1 - 0xF7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。
  B. GB 13000.1 扩充汉字区。包括:
    (1) GBK/3: 0x8140 - 0xA0FE。收录 GB 13000.1 中的 CJK 汉字 6080 个。
    (2) GBK/4: 0xAA40 - 0xFEA0。收录 CJK 汉字和增补的汉字 8160 个。

2. 图形符号区。包括:
  A. GB 2312 非汉字符号区。即 GBK/1: 0xA1A1 - 0xA9FE。其中除 GB 2312 的符号外,还有 10 个小写罗马数字和 GB 12345 增补的符号。计符号 717 个。
  B. GB 13000.1 扩充非汉字区。即 GBK/5: 0xA840 - 0xA9A0。BIG-5 非汉字符号、结构符和“○”排列在此区。计符号 166 个。

3. 用户自定义区:分为(1)(2)(3)三个小区。
    (1) 0xAAA1 - 0xAFFE,码位 564 个。
    (2) 0xF8A1 - 0xFEFE,码位 658 个。
    (3) 0xA140 - 0xA7A0,码位 672 个。
  第(3)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。