Yearly Archives: 2008

荒唐,荒唐

下午去钓鱼,虽然因为水库放水,鱼不很多,但很高兴。回来晚上11点了,洗了个澡,很爽。然后在新浪看到一个新闻,让我一天的好心情全没了,又有类似前面坐车呕吐的感觉。

新闻标题是“卫生部要求部分手术酌情暂缓,保血液供给奥运”。第一反应是不敢相信。第二反应是荒唐!明白了,奉劝各位千万千万不要在奥运期间动手术,不能用血,否则等死吧。这便是全民奥运。老百姓的命比不上高贵的洋大人的命值钱。真是一切的一切要为奥运让路,包括献出大家的生命。什么酌情,这些模糊的概念,看谁不舒服,看谁没钱就不给血呗。没有规定出来的时候尚且都这样,何况现在又多了“酌情”的规定呢。新闻正文的4条说明,我的感觉是当婊子还要立牌坊,又怕被人骂,又要出规定。外国人中国人如果真在平等的位置上,谁更需要用血谁用去,没这规定就这么做来着,何必又来这么一个规定。所以它的重点在手术暂缓,真当大家是傻子?所以这绝对不是咱们党干的,党是人民的党,首先会保证人民的利益,绝对是少数隐藏在党内的别有用心的人想出来的试图败坏党声誉的人干的。

有时候是恨铁不成钢呀。

贵州628新闻发布会

下载了贵州628事件的省府新闻发布会录像,是贵州省电视台的现场直播。没有全部看完,几点个人感受:

1) 新闻发布会象搞笑演出,省府发言人讲着找不到稿子了,停顿了半分钟,下面的记者面面相嘘;
2) 是不是因为小县城的领导们没经历过这么多记者的新闻发布会,一个个讲话嗑嗑碰碰的,在害怕紧张什么?
3) 记者提问好搞笑,问的没有稿子,答的照着稿子原原本本的念;最后点名让某单位记者提问,总算座上全部领导都轮着念了一翻稿子;
4) 内容是中国一贯特色,“打不还手,骂不还口”,我记忆最深了,莫非提前进入共产主义了?我印象里咱们的可爱的公安警察城管好像没有受过这么优良的教育吧?估计只有领导训他们的时候才能做到“打不还手,骂不还口”。
5) 案件本身我不置评,相信政府还是有良心的吧,但对案件的描述也搞笑,小男孩在桥上做俯卧撑? 这细节很重要吗?是为了回应有人目击小男孩的类似动作吗(强奸好像也会有类似的动作)?说是自杀,大家都知道动机很重要,为什么自杀?没有说明。案件的说明好像那几个同伴是救人,这相差大了,政府现在这样遮遮掩掩,也是对他们的不公平。
6) 一家农民有多大的能量,能一下子召集300人?莫非死者家属本身就是黑社会头头?好像也不能自圆其说。
7) 这匆忙赶出来的发布会,好像跟“深入细致的调查”之类还有差距,前面没调查好,导致这么大的事,一天时间就“细致”调查好了?
8) 贵州省政府估计受的来自上面的压力也不少。好多官员可能因为这事仕途无望,理解理解。不过做秀也要做的好一点,怎么样也要代表省级水平。
9) 说真话,看起来真是很难,尤其要让当官的透明公正的办事。还有很长的路要走。

5460同学录信息让骗子有机可乘

我们辛同学在6月23发布消息说:

“23日晚,我接到一个电话,13410673900,自称翁计传,还没有开始骗我,就被我识破了.
建议网管将所有陌生人踢出班级.”

安同学在6月24日说:


事件经历:

23日上午9时一个自称翁计传的人给我打了电话,问我是否还记得他,说他人在济南出差,要过来找我玩。
24日上午8点半,此人打电话告诉我已从济南出发,问我到东营大概需要多长时间。
9点半,又打电话告诉我说在某一红绿灯处发生交通事故,不慎撞伤一行人,说不能来了。
约10时,气喘吁吁的在电话中说情况不妙,需要手术费用大约三万多,让我帮忙支付一万多,并告诉我帐户。在我询问下告知我他现在济南人民医院。

……

整件事情就像场电影,23日接电话的那一时刻以为老同学将至而兴奋,然而这种兴奋立刻被疑虑所代替。一是因他的话语中带着较浓的广东口音,让我尤感陌生,二是他对我们大学时期的同学经历避而不谈。虽然如此,但仍还是憧憬着老同学的到来,即告知家人准备迎接。

23日晚仍然回想通电话时的每一细节,愈发觉得事情蹊跷。网上查询了一下手机号码归属地,显示是深圳移动全球通卡,并非中山市。

24日8点查到翁计传的电话,通话后方知他正在单位,显然被人冒充。于是我等待好戏的开场,感觉每步都在预料之中,像导演了一场电影。只是这种电影未见到骗子落入法网的结局,而最后以我的一个短信结尾“李小鬼,你的戏演完了?”。

我们陈同学回复说:

“此人也给我打过电话,我正好要出差,所以回绝了。”

同志们要提高警惕,接到陌生自称是同学的电话时,不妨先聊聊大学时大家都知道的事情,一听不大对劲,设置个陷阱确认一下,比如“你知道了吗,前两天我们班长同志和老公一起从美国回来了?”事实上,我们班长同志首先是个男性,也没有到美国去。证明是假,不妨戏弄一下骗子了,调节一下平凡沉闷的生活也不错。

高考志愿

高考、填志愿迁到千万国人的心,它的能量也辐射到美国了。今年我堂弟还有三个侄女都高考。成绩都不好。堂弟家底好,会自己找关系,几个姐姐也都是大学生,他们自己可以搞定。我向他提议了一个高校,嫌太差,说他爸要拿钱买一本,不知道能否成功。管不上,祝愿他吧。另两个侄女其实跟我不熟,只是听说他们也高考。我打电话礼貌上问了一下,也不想给自己找事。实际关心的是在江苏的侄女。打了无数个电话,帮找关系建议高校和专业。

今天江苏的高考制度很变态。考语数外三门必考的,还有两门选考的,比如理科要考物理化学。语数外分数加起来叫什么特征分,数学还有什么附加分。选考两门的分ABCD等级。高考投档是按特征分和选考课目等级来的,比如江苏的一本特征分要求330,同时要求选考课目必须2个B。而高校在录取考生时,还会考虑学生的附加分等。总之不一般的复杂,佩服江苏的那班官员,拍屁股可以想出这样折腾人的方案。在全国其余省份都是以总分高低决定上线与否的情况下,江苏考生就很吃亏,因为除了特征分上线外,还要求理科生的物理化学必须要到2B以上才能上本科。一些名校(只是国内的名校了,放到全世界范围三流学校都排不上)还要求物理化学2A以上。偏科学生这样就很吃亏,即使总分再高,物理化学没有2B甚至都上不了本科。据说江苏文科状元政治没有A,导致没法子上清华北大甚至南大也不要他(她)。此其一。

其二,如果总分很高,但偏科,比如物理化学只有1B1C(我侄女就这种情况),那么理论上讲不能上一二本。但江苏又规定,高校有自主招生的权力,考生可以自己与高校联系,如果高校同意招收,学生还是有可能上二本的。苦了没权没钱的学生,他们要如何自己跟高校联系呢?拍屁股想出这方案的江苏官员大概认为每个学生家长都是江苏省长,高校校长在外面排队等着家长召见——只有这样家长才能与高校联系上。拍屁股想出来的方案为高考腐败明目张胆敞开大门。

其三,江苏一直是高考大省,每年很多适龄考生。如今总分被压成300多分的空间,同样的分数都会有很多考生。如果85分是B,84分就是C,可怜的84分众多的学生,只有排除去挤专科吧。这是一个极端的例子,只是84分的学生一定就比85分的能力差吗?事实上,由于总分空间的减少,使得分数不能很好的表达学生的实力,从而导致整个程序的不公平。

能看着的正面的东西是这个方案能选拔各课均衡的考分。我同时也要问,均衡真有这么重要吗?这个问题怕谁也不能回答。我有无数的例子可以表明很多后来证明很优秀的人当初都是很偏科的。碰到现在这种制度,他们只有到民办高校或者专科里泡三四年妞玩三四年游戏了。

所以碰到这种烂方案,我侄女也只有认命了。江苏一向是高考的改革先锋,每年高考方案都变化,让我们期盼明年出来个更有才的方案吧。

Bill Gates v. 中国富豪

日前Gates宣布其500亿美元的资产全部捐到Gates Foundation。对比月前汶川大地震中一些中国富豪不愿捐款的行为,除了叹息摇头,能做的就是承认差距。

有看到天涯论坛上也有一些人怀疑Gates的动机,说是为了合理避税。美国是要征收很多的遗产税,这是事实。然而,布什政府在逐步消除征收遗产税,而Gates、巴菲特等人是公开反对政府这一行为的,指责这一行为将不利于美国的穷人得到公平竞争的机会。

也有人说将钱放到基金会,他子孙后代就可以一直管理着它并从中获利,不比遗产一下子被政府吃掉一半更好么。持这种怀疑观点的人是太不了解国外的对慈善基金会的监管力度了,可能是联想到此前汶川地震后救灾工作中出现的中国红十字会的一系列监管、审计和透明用款问题,从而认为这是国际上的一种常态。然而美国的慈善基金管理是很严格透明的,作为管理人只有权决定基金如何投资以及处理援助,却无权将钱作为私人用途,更甭说从中支付维护豪宅的开支。为了维护慈善基金的地位,美国法律也规定每年必须有不少于总基金的5%用于慈善支出。因此可以相信,Gates捐到基金会的钱是再不属于他个人或他家庭了。

其实Gates Foundation为了减少基金会未来可能产生的问题,宣布过在三位主要trustees死后50年将关闭这个基金会,他们相信,任何一个好事都应该有个结束的时候。

Gates基金会受益者遍布全球,我知道的西北水资源问题是受到世界银行和Gates基金会的资助,我们单位也有在执行此项目,以解决西北水资源短缺问题和提高西北贫困人口的生活水平。

所以基本上不需要怀疑Gates的动机。Gates也是不最伟大的,美国富豪一向有财富回馈社会的历史,由来已久。比如Carnegie在美国各个地方建了很多的图书馆、博物馆等社会公益项目,在死前将全部的财富返回给社会,他的名言是人如果在财富中死去是可耻的。美国各个城市到处是以富豪名字命名的街道、公园,到处可以见证富豪为社会作出的贡献。所以美国平民百姓好像没有象国内这样仇视富人。

不是说美国百姓素质高所以不仇视富人,而是因为国内富人素质偏低。据说数十位天津房地产老总汇集某高级宾馆,给汶川地震捐款,结果捐款下来一结算才几万,而给宾馆的场地费却要上万。我看着的富豪经常是灯红酒绿、名车美女、以权势和财富欺人,或者纵容子女横行霸道,为害百姓。说得可能有点过,也有好的富豪,但总体讲没有形成一种财富取之于社会、还之于社会的风气。贫富差距的拉大,使得整个社会有很强烈的仇富心理。这不是一件好事。

有研究人员归结国产党在大陆败退的原因为腐败和悬殊的贫富差距。好在有报道指出,现在执政党也很重视这些问题,比如将腐败问题列为未来几年严厉查处的工作重点。无论如何,意识到了总还有是希望的。

Snip-It Pro 1.0.1.9

一个比较有意思的保存代码片断的东西。启动后位于桌面的一侧的sidebar,可以作用于任何编辑器。比如你在Visual studio写东西,可以从这里面将常用的一些代码方便的拉入vs中。官方网站在http://www.snipitpro.com/。下载的试用版本有30天试用期。

目前snipit pro工作于dotnet 2.0,除了dotfuscator保护关键代码外,还使用了一个的license保护组件(来自Interactive Studio Inc.)。license组件包括QlmLicenseLib.dll和IsLicense30.dll,后者是一个c++ native PE,前者由于调用后者,ildasm出来的il代码编译后无法通过ilasm使用。

然而问题是,snipit pro是保护十分脆弱,尽管dotfuscator使得reflector反编译后的代码无法编译,比如它将类里的方法名和变量名命名为一样,而c#编译器不允许这样。然后这种情况ilasm是可以编译的。反编译snipitpro.exe,可以看到以下类似代码:

        public aa(SnipItConfig A_0)
        {
            this.a = new QlmLicense();
            this.a.DefineProduct(1, "Snip-It Pro", 1, 0, "SkunkyFo78!", "{24EAA3C1-3DD7-40E0-AEA3-D20AA17A6005}");

            bool flag = false;
            string licenseKey = A_0.LicenseKey;
            this.a.ValidateLicense(licenseKey);
            int status = (int)this.a.GetStatus();
            if ((this.a(status, 8) || this.a(status, 0x10)) || ((this.a(status, 0x20)
                || this.a(status, 0x100)) || this.a(status, 0x80)))
            {
                flag = false;
                this.a(r.d);
            }
            else if (this.a(status, 4))
            {
                if (this.a(status, 0x40))
                {
                    this.a(r.b);
                    flag = false;
                }
                else
                {
                    this.a(r.a);
                    flag = true;
                }
            }
            else if (this.a(status, 2))
            {
                this.a(r.c);
                flag = true;
            }
            this.a(flag);
        }

关键在于status的判断,无论license key是如何被保护,只要status被设置为2,保护即被解除。

int status = (int) this.a.GetStatus();  对应的MSIL代码是,

IL_0045:  ldarg.0
IL_0046:  ldfld      class [QlmLicenseLib/*23000007*/]InteractiveStudios.QlmLicenseLib.QlmLicense/*010000F0*/ aa/*02000022*/::a /* 0400013B */
IL_004b:  callvirt   instance valuetype [QlmLicenseLib/*23000007*/]InteractiveStudios.QlmLicenseLib.ELicenseStatus/*010000F1*/ [QlmLicenseLib/*23000007*/]InteractiveStudios.QlmLicenseLib.QlmLicense/*010000F0*/::GetStatus() /* 0A000266 */
IL_0050:  stloc.2

我们注释掉 IL_0045~IL004b,在IL_004f处添加 ldc.i4.2,即达到以上status设置为2的效果。为了保证文件大小一致,0045~004e IL用nop来填充。修改后的MSIL代码如下,

    //IL_0045:  ldarg.0
    //IL_0046:  ldfld      class [QlmLicenseLib/*23000007*/]InteractiveStudios.QlmLicenseLib.QlmLicense/*010000F0*/ aa/*02000022*/::a /* 0400013B */
    //IL_004b:  callvirt   instance valuetype [QlmLicenseLib/*23000007*/]InteractiveStudios.QlmLicenseLib.ELicenseStatus/*010000F1*/ [QlmLicenseLib/*23000007*/]InteractiveStudios.QlmLicenseLib.QlmLicense/*010000F0*/::GetStatus() /* 0A000266 */
    IL_0045: nop
    IL_0046: nop
    IL_0047: nop
    IL_0048: nop
    IL_0049: nop
    IL_004a: nop
    IL_004b: nop
    IL_004c: nop
    IL_004d: nop
    IL_004e: nop
    IL_004f:    ldc.i4.2
    IL_0050:  stloc.2

Patch后的snip-it pro 1.0.1.9保护成功解除。在原SnipItpro.exe文件的0x0000d5b1开始的027b3b0100046f6602000a,代替成027b3b0100046f66020018,保存。

讨厌的垃圾评论

space上已经数度被恶意加了很多的垃圾评论,以前有几十条的,自己辛苦一点给删除掉。而今天发现上面被加了上百条的垃圾评论。明显是机器所为,而且评论内容不一,是随机增加到某些blog条目下(看来是专门针对space本身提供的打勾选择删除而设置的),目前好像在网上没有找到很好的批量删除的方法。微软space团队也是垃圾,没有任何过滤删除的功能。等有时间了我写个东西看看能不能根据条件删除。先让它们搁着吧。

 image

Qt 4.4 + msvc2005 下安装Eric 4, a python IDE

下载了Qt 4.4.0开源,指定msvc2005 spec,编译了大概2小时完成。
*一定要shared DLL
*一定要开源版,如果是商业的Qt 4与开源的PyQt等协议有冲突

下载python 2.5.2 msi安装。下载SIP v4.7.6,根据readme.txt安装,指定-p win32-msvc2005。下载QScintilla-gpl-2.2.zip,根据readme.txt安装,安装for Qt4。

下载PyQt v4.4.2,运行c:python25python configure.py时,提示fromAscii_helper@QString@@CAPAUData@1@PBH@Z could not be loacated in the dynamic link library QtCore4.dll,原因是在path环境变量里,在c:qt-4.4.0bin前还有个路径C:Program FilesMATLABR2007bbin有老版本的QtCore4.dll。将c:qt-4.4.0bin移到MATLAB前解决此问题。

安装QScintilla2 for Python binding(在源文件Python下),见dochtml-Qt4index.html。此步骤须在安装PyQt后,否则提示找不到PyQt v4。

将qscintilla2.dll从%QTDIR%lib拷贝到%QTDIR%bin目录下。

下载eric4-4.1.5,c:python25python install.py,安装之。

涉及到较多的开源包,一般安装步骤都是:

c:python25python configure.py
nmake
nmake install

注:

QScintilla-gpl-2.2的python binding生成的Makefile好像有问题,产生link error,可能原因是没有定义-DQSCINTILLA_DLL。可以打开configure后产生的Makefile,在CPPFLAGS里增加此定义。

可以下载QScintilla-gpl-2.2.1-snapshot-20080610,此问题已经更正。

好一阵折腾呀!

Vista x64下使用ODBC 32位 Text Driver

目前Vista x64下没有可用的ODBC Text Driver。为了使得已有的32位程序使用32位的ODBC Text Driver,需要对原程序的编译选项进行修改。将默认的Any CPU设置为x86,然后编译后。放到x64下将自动寻找32位的驱动。

费了我好多时间来figure out此问题。