2006年12月27日星期三

真是晕了

今天把手头的一个程序改成使用 STL,主要是 vector 和 list。上午修改时发现使用 STL 后竟然比用我自己写的一个简单的 list 要慢很多,大约 4 倍的样子,积极性很受打击。

下午开会。

吃过晚饭后,又拿出程序,赫然发现是在 Debug 模式下编译和,和原来在 Release 模式下的程序比,慢 4 倍太正常不过了。于是换回 Release 模式,发觉比原来的程序要快大约 20%,还是不错的。明天继续试验 STL。

2006年12月26日星期二

安装 STLport 5.1.0

最早知道 STL 应该是很早的事情了,不过当时并不成熟,也就没有使用。而且由于专业的原因,大部分程序都是做数值计算的,很少编写复杂的数据结构。最多也就用一些链表,自己写了一个简单的链表类,也挺好用的。

今天突然想试试 STL,于是就下载了 STLport 5.1.0 来安装。STLport 是 SGI STL 的一个免费移植版本,支持多操作平台。它的主页在 www.stlport.org,不过好像那里只有 4.6.2 的版本下载。最新发布的版本可以到它在 SourceForge 的页面上下载,地址是 http://sourceforge.net/projects/stlport

安装过程比较简单,我是在 VC 6.0 上使用的。

  1. 打开一个命令行窗口。
  2. 设置 VC 的环境变量。如果在安装 VC 时选择了设置环境变量,则不需要这一步。运行 VC 安装目录(缺省是 C:\Program Files\Microsoft Visual Studio\VC98\Bin)下的 vcvars32.bat
  3. 进入 STLport 解压后的目录,假设是 D:\STLport-5.1.0
  4. 进入 build\lib 目录,执行命令
    nmake /fmsvc.mak install
  5. 等待编译结束,可能需要较长时间。
  6. 设置 VC,打开菜单 'Tools -> Options -> Directories'
    在 Include files 中加入 D:\STLport-5.1.0\stlport
    在 Library files 中加入 D:\STLport-5.1.0\lib

好了,现在可以编译 STL 程序了。注意 STLport 只支持 multithreaded,所以要在 'Project -> Settings -> C/C++ -> Code Generation -> Use runtime library' 中选择 Multithreaded。

为了测试 STLport 的安装,可以进入 build\test\unit 目录下,执行命令

nmake /fmsvc.mak install

然后运行 bin 目录下的 stl_unit_test*.exe 来进行测试。

2006年12月22日星期五

Subversion 确实比 CVS 好用

Subversion 开始逐渐呈现取代 CVS 的趋势。我也在最近从 CVS 转到了 Subversion 上。网络上已经有一些比较两个版本控制系统的区别的文章了,比如

http://robinlet.bokee.com/2866408.html

能看英文的还可以看这个详细的各种版本控制系统比较结果

http://better-scm.berlios.de/comparison/comparison.html

不过看归看,一定要有实际使用才会有切实的体会的。我最喜欢 Subversion 的几个地方是:目录也有版本控制了,以前经常修改项目的目录结构,CVS 在这方面很弱;还有就是标签的实现是通过拷贝目录的方式实现的,很直观,也很方便,建立分支也是如此,想当初学习 CVS 的标签和分支可是让我费了不少精力呢;可以通过 Apache + DAV 来达到针对目录的管理,这样我可以有选择的把某些项目的源代码公开了,而原来的 CVS 则无法做到,我只好把不想公开的东西放在另一个版本库中了。Debian 下面安装 Subversion 也很方便。

最后列出一些有关 Subversion 的链接:

2006年12月20日星期三

数字签名

最近开始在电子邮件中使用数字签名,今后如果你收到我的电子邮件没有使用数字签名,那很可能这封信是假冒的 :)

我用的是 thawte 公司提供的免费个人电子邮件数字证书。我的数字证书可以在我的主页上面下载,用于验证我的签名或者给我发加密的电子邮件。

申请免费数字证书的地址在
https://www.thawte.com/secure-email/personal-email-certificates/index.html
详细的中文介绍可以看
http://www.wotrust.com/Products/free_personal_email_certificate.htm