Monthly Archives: June 2008

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此问题。

ArcGIS Identity command “Number of shapes does not match the number of table records” error

When I run Identity_analysis in ArcGIS command windows against geodatabase, a message of something like "Number of shapes does not match the number of table records" popups. The error continues even if you reinstall the ArcGIS whenever using the Identify command.

Solution: go to c:documents and settingsyournamelocal settingstemp and delete all the files (some files might be denied to access, just skip them).

妻以夫荣

一个真实的故事。我不知道确切该如何称呼他,见面的时候我称呼叔叔。40多,业务十分好,科室主任。他们单位是全国同行业鼎鼎大名。前面他父亲去世的时候,来了很多单位的同事忙前忙后,从一个侧面可以知道他在单位前途似锦。他老婆长的也可以,可能学历不高,以前估计是他帮助,也弄到同单位作个办事员,但很多人围着她转,倍有面子这样的。

后来听说两人性格不合,闹离婚。那位叔叔将房子车子所有的一切都留着娘俩个(也够意思了不是)。自己到外面重新买了房子。最近单位改选,男的要上副所长,但因为前面离婚的影响,前妻也不合事宜的可能还在闹,到处说男的不好,被竞争对手估计借机整了一把,结果没上。很不开心(也许是伤心)。于是到南方找了个单位,年薪30万配房配车(这个我们都相信,他的水平这些待遇不为多),临走将新买的房子也留给前妻儿子了。按说现在皆大喜欢了。

不。女的因为她老公的离开,又不懂业务,兼没有学历,已经显得不再重要,随时有被下岗的可能。有若当官的一退休,家里从门庭若市掉到冷可罗雀,是一转眼的事。你说这么一条件,再到哪找工作,再嫁人已经美好时光不在,还带着个儿子,以后的生活不知道盼头在哪。

总的说那女的缺根经,看不清楚自己的位置,还真以为她老公的缺不了她,或者自己有多么厉害能干(估计平时被马屁拍的云里雾里晕头转向了)。按说前面老公事业成长这么漫长艰苦的时间已经都陪他一块走过来了,等到该收获成果的时候,一转手放走了,落得一无所有。

我不想评价他们的婚姻,应该是实在走不下去了才走到这一步,没有哪个对错之说。但只是突然感觉心寒,这社会让我看到太多残酷的东西了。

硕导院士

以前听说过西宁科学院某研究所有类似的情况,一位老研究员干活踏实,但在单位里不得志,分不着房子,儿子也不争气,报了几次院士没上,领导们想再报也没戏了,更不给面子,老研究员那个日子难受。结果没想着某年再试,上了,于是单位给分了大房子,给他儿子解决工作,他的学术水平就一下子得到大家的公认了。

最后,贵大一朋友讲起来他们学校土建院的事,居然惊人的类似。贵州省唯一的工程院院士马院士(我朋友十分佩服马院士,为人做学问没得说)目前仍是硕导,此前以73高龄中了07年院士增选。想来没上院士前的日子过的大家想也能想得着。只是可笑的是,贵大这么多的博导们没上院士,居然让一个退休的硕导上了,博导们岂非很没有面子。当然,贵州大学为了表彰马院士作出的卓越成就,专门给成立了个空间结构研究所,让马院士做所长。其它的收益自然更多,只是我朋友没讲,我只能结合我了解的想像一翻,但却不能为大家说。