vs2005与XP sp3冲突

vistual studio 2005的安装包与 windows xp sp3冲突。

在windows xp sp3上安装vs2005时,报错:

—————————
Microsoft Visual Studio 2005 Setup
—————————
Some components must be installed in  directory. Check that you have write permissions and enough space in that directory.
—————————
OK  
—————————

因为报了这个错,在vmware中重试了一把确实有这个问题。

当然也可能是我的vs2005版本的原因,但这个版本我用了很多年了,之前一直是好的。

唉。

 

 5-10注:

事后表明只有从硬盘安装才会报这个错误,重新下载一个光盘版,无此错误。

把光盘版里的文件拷到硬盘安装,也一样出这个错误。

不过光盘版必须用工具比如ultraiso把卷标改为DVD1,注意全大写。否则会要求插入光盘。

 

发表在 日经 | 留下评论

winxp与wpa2无线网络

刚刚跟中国电信换了个套餐,换上无线猫。呵呵,后知后觉了,刚刚开始用无线网。打开无线配置,启用加密为最强的wpa2,发现不管是用aes还是tkip模式加密,winxp都无法连上去,我的这个winxp还是sp2,暂时没有来得及上sp3。又试了一下wpa的aes和tkip,都可以连上。再试wep,也可以连上。看样子是sp2不支持wpa2了。

一搜搜到KB 893357,下回WindowsXP-KB893357-v2-x86-ENU.exe。下载的时候看到时间还是2005年的,有点怀疑这sp2里居然还没有05年的kb更新包?下回来还是双击了一下,发现确实可以装,没有告诉我系统里有更新的版本。

装完后重启,重启再试了一把wpa2,果然可以上了。

原来xp sp2里真的没有这个kb。不知道sp3里有没有。不过,能上就可以了。

发表在 日经 | 留下评论

香港一日游记

  之前也去去HongKong,不过是去办事的。去了这一次才发现,香港是一个并不值得去旅游的地方。亮点只有两个,一是海洋公园,一是迪斯尼乐园。这两个昨天都没有去,很好,因为这两个是值得专门花时间去的,跟着团去里面走马观花就不好了。其它的小地方比如黄大仙庙,非港人可能不是十分信仰吧,信奉的去拜拜挺好,不信奉的,去那也没什么好看的了。

  维多利亚湾的夜景是很出名的,但昨天看过之后大失所望,发现还不如上海黄浦江的夜景。也许真的像导游说的,只有中秋,春节,71这样的时候,那里才好看吧。但这些时间那里是人挤人,黑压压的人头如山似海,去那里纯粹给自己找罪。算了吧。

  内地旅游团的素质是让人无语的,特别是一堆不认识的人组成的乌合之众的团。昨天很多的时候,就花在等人了。运气不是很好碰上奥运火炬在香港传播,所以尽管是51,过关还是查得很严,团里有4个人被叫去小黑屋详细审问。这种叫抽查,每50个人里选1个详查。于是过关后大家就等这四个人,等了很久才等到。当然这并不是这几个人的责任。后面就不好说了,说好几点集合,总是不按时。其实大家也习惯了不准时,但也不要差得太离谱了,5分钟可以谅解,15分钟还不知道人在哪就不好说了。

  最惨的是傍晚,团里有四个老人丢了,于是导游去找人,我们在车里等,等了一个多小时终于找到人了,那几个老人一回来还怪导游不好没说清楚。别人都清楚了咋就你们几个不清楚呢?要不看在你们是老人,大家早抛下你们走了。而这导游也是难得的好导游,之所以这么说,是跟旁边团比出来的。

  旁边团的那个女导游啊,真不是一般的烂人。团里有个小孩哭,她竟然来一句:“啊,有没有安眠药啊,让这个小孩吃点,都吵了一天了。”拜托,你这是在一玩笑吗,语气一点也不像啊。我想小孩的家长是忍着没发火吧。后来,这女的介绍风景说着说着,就说到男女关系上来了,于是摆出一幅为女性鸣不平的样子,说这世界上就钱最重要,说女人啊,就应该花男人的钱,千万不要为男人省,省了他把钱给小老婆去了。说男人都不是好东西,说她自己的领导又穷又没钱,但还是有两个老婆,香港一个,深圳一个。你说这导游你被男人伤害了就算了,把一个旅游团来当发泄对像算什么呢。

  傍晚这一等把本来按排的晚饭时间整没了。晚饭被推晚到一天的活动结束之后。于是就有了一个高效的晚餐。说高效是贴金了,实际是,大家都很饿,可吃起来又不能太显露出狼狈样。再加上HK吃的太贵,菜就那么一点点,不抓紧的人就连剩菜也没的吃了。于是整个晚餐就可以用急而不慌来形容。从大伙走进餐馆到走出来,整个过程不到十五分钟。对于多人的就餐来说,小于十五分钟可真是一个奇迹了,都快赶上军队的效率了吧。一上桌先挑几个好吃点的夹几块,加上饭就大吃,吃完了再夹,看起来是挺文明的,心里那可是真怕吃慢了没的吃了。有个七八岁的小女孩怎么也不肯吃,看来是平时吃得太好了。要知道这桌菜虽说不是免费,但做得也还可以,绝不能用难吃来形容。

  吃完后就风风火火的赶回来了,一日游结束,总的来说,香港没什么好玩的,但这两个亮点,可以各花一天去一下。待下次再去。

发表在 日经 | 留下评论

QQ验证码老是输不对的原因

这些天,很多朋友碰到了一个问题,就是在QQ登录时,碰到需要输入验证码,可是输入正确后,却要继续输入,可能要好多次才好,据说还有人连续输入30次都不对。由此,由不断的通不过,陷入不断输入的循环,简直让人崩溃。

今天终于知道了原因。原来,现在所有恶意行为,包括发送垃圾消息,查QB、消费QB、修改密码等,都是纯手工行为。 雇佣1 个人,每天50 元(含吃住),可以输入2W 次验证码,假设平均输入3 次验证码成功登录1 次,可以发出10 条诈骗消息,上当的比例是1/10000 ,如果上当,则获利300 元。那么每雇佣一人平均获利2W*10*300/3/1W=2K 元,假设平均输入3 次验证码可以查询一个QB ,QB 3 折,那么雇佣1 人平均获利2W*0.1*5*0.3/3=1K 元 。

 因此,TX对这些人也进行打击,当怀疑一个IP是恶意IP时,会对其进行限制,使n次输入只有一次真正算对,这样,就会有人连续很多次不能正确输入验证码了。

那为什么一个用户的IP会被认为是恶意IP呢?除了程序出错引起的BUG,则通常是另一种情况:

原来,现在雇人手动输入验证码的家伙也是很聪明的,你限IP我就变IP。ADSL网络有个特点,断开重新播号,IP就变了。那这个旧IP哪去了呢?被ISP搞去分给别人了,那个被分到的家伙就倒霉了,重复输入好多次验证码才会进得去了。

这简直是一套七伤拳啊,杀敌三分,自损七分。虽然确实可以杀敌。

想要摆脱这种老是输入的局面也有招,参考解决方案:

  1. 重新播放,换IP上,也许马上就可以上了。
  2. 停一停,过一个小时再来上,由于这个IP闲了下来,会渐渐被排除恶意,也许就上得去了。

 

 

发表在 软件使用 | 2条评论

做了Perl 5.10.0的chm文档

http://perldoc.perl.org/ 上可以看perl的文档。这自然是一件很好的事。

不过我还是比较习惯看chm的文档,比如我要找函数stat的说明,用网页方式的话我要打开浏览器,上到perldoc网站,定位到perlfunc那一页,再找到stat,这个时候可能是需要ctrl+f一下才找得到的,然后再转过去。有了chm文档,就方便了,打开后在index里输入stat回车即可看了。

5.8.8的就先不做了,一般也用不到这些差别。

在这里下载

 

发表在 开发, 软件 | 5条评论

perl utf8值得注意的一点

 
use utf8;
my $var="测试啊";
 
print "OK1\n" if ($var=~//);
 
printf "str: %s length: %d\n", $var, length($var);
 
$var = `echo $var`;
chomp($var);
 
print "OK2\n" if ($var=~//);
 
printf "str: %s length: %d\n", $var, length($var);

结果:

 
debian:~# ./test.pl 
OK1
Wide character in print at ./test.pl line 11.
str: 测试啊 length: 3
str: 测试啊 length: 9

可以看到输出内容虽然没有变,但是第一次$var是内在utf8的,而第二次内在格式则不是了。

求长度的结果是第一个三个字符,正确,第二次九个字符,说明内存格式占了9个字符(或者叫octet?搞不懂perl的名词了),编码为utf-8。

这就会带来问题,导致regexp匹配不了。

事实上,我遇到的问题并不是通过IPC读来的字符串,而是直接opendir后由readdir得到的中文文件名。这样得到的也像第二次的$var一样,输出正确,但内在格式不对,导致脚本异常。

既然内存格式已经是utf-8编码了,那解决方案自然就是把9个字符变回三个,这是一个解码的过程。对perl不是很熟,但找了一下,还是找到了答案。只消加入一句即可:

 
$var = decode('utf8', $var);

 

发表在 开发 | 留下评论

在activeX对象中判定所在网页

一个很原始的需求是:做了一个activex对象,只希望它在某些站点中使用。不希望在其它站点中使用。

或者说,不希望被别的人偷用。或者不希望被广泛使用而造成安全问题。

比如:在www.foo.com中可以使用,在www.bar.com中不能使用。

由于只有ie能创建并访问activeX,因此本文只适用于IE。

要解决这个问题,关键是两点:

  1. 如何在activex对象中判定当前域名或当前所在网页url。
  2. 如何在判定不能使用后,禁止用户使用。

对于2,应该是简单的,不能使用后,所有的接口都返回E_FAIL即可。当然,这里有更好的策略,还可以通知到用户。

对于1,我以前一直没有找到办法,虽然办法很简单。无非是实现一下IObjectWithSite,这样IE在创建activex的时候会把site传给创建的activex,这样就容易取得当前url了:

 
HRESULT CMyActiveX::SetSite(IN IUnknown *pUnkSite)
{
 
CComQIPtr<IServiceProvider> spsp = pUnkSite;
pUnkSite->QueryInterface(&m_WebBrowser2);
 
m_WebBrowser2->get_LocationURL(&m_bsUrl);
 
//more..
 
}

对于2,通知到用户的办法是,实现IObjectSafety,然后,在GetInterfaceSafetyOptionsSetInterfaceSafetyOptions中,根据当前情况返回E_FAIL就行了。

以上内容是是研究微软的某软件的一个activex控件在不同网页里的表现不同而发现的。

发表在 开发 | 留下评论

不支持抵制法货的人,你们真的是理智吗?

张朝阳站出来支持抵制法货了,很好。给白岩松反戈一击了。道理不想说太多,反对抵制的人无非是说,家乐福里的都是中国人,卖的也差不多都是中国货,抵制了就会给自己人带来损失。其实我们抵制法国货不意味着我们不买货了,不去家乐福还可以去别的超市。中国货不在家乐福卖,一样可以在其它超市卖。因此这个道理站不住脚。还有的人是摆出一幅以德服人的面孔,说只要我们自己做好了就行了,以高洁的行动来反衬他们的罪恶,这就更错误了。子曰:以德报怨,何以报德?以直报怨,以德报德。中国没有犯错的时候,外国编一些来评击,外国犯了错了,我们为什么不能想点办法?抵制一下有何不对?

请问:欧洲人抵制我们中国货,烧了我们的鞋子仓库,你知道吗?制造贸易避一句那是欧洲的FQ就可以解决问题了吗?欧盟一直在说我们倾销,千方百计制造贸易壁垒,这不是抵制是什么?人欺我可以,我欺人就不对?就是FQ,就不理智?这种所畏的“理智”其实只是一昧的逃避罢了,想要通过这种与众不同来表达自己的清高,那就大错特错了。

再说,抵制确实发生了效果,法国有些媒体已经报道了中国的抵制,并提出了一些担忧。找找新闻就能找到。试想一下,如果每个中国人都“理智”,都当没事发生,都以德服人,欧盟就不“反倾销”了?法国就不支持ZD了?人家high着呢,只会以为你们好欺负。

还是孔子说得好,以直报怨,以德报德。今天我们的抵制,不过是以彼之道,还施彼身罢了。抵制家乐福,人人有责。从我做起。

 

发表在 随笔 | 留下评论

谈谈有目的的学习

事情的起因是,某人觉得学了C++的语法之后,似乎没什么用,不知道要怎么去用,这样的话,很难继续的学下去。

其实,成年人学习是一定要有目的的,小孩子还好,可以为了学而学。人一长大,学习一旦没有目的,就学不下去了。

对于C++,我是学了一点点基础之后,就直接按钮某杂志的文章写一个在线发送寻呼信息的程序,结果还把我一个同学搞毛了。
对于一般的情况,也是类同此理。自己找一些好玩的应用,遇到不足之处再补相关知识,这样学习起来就十分有劲了。好玩的应用是很多的,比如写一个在桌面上自由活动的小动物,可以把自己的宠物放上去。或者是用javascript写个很小的游戏,或者是用flash做一个故事发给你的朋友,或者是对自己感兴趣的方面搭建一个小网站。

不过做这些事的时候,都要对自己提高要求,精益求精,不要因为这个软件或功能别人已经做过了就不去做。最好也不要直接用别人的组件,从底层一点一点慢慢搭。搭完之后,了解就深入了,知识结构就上去了。

比如写一个相册,你可以不用gdiplus库或其它图像库,自己去研究文件的格式,或者,自己去研究一下图像是如何变灰的,当然如果这些你都已经了解了,那也可以再去研究再深一步的效果比如雨点效点。

又如搭网站的时候,先不要使用别人的ajax库,自己先手动做一个ajax模型,这个模型虽不如成熟模型那么方便,但搭的过程会很有意思,也能让自己理解别人为什么要那样设计。

在理解的基础上,再去使用别人的库,就会更得心应手了,出了问题,也不会茫然无措了。

当然,有目的的学习而不是系统的学习也是有缺点的,缺点是这样学了很久之后,可能还有少量很基础的东西不知道。因为毕竟不是系统的学。有时会出点低级错误被人bs。我感觉这样就像张三丰练的九阳真经,听些短言残章,虽有所悟,但是毕竟不系统。不能给小无忌治寒冰掌之毒,但不妨碍他成为武林泰斗。

发表在 随笔 | 留下评论

Javascript 终级“解密”

解密加上引号,因为并不是真正的解密。

现在很多网站不让你看js源码,就想办法变形,最后再document.write出来。

显然不管它怎么变形,最后总要调用document.write,我们直接在document.write的实现处,

用native调试来下个断点,不就可以读出来了?

找到document.write函数:

 
C:\>syminfo /S E:\symbol C:\WINDOWS\ie7\mshtml.dll | grep ::write
7DDA72FB[+   0] ?writeln@CDocument@@QAGJPAUtagSAFEARRAY@@@Z             public:long __stdcall CDocument::writeln(struct tagSAFEARRAY *)
7DCE0741[+   0] ?write@CDocument@@QAGJPAUtagSAFEARRAY@@@Z               public:long __stdcall CDocument::write(struct tagSAFEARRAY *)

显然,直接在这两个函数下断点就可以了。

下完需要读一个VARIANT结构,里面是一个VT_I8的safearray,需要了解safearray的结构,就不赘述了。

 因为还有更好的办法!
用firebug直接看就是了。原来也不清楚,原来firebug看时,一个javascript段里调用了document.write之后,就会在dom树里紧跟着看到另一个<script></script>的段。所以,直接用firebug翻看就行了。真是简单啊。

翻看后可以找个工具把代码格式化一下。

有个软件叫sourceformatx,好像已经有四年没有更新了。找了一下crack的文章,说这个软件破解不好会直接破坏系统,因此没有人破解。由于四年过了,现在已经可以搜到完美破解版,但是不是真的完美呢?要是有一点不完美,系统就要挂了,怕怕。所以先不用了,要用也在vmware里用。

thank creese@newsmth.

 

发表在 开发 | 标签为 | 留下评论