2007-08-29

“压轴”不是“最后”

今天偶然发现,压轴是倒数第二。汗。

原文链接: http://www.yangtse.com/dzbpd/dbcg/200611/t20061113_191856.htm
  扬子晚报2006年11月7日A18版,在题为《赵本山:我爱这片地》一文中写道:"……最后,主持人又让宋祖英作压轴式的'总结发言'……",这里 用"压轴"一词来形容或比喻"最后"一个精彩的节目(内容),实际上是一个谬传了很久很广的错误用法。因为"压轴"并非指"最后"。

   据上海辞书出版社出版的《辞海》(缩印本・1989年版)称:"压轴是戏曲术语。指一台折子戏演出中的倒数第二个剧目。由于最末一个剧目称大轴而得 名。"例如,京剧一场戏如果有五出的话,第一出叫作"开锣戏",第二出名曰"早轴",第三出称为"中轴",第四出(倒数第二)则为"压轴",第五出(最后 一出)称作"大轴"。由此可见,"压轴"与"最后"不是一回事。如今一些报纸杂志误用倒数第二的"压轴"来称倒数第一(最后),显然是不对的。因此,希望 作者(记者)和编者都应不断学习,增长知识,讲究词语,不要再以讹传讹了。若无把握,不妨查查案头的《辞海》等工具书,以防常识性谬误。

  另外,笔者认为,如果将最后一个精彩的节目(内容)称为"压台(戏)",岂不比"压轴(戏)"既正确又准确!不知诸君以为然否?

  南京读者 凌 晓
来源:扬子晚报

2007-08-27

清除木马的一个心得

My Computer, 右键, Properties, Hardware, Device Manager, View / Show hidden devices, No-plug and play Drivers

如果修改 Driver 那个页面的 Startup Type, 即使修改成 disabled, 似乎重启后还是会变成 boot 之类的, 驱动一样会被加载.
要在 General 那个页面把 Device usage修改成  Do not use this device (disable), 重启后设备将被禁用, 可以删除驱动文件.

然后再在注册表中查找相关内容清除.

2007-08-24

BoundsChecker的一个不足

先看如下代码断:
    BYTE * pTemp = (BYTE *)malloc(1);
    pTemp[2] = '1';
    free(pTemp);
BoundsChecker没有对 pTemp[2] = '1' 报错。
但是,在 free(pTemp) 时却提示memory overrun。
如果 malloc free 两个语句不是在一起(比如在一个类的不同函数中),那么想找到内存被覆盖的地方是相当困难的。

但是,如果仅仅是这样,能报错还总算不错了。再看如下代码:
    BYTE * pTemp = (BYTE *)malloc(1);
    pTemp[20] = '1';
    free(pTemp);
这次连 free(pTemp) 时都不提示了。这是因为BoundsChecker对申请的内存加了一些标志,如果这些标志没有被破坏,那么BoundsChecker是不能发现的。

对于 new delete 操作,问题一样。

为什么x==y而cos(x) != cos(y)

代码:
#include <cmath>


void foo(double x, double y)
{
    double x1 = cos(x);
    double y1 = cos(y);

    if (cos(x) != cos(y))
    {
        std::cout << "Huh?!?\n";
    }
    if (x1 != y1)
    {
        std::cout << "HeiHei!!!!!\n";
    }
}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    double x = 1.0;
    double y = 1.0;
    if (x == y)
    {
        std::cout << "!@#!@#!@#\n";
    }
    foo(1.0, 1.0);
    return 0;
}

解释:
对于常见的intel CPU,浮点寄存器的精度比double高。

所以,实际上,比较时到底相不相等,取决于浮点数存放在哪里。
如果都在寄存器或者都在内存中,都会一样;如果有个在寄存器,有个在内存,则很容易不相等。

这个跟编译器有点关系,但是跟CPU硬件关系更大,这就是为什么liuwenshu在他便携上ubuntn下用gcc编译了结果与windows一样的原因。

你还可以试试,debug和release版运行结果都是不一样的,我想这可能是6楼 ilcs 说结果跟lz不一样的原因。

2007-08-07

TEAM

Team: Together Everyone Achieves More