租房买房买生意上iU91
123
返回列表
楼主: arden
打印 上一主题 下一主题

古巴印记

[复制链接]   [推荐给好友]
21#
发表于 2008-1-24 07:15 | 只看该作者

今年又去了一趟不过是另一个城市。

感觉很平淡因为已经变成纯粹的休闲度假了。我的印象是这个网站的质量比较高www.exitnow.ca

十二月十六日 今天天气很好吗?蒙特利尔是否还在下雪?古巴今天下雨了。 (第一天)
凌晨2:30到达古巴,四点钟我还在看CNN关于穆斯林的新闻综述,这是一个很难解的问题,人和人的像法师这样的不同你实在很难理解那些穆斯林极端主义分子的想法,同样回到我很久以前的感慨,子非鱼焉知鱼之乐?这同样的话也可以理解为子非鱼焉知鱼之哀?

《windows核心编程》实在是一本武林秘籍,任何一个号称中级程序员的人如果没有明白熟悉其中80%的issue那就是吹牛了,我觉得我大概只接触过50%到60%的议题,真正感到没有问题的大概只有30%左右,很多都是一鳞半爪知之不详,可惜我看得是中文版总要打个折扣。VC6里面可以设一个@err,hrz这样就省的我每次都去查错误代码,实在是很方便一定要用呀。以前总是听说win2k使用unicode编码的但是这意味着什么我并不明白,现在才意识到其中的API的A版本和W版本并不等同,实际上只有W版本,A版本不过是把ansi参数转为wchar的参数再去call那个W版本,这当然是慢了。而且我还是第一次意识到字串处理的library除了你用CRT的那个还有操作系统和信用的另一套,这当然是一个我一直忽略的问题,是否所有的客户电脑都一定有CRT的dll,我问过W的意见,他总是坚定不移的肯定,这让我心底里怀疑,不过如果用kernel的那一套就根本不用操心这个细小的问题了,当然我还没有去试验到底需要那个头文件,那个lib。对于handle我想任何在windows上编程的人都不会陌生,但是实质意义是什么我想不会人人都知道,至少我不甚了了,以前也仅仅是靠linux的file-descriptor来理解,就是系统创建的数据结构的array的index,反正是个不透明的东西让你看得见摸不着而且系统怎么扩展都不会影响你,但是window应该是有更加多的内涵,因为所有的系统对象都可以有一个handle,这当然好象linux所有的东西都是文件一样的道理,但是访问权限结合起来window和linux的差别就比较大了,我现在能够理解的就是系统对象的意真实地只得在映射表里面另一栏是一个flag里面定义了访问权限可否继承等(不准确),实际上真正有使用价值的是windows里面父子进程的权限共享的模式,linux经过fork自然就clone了所有的资源句柄,但是windows只有exec没办法这样,而exec虽然有父子关系但却没有父子进程的实质管理意义这一点比linux差多了,当然windows也不会有linux的zombie的问题,有利有弊吧。但问题是怎样传递句柄?命令行?环境变量?消息?消息当然是万能的而且没有时刻的限制,不象另外两样有通知的问题,比如只能在开始的时候做,如果子进程开始运行了你就难办了。再接着看吧,看有没有类似IPC的进程间通讯工具。

看美国总统竞选我总有很多感受,比如最简单一个党派竞选人的提名机制问题,和台湾今天的模式比较一下你就看出一些问题了,比如民主党有一大堆的竞选人怎么决定呢?台湾的民进党要什么党主席协调等等这些稀奇古怪的黑盒子办法,美国民主党怎样做呢?民调是不足信的比如台湾连电视的收视率的民调都是作弊的,美国我想肯定也经历过类似的困扰,最简单有效的办法就是让选民掏钱出来,什么口头表示都不如让普通选民掏钱包出来支持他们的候选人,所以希拉里,奥巴马才要拼命的筹款,这才是铁杆的选票,用钱去买票?在台湾是这么做的,但是前提是钱从哪里出?小国可以向美国这样的大国谁买的起呀?总而言之所有的美好多东西都要有实质有效的制度来支撑否则都是空谈,很多中国历史上的改革都是因为缺乏一些有效的具体办法而失败的,所谓有效的一个标准就是操作性,另一个就是钱的支持。美国竞选是很花钱的工作,钱从哪里出是个大问题,现在美国总统竞选越来越像一个风险投资了,谁来承担竞选失败的后果?换言之,谁来买单?消费者,就是选民,这才是良性体制。

如果所有的问题可以描述给计算机,那么问题最终就是一个计算问题,计算问题的最终解决方案就是并行计算。所以不管怎么说我都是得益非浅的。

早晨跑步,吃完早饭看看书看看电视睡一觉,在起来游泳在沙滩跑步,回来幸福地躺在床上听海风,这就是度假的生活。

大师举了一个例子是关于多线程执行dll的问题,这个领域可以说是我的空白,我所能理解的就是DllMain这个入口函数是一个特殊的东西,如果用createThread来创建线程如果县城用到什么dll,那么createThread应该会创建一个mutex,(或者这个东西原本就是进程创建的)目的是保证dllmain的执行是synchronized,因为在DllMain里面有很多初始化的东西,(还有可能是嵌套的比如dll用到其他的dll)总之这个应该和java的那个synchronized很像,我原来有写过一个非常简单的例子说明这种死锁问题,就是在这种synchronized的function中不能去做同步的等待。大师的例子是在dllmain里面创建线程并等待它运行结束,结果创建线程的线呈霸占了dllmain创建的线程当然连初始化都不幸更别说结束了。原理并不复杂,而且是大师的现身说法更加得令人印象深刻,不过呢,我花了一小会时间去体会最后还是要用自己的方式来理解,我想有一个原因是因为中文译文的关系,总觉得隔了一层很别扭。(这是借口,我现在的英文远没有到中文的程度,但是因为所有的概念都是从英文学来的看中文翻译的总有些吃不准,比如什么叫做“作业”?也许英文的term我也没有接触过吧?win2k的很多东西还是比较陌生的。

在海滩上散步实在是一种享受,相比之下厦门的海滩简直就是垃圾堆。加勒比海真是海上的明珠啊。

CNN有很多很出色的新闻报道,今天晚上的新闻报道是一个在阿富汗的记者报道阿富汗妇女的生活在塔利班被美军打垮前后的变化,之所以CNN能被大多数政权接受比如连古巴都允许就是因为它的客观真实,说句良心话,伊斯兰的教义实际上就是让占人口一半的妇女三是劳动技能这样可以解决一部分就业问题,当然也可以建立一种稳定的家庭因为妇女离开丈夫根本无法生存,所以从这一点来看很多国家的男人也许都向往这种宗教制度,尤其是一夫四妻制。节目中很多阿富汗妇女无法生存只好自焚,有时被婆婆虐待,有的是七岁就被卖做童养媳。在这之前还有一个阿富汗农民种植鸦片的报道,当地农民也是走投无路只有毒贩子和塔利班能够帮助他们,贷款种鸦片。另一个在当地成功的女性,一个即便在塔利班统治时代秘密组织妇女研究文学,进而成为一个popular的女诗人被他的极度的丈夫谋杀了,原因看起来仅仅是因为当地的男权社会让他丈夫感到无法做人。几乎伊斯兰极端主义大都是在最贫穷落后的地区兴旺的,巴勒斯坦的女性人肉炸弹很多也是因为生活所迫,求生不能求死还可以让家人获得所谓的荣誉和一笔安家费,那么为什么不去做呢?我觉得我对于伊斯兰这种宗教的感觉越来越接近基督教国家的主流了,事实上宗教的冲突是这个世纪的最重要的议题之一了。阿富汗的老师还要冒生命危险如果他们教女学生的话,即便是受过教育的阿富汗青年也不能把他们的妻子让他们的朋友看到,连照片都不行,这的确是防止通奸的最好的办法,哈哈。。。伊斯兰教的通俗说法就是男人家里如果有四个老婆肯定不可能有什么精力去通奸嫖妓了,这也不能说完全没有道理。不管怎么说阿富汗还是有改善的女孩子至少有法律上上学受教育的权利了,这一切没有美军的入侵是不可能发生的,这个地球上除了美军能推翻塔利班还有谁能去做会去做?苏联?中国?英国?法国?欧盟?只有美国!我们的地球不能没有美国来当地球警察。

《God's Warriors》开始播放第二集,基督徒版。美国的基督教教义派至少比伊斯兰极端主义来得好的地方是他们尊重生命,当然这并不表示我支持他们反对堕胎的主张,自杀炸弹,反对堕胎这实在是两个极端,这个星球上最不需要的动物就是人了,跺就剁吧,多一个少一个。这个极端教义派还有一个大学“liberty university”,什么现代科学进化论等等都受到抵制,他们应该还有研究生院吧,law school,居然有一万多的学生,在80年代里根对卡特时候发动了上百万的选民,搬倒了一大堆的民主党参议员。这些law school的毕业生要做的就是成为律师维护上帝的主张,甚至还要把《十戒》写到美国的宪法里,还有美国宪法的五条个人基本权利也要和圣经联系起来,总之现在的美国最高法院对于美国传统基督教义派有很多的同情票,最忌一次大法官投票表决时4:5,差一点就通过了这些God's warriors的主张,如果2008共和党当政估计大法官的任命可以起到至关重要的影响,很可能通过堕胎非法的裁决。吉米卡特连任失败的一个原因是因为他反对“southern baptism convention”的一个更加极端教义的主张,其中有很多限制妇女角色的条例。1976年那些支持他上台的基本教义派在1980年转向支持里根,原来卡特是一个标准的基督徒,父亲就是牧师,现在他又成为家乡的Sunday school的牧师了。美国的基督徒的力量相当的大。居然还有God's foreign policy statement。上帝在圣经里就眷顾犹太人,所以美国的对外政策应该保护以色列。这些听上去如同天方夜谭,不过这是我在CNN看到的。另一个基督教激进教义派的牧师走遍全美国讲演,他说美国有五千万基督徒只要有30%投票就能赢得选举,他在interview里介绍这一切的起源来自于他旁听他女儿中学课堂的一堂性教育课,他说学校教导孩子只要使用避孕套口交等等都挺好的,他主张自由派害了美国应该由conservative来改正这个错。据说美国有超过50%不相信进化论,1/3美国人主张学校应该停止教授进化论改为教授所谓“创造论”。这是令人吃惊的数字,那个教授说得好,genesis《创世纪》实际上就是一个指标,如果这个不对那么所有都不对,所以基督徒必须维护这个基础性的章节。旧金山举行了一个“战歌”集会,这是一个所谓“上帝军”的组织这是一个中学生的基本教义派,当然他们有他们的理由,最小的学生才十一岁因为她说和她年龄相仿的女孩堕胎吸毒,而他们是purified。

十二月十七日 今天天气很好吗? 天终于放晴了。(第二天)

昨晚下雨我的房间居然漏水,哈哈这是今年第二次我遇到这种事情了。终于完全明白volatile的意义了,毕竟是大师,写了一小段汇编我立刻就明白了,比很多似是而非的解说不知道明确几百倍。这完全是编译器的优化问题,普通程序的顺序执行时可以进行优化的,比如你检查一个变量,变量的值必须读到寄存器,如果你是单线程程序,编译器就座优化始终用寄存器的值来做一个while比较,(这种while(x=0);)是非常的常见,可是如果是多线程你是期待x被另一个线程修改的,我因为从来不用优化选项所以对此感受不深,今天也算是上了一课。以前朱春明讲的嵌入式的例子却是其它设备修改,归根结底都是编译器优化的问题,否则绝对不应该去怀疑这是什么操作系统的缺陷,绝对不应该认为这是什么cache与main memory的不一致,这一层完全是操作系统设计的问题,根本不是应用程序元看得见的层面。我以前强调过一次,现在再重复一遍。windows里面的InterLockedIncrement等等一大堆的InterLockedXXX函数应该是最快的同步工具,有可能用的都是硬件实现,比如早期CPU甚至有相对应的指令,现代的CPU应该为了SMP而设计了总线或者标志寄存器等等总之非常得快。不过这一类的函数和EnterCriticalSection相比到底哪个快呢?这种比较完全无意义,两者使用不同,后者是一个同步工具可以用前者来实现,后者应该是比较高级的东西因为前者包含了具体的操作比如改动了一个值。

我这几天始终感叹地是,这本武林秘籍对我来说获益匪浅,很多百思不得其解或者始终似懂非懂的东西听大师系统的解说犹如拨云见日,仿佛开辟了一片新天地,还有更多的是我从来没有接触过的仿佛醍醐灌顶,又仿佛脱胎换骨的感觉让我如痴如醉,只想说为什么没有早一天看这一本武功秘籍?可是仔细一想这实在是一厢情愿,如果是哪怕一两年前看这本书我肯定很多完全不明其所以然,正所谓功力不到高级武功学之有害无益。这实在是有一个鸡生蛋蛋生鸡的难题,究竟你早看早受益少收很多弯路折磨还是从一开始就看缺陷如不懂装懂胡思乱想的歧途呢?对于这种两难问题我的回答是最近才形成的,不要去争论,去做吧,鸡也先,蛋也先,实践也先,理论指导也要先,应该是一个不断的循环,所谓圣贤之书常温常习才对,不可能一次就能读懂的。

对于cache-alignment的问题以前理解不深,现在听大师解说才意识到在SMP这个问题更加的至关重要,有一个编译器开关很有用的__declspec(align(32))。刚刚读到大师的解说,entercriticalsection是相当高级的,可以把阻断线程至于等待状态,同时要记住他不防止同一个线程两次进入,这一点非常重要,这让我想起了linux下的系统semaphore,不是那个IPC的semaphore,是系统级的那个,很裸很丑陋的,好像会有这种问题吧?忘了,也许没有,总之有的同步工具有这种问题,你两次获得是不行的,(我在哪里读到的?还是早期的问题?)不过这的确曾经困扰过我,当时我不明白mutex属于创建者,没有释放两次结果别的线程总是拿不到。InitializeCriticalSectionAndSpinCount可以让你看到是否创建Critical_Section成功与否,大师说微软当初也没有考虑到创建时内存不足会失败的问题,所以除了SEH你还真没有办法知道,用上面这个超长名字的函数要可靠,我想起我看的另一本windows-system-programming的书里好像提过SMP要用这个spincount才行。大师的另一个tip是关于一些insight的,这一类东西其实很占资源,所以在第一次运行使用之前系统并不创建相关联的资源,可是如果运行期遇到内存不足在创建又会失败,所以spincount参数的高位置1可以强制立刻飞配资源,这些真正是非常高级的经验之谈,没有经历过这些极端境地的程序员是难以体会的,我想我还没有到这一层,唯一的经历是创建octree的预处理用光内存导致vector的push_back出错的问题,我找这个问题非了好几天,因为怎么也想不到vector会出问题,而且是push_back,所以有这种意识比有必要的具体解决有时还重要,因为你可以想得到问题可能出在哪里,不然向我始终怀疑自己的代码问题想破了头也想不出来。

我讨厌中文书的一个主要原因是中国人的懒散与含糊其辞,这表现在很多书都不见index栏目,一个名词的定义对理解的至关重要的,那么一个名词在哪里定义的是一个重要的问题,而且很多参考书不能指望读者从头到尾一章不差地读,跳过很多章节突然看到一大堆名词不知道在哪里定义的真实一个头疼的事情,为什么中文书不加一个index呢?这就是中文丑陋的东西人人都可以定义一个名词而且好像每个人都可以望文生义,曾经有人拿这个说事说这是中文的优势,一个普通人掌握两千个常用词就可以看懂科技文章,不像英文没有几万单词而且是相关领域的专有名词你根本就看不下去,问题是看懂的定义,“火箭”真的是带“火”的“箭”吗?“流星”是从哪里“流”过来的“星”?中国人的读中文的望文生义导致了很多的恶果。

谁说CNN没有政治倾向?那个女播音员评论布什总统的讲话就用了一个stuffed with etc.我不明白为什么她这么说,不是当年宣布减税政策并没有什么不对,是市长面对克林顿政府遗留下来的这么大一笔财政盈余布减税的政府除了中国共产党之外很难找到,发动伊拉克战争阿富汗战争难道有什么错吗?换了不是任何一个美国总统不可能做出什么别的选择,比如珍珠港偷袭之后美国人民还会拒绝参加二战吗?如果一旦参战不彻底消灭德意日轴心国同盟能罢休吗?美国的问题是布什的政策造成的吗?美国从伊拉克一走了之就行了吗?日过在发生一次911是否美军要再打一次伊拉克吗?美国以后历届政府能够每一节都来一次战争行吗?很多自以为是的民主党的中产精英阶级总喜欢那布什取乐实际上这些人都是误国误民的三国时代吴国的张昭之流,说起来一套一套真正需要他们出主意的时候连大方向都弄错,妄故了孙坚托孤的所谓内事不决问张昭,实际上这种人只会沽名钓誉实属无用之腐儒。布什讲话时候明显的苍老了很多。早上跑步大概四五公里吧,然后去无比简陋的健身房活动了半个多小时。结论是我这一次度假的选择有问题,古巴的酒店一定要挑选,这个酒店一定有它的黄金时代,不过那应该是很久以前的了,不过就当作闭关修炼吧。

CNN谈论的另一个话题就是法国总统萨克奇的花边新闻,oh lala,刚离婚的总统和超级名模约会了。可是我在想这个基本上没有什么稀奇,既然老婆跟他离婚了为什么不能呢?可是问题在于以一个刚当选的总统他的妻子居然要放弃第一夫人的位置离婚却让所有东方价值观的人难以想象,其一,这个第一夫人位置一定没有多少吸引力,没有多少特权没有多少利益否则为什么不再竞选前就放弃呢?其二,作为总统敢于做出这种决定国民并不把它看作始乱终弃的坏榜样说明政治在普通公民的成熟,其三,作为总统的花边新闻并不奇怪全体国民都知道,要知道就算是前苏联总书记有几个情妇普通老百姓也是知道的,比如江核心和祖英的关系全国人民不知道吗?我是比较倾向于相信政治“谣言”的,在新闻管制体制下“谣言”要比人民日报和新闻联播可信的多,因为这一类话题绝对不会空穴来风,也不会是纯粹的小人物能够想象出来的,这种东西不是身边的亲信不可能透露出来,问题是这种让普通人侧目的领导人的秘密让现在这个社会生活的人保守秘密也比几十年前困难多了,所以没有不透风的墙。但是话说回来了,就算有又有什么关系?克林顿执政有什么问题吗?领导人的私生活从来都不是国家的问题,国家的问题恰恰是连领导人的私生活都成为问题的问题,核心的那个拿不出台面的原配全国人民都看不过去,那就离了吧,不行吗?全国人民不答应吗?可能唯一不答应的是原配本人。我有例可证,当初刚到延安的时候老毛抛弃贺子珍了吗?不是,是贺子珍要离开老毛,老猫当然无所谓延安那个时候有的是从蒋管区来得找机会的青年女学生,仿佛那个时代有理想的女人的好莱坞,充满了机会,哈哈。所以只要原配愿意离婚,我们的领导人不用 背喜新厌旧的罪名绝对不会犹豫的,可是恰恰是因为东方的政治制度的第一夫人的红利让这么多原配死活就是不离不弃,成为国母风范。 所以,说句笑话,什么时候中国领导人的私生活可以被普通市民当作花边新闻评头论足的时候中国共产党就实现了自己为人民服务的诺言了,因为你不从神坛上走下来怎么可能为被你顶礼膜拜的人服务?喝了两杯红葡萄酒吃了两块牛排我感觉飘飘然的,海边散散步,风大浪急,白浪层层,有人在wind-surfing,就是身上绑一个降落伞脚上绑着冲浪板。

一觉醒来本想去其自行车结果发现没有人车子都锁起来了,肚子又感到饿了向起来昨天吃的cheesebuger很好吃就又去snackbar点了一个,好吃,我觉得我现在越来越能够接受西式饮食了,游泳池边音乐大作正在教授当地舞蹈,大概是恰恰和伦巴之类的吧,反正不懂,想起昨天晚上看的表演我不由得惊叹加勒比海人的舞蹈天赋,他们的音乐和舞蹈有着天然的融合充满韵律和感染力,而且这些舞蹈者在表演的时候充满了创造力,仿佛jazz一样的即兴创作,经常仿佛有神来之笔,结合音乐与节奏用身体写作了一首首美妙的诗篇。CNN的另一个新闻是关于沙特的,当地一个女人被轮奸但是伊斯兰法律却要追究她和无关男人接触的错,所谓无关男人我想大概就是除了她的丈夫家人之外的人吧,基本上这种伊斯兰法律和奴隶制没有两样,很难想象在二十一世纪这种制度还有这么大的市场,沙特在国际舆论的压力下免除了这个女人监禁6个月和鞭刑200下的惩罚。CNN的评论是这只是一个特例很难说沙特的法律就会因此改变,只不过现在每个国家都是在全世界的“显微镜”下运作,这是原话,作为地球村的成员你不得不考虑你的邻居对你的看法,这影响到整个国家的形象。确实如此,大概这就是全球化的另一重意义,基本上我想在中国这样的人多地少的国家发生什么革命是不太可能的事,相反因为全球化的缘故世界去通道是一个不可阻挡的趋势,所谓顺之者昌,逆之者亡。因为全球化的一个基本结果是资讯的全球化,这个世界最大的力量就是“比较”,来自不同背景的人民在比较,不同的制度的效率的比较,来自不同来源的资源在比较,这个资源当然包括人力资源,劳动力技能成本效率的比较,这就是生存竞争,人类社会的进化也遵循生物界的普遍原则。

waitformultiobject有64个上限,这使得我想起当时wmpi那个技术支持和弄我的时候也是拿这个说理由,当然我并不认为他完全在骗我,我只是觉得他可能根本接触不到源代码,这只是猜测没有多少理由,总之这透露了一个信息,在windows里面你可以同时操作的线程的一个上线,超过64同步很可能就不容易做了,尤其是类似于waitforall这一类的操作。

十二月十八日 今天天气很好吗? 阳光非常灿烂,不过风浪较大不能游泳。(第三天)

差不多已早上都被资源文件所困扰,最后放弃了寻找VC6现成的资源编辑器,只有用文本编辑照抄代码,1。资源文件可以有include 2。资源实际上最大的一个问题是定义一些资源索引,比如你在代码里面refer什么资源,实际上都是传递一个常数,windows的很多dialog函数依靠这个常数来load资源,所谓资源大概就是一个config参数,比如resource_id  DIALOG l,t,r,b STYLE DS_MODALFRAME|WS_SYSMENU|WS_CAPTION CAPTION "CAPTION NAME"

BEGIN

   EDITTEXT ITEM_ID l,t,r,b

   DEFPUSHBUTTON "OK",ID_OK, l,t,r,b

END

我被两件小事折磨了好久,资源编译器很傻的,如果另其一行就会让她迷惑,第二就是ID_OK是资源ID,和MessageBox返回值无关的,(这本来不是问题,不过我因为参考了一下MFC的做法,看到很多与定义的stringtable的常数反而糊涂了。)3。一个dialog的创建大部分都使用一些所谓的macro做的,你需要给它一个消息处理程序,那个宏就把当前windows的消息处理函数转到这个dialog了,结束的时候你在call enddialog,所有的所谓dialog函数归根结底都是call dialogBoxparam,并且把那个lparam参数用0传递,当然像所有的api一样这个有ansi和unicode版本,你不需要操心这个了。也就是因为macro这个参数类型比较讨厌,DLGPROC得定义是BOOL (CALLBACK*DLGPROC)(HWND,UINT,WPARAM,LPARAM);CALLBACK是一个宏,基本上就是__stdcall。4。WM_INITDIALOG这个消息应该是windows的一个流程,你应该捕捉这个消息进行初始化。enddialog是结束dialog的唯一途径。

居然断电两三次,一怒之下我就跑步去了。烈日下挥汗如雨,(夸张)就跑了两公里左右吧?反正是因为没有路了。菜单算是明白了一点,以前找着MFC的tutorial根本不能真正理解怎么回事,现在知道了菜单(包括系统菜单,不对,系统菜单应该是发送wm_destroy)都只不过在WM_COMMAND项下的wparam的一个常数,静态的建立菜单的办法是在resource脚本里面设定menuname MENU

BEGIN   POPUP "&Animal", IDM_ANIMALS   BEGIN MENUITEM "&MAMMAL", IDM_MAMMALS END END...

一句话,就是VC6那个给你做成了可视化。并且一个工程只能有一个资源脚本。动态创建的menu一大堆函数我现在还不想看过多细节。

看CNN的那些时事评论感触良多,一方面新闻目光非常的尖锐可以说明察秋毫,克林顿的每一句话都要被他们抓小辫子,比如他暗示奥巴马泰年轻不如他老婆经验丰富,立刻奥巴马就以其人之道还制其身用克林顿当年竞选参议员的原话来说明有志不在年高,后来克林顿要在辩白,反而因出更多的议论,真是唇枪舌剑,思想和思想的交锋甚是好看。另一方面,采访者评论者反应很快精力充沛,这样的国家节奏非常的快,这反映了国家的竞争力与效率,实在是让人羡慕不已。 其实我也不是不明白什么民主自由都是太空泛的口号,但是有一点是毋庸置疑的,那就是社会生活的进步,什么是进步?更公正,更平等,更有效率,更合理,更加考虑更广泛的社会成员的利益和感受,如果这个是各种社会都想追求的目标那么美国社会是一个最好的典范之一,世界上有很多做得更好的国家可是他们都太小了有一定的特殊性,大国里面只有美国是唯一一个合格的解决方案。美国的事情很有意思,一个十岁的小女孩上学的时候带了一把牛排 刀中午在餐厅切自己带的牛排,结果她的老师打911叫警察把她逮捕送到了少年犯管教所。这是反应过度还是超级白吃?美国德州一个叫Horne的拿枪杀了两个没有武器的入室窃贼,有人称他为英雄,有人不以为然认为那两个人没有武器而且是在逃跑的时候从背后被开枪打死的,CNN的主持人问一个官员,他的话有些让人无法反驳但是总有一点点冷酷,他的意思是既然那两个要做入室行窃的工作自然知道这是很危险的工作,这是他们要付出的代价,如果他们找一个正当的工作做就不会有这种事发生了,说的是没有错,只是这么说总让人感到有些怪怪的味道。另一个美国监狱的骚乱,狱警对闹事的囚徒使用我认为过分的暴力,当然那是个刺头领头闹事挑衅警察,可是就如同那个坏小子的妈妈在访谈中说的,她生活的辛辛那提县就算是杀一只 狗你都不能开枪折磨它如果它已经被绑的牢牢的话,但是他儿子却被绑着然后用三万伏高压枪在胸前折磨。墨西哥的农民的生活很穷困但是贫穷的标准也不过是每个星期19美元,原因是美国农民得到美国政府的补贴于是墨西哥农民的玉米再也不能竞争了,这是北美自由贸易协定NAFTA的问题吗?美国今天最主要的一个议题就是所谓的invasion of aliens,这里的异型不是那种以浓酸作血吃人不眨眼的外太空怪兽,而是来自于墨西哥的大量非法移民,这个问题究竟有多严重我没去美国不知道但是我知道美国人现在在讨论的事是是否应该把英语当作国语这一点写进法律,你明白问题有多严重吗?美国建国两百多年从来没有人怀疑过英语是美国人的语言,You are American. Speak English!可是现在开始有人质问,有人开始担心,于是为了预防万一这一条要写进法律以防将来变天。西班牙语现在是美国的第二大语言,这就是美国人的问题。美国总统选举很有意思的,全国支持率并没有什么用,因为要看你赢多少个州,虽然有些州很小可是他们的票并不少多少。(这一点我不确定,选举人票是按人口计算的吗?还是按行政区算?)卡斯特罗是否会退位?应该不会,像同时代的毛泽东一样到死也不能丧失权利,连太上皇都不行,CNN的评论员的评论是cosmetic humbleness as usual。所谓的不应该cling to office, not to obstacle to growth of younger people之类的都是骗人的。 美国国会也有糊弄人的,民主共和两党互斗预算案,结果一方提出了一份三千多页的预算案,你读得完吗?据说就算不是总统死了你也不一定读得完,我相信,因为几百页的教科书我没有一本读完过。

十二月十九日 今天天气很好吗? 阳光非常灿烂,早上游泳去了。(第四天)

不仅游泳我还玩了一会儿kayak,就是那种独木舟了,在montreal的时候滑过一次很好玩的,在海里面不太容易保持平衡,哈哈。CNN比较funny的广告是这样的,在踐蔃有力的西班牙古典吉他的节奏中一个身形健壮的妇女走进厨房顺手摘下一个苹果抛向空中,一个箭步跳上案板一个倒立用脚接住空中的苹果,然后苹果在她两只脚之间玩味良久,然后他一只手撑着倒立另一只手捧着苹果送到嘴边。你猜这是什么广告?同样产品的另一个广告是这样的,在一段悲伤欲绝的音乐声中一个满面愁容的妇女走进房间,宽衣解带,在凄厉的音乐中她把自己用天花板垂下的红绸子绑起来,然后开始做一系列高难度的空中杂技,两只腿绑着倒掉空中荡秋千。同样的产品,同样的问题,这是什么产品的广告?CNN的一则新闻是大量的外国投资在拯救美国破产的银行,这意味着什么?评论员回答说,他们钱太多了没地方用了,的确你手中的美元部投资到美国能干什么?中午饭吃得太饱了,我总是这样,每顿都吃得走不动路,My eyes are bigger than my stomach. 撑得走不动路也要走,就索性走到城里去,这个地区明显要比我去年去的caya coco来的富裕,路上的车子虽然还有不少旧的lada但是还有一些新车,还有不少摩托车,路边的住宅当然也比我以前看到的好一些,不过不要忘了caya coco是一个农业省,我看到的是农村,而城市总是要比农村好得多。不管怎样旅游业改善了当地人的生活是毋庸置疑的。 晚上吃饭的时候忽然有些感伤,因为我觉得我一个人度假有些过份的引人注目了,吃晚饭望着天上的新月心情在两杯红葡萄酒的催情下更加的有些凄凉,我总有一千个理由思念我的故乡我却总有一千零一个理由不能回去,想起来又一个年头的终了这一年来的总结又要临近了,这一年来有多少来不及叹息的叹息呢?这个酒店的表演的确要好很多,别出心裁的东西还真不少,比如一种现代的类似皮影戏的表演,说皮影戏实在是太不准确了,因为这是一个真人的表演运用灯光服装和新材料,类似迪斯科舞厅里很多女孩子穿的发光的衣服那种,表演情趣多变很有意思很可惜我有没有带相机,不过这种不可传神的独享的记忆更有吸引力,就如这些表演一样,一旦完全曝光在灯光与眼光下就失去了神秘的魅力。是不是windows的逻辑画板只有十六个呢?我说的是LOGPALETTE我觉得有些不能理解,明天再看吧,我觉得酒精是一个人正常思考的天敌,可是我怎么也想不通国内的人天天都浸泡在酒精里究竟在想什么?

十二月二十日 今天天气很好吗?阳光非常灿烂 。(第五天)

迷题解决了,原来palette和其他的GDI不一样不能用selectobject,而是要用selectPalette,微软搞得这一套真复杂,当初是怎么设计的,除非说palette是因为客户端的物件才需要另一个API否则干嘛要用不同的函数?这似乎是唯一的解释。但是我还是有疑问就是在同一个wm_paint消息下的beginpaint是否互相覆盖?是第一个吗?果不其然,beginPaint不能多个!VC6的资源编辑器不知道加了些什么东西,也许是什么discardable吧,总之我用resourceID去loadicon,loadcursor都失败了,我重新编辑.rc去掉所有微软生成的东西,只保留CURSOR_NAME CURSOR CURSOR_FILENAME.CUR就可以了,注意这里的resourceid和以前消息循环里面菜单的那些id有所不同,因为这只是refer资源文件里的资源名字,所以用字串就可以了,不需要单独用头文件定义常数,而在前一次我用的时候用的是资源id,是数字id,(我觉得比较的混乱,上一次的菜单也应该可以用字串的资源名字来传参数,不过问题是GetDlgItemText需要传递的是一个对象的id,这个必须先定义让资源文件编辑器进行编译,然后sourcecode再去引用,所以在资源文件里面存的不是字串而是id,明白了吗?我自己都快糊涂了。)总之,在.rc里面到底要存字串还是常数是由你决定的,但是有的api只能用id不能用字串,也许是为了效率吧?

TNND古巴这个鬼地方一晚上要停电好几次,我曾经丢失好几次文件。实际上这是一个伪命题,什么叫做字串什么资源id这都是我自己想出来的,实际上很简单,对比dll里面输出的函数名和hint number,我想所谓的资源id就是所谓的hint那个应该是一种高效的查找方法大概在文件头部分放了一个表查找速度比字串比对当然快很多了。(难道字串不也是放在哪里吗?仅仅是int比对比字串来得快而 已。)MAKEINTRESOURCE解释了半天The return value is the specified value in the low-order word and zero in the high-order word,实际上你看辕马更简单明了:#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))就是假造了一个字串指针,我猜想i是微软事先计算的相对偏移量,而且从这里可以看出来资源文件是有一定的长度限制的,35536是上限。(这一点我仅仅是猜测。)肚子好饿啊,去吃早饭了。居然这个电视机有机巧,我没有找到所有的频道,居然看到了中央电视台的频道。中国和印度进行联合军事训练说明什么呢?中国开始在印度和巴基斯坦之间搞新的战略了。《百家论坛》在讨论《祝福》里面是否有阶级斗争,鲁四老爷究竟是否是害死祥林嫂的元凶,评论者说祥林嫂到地主家干活在他们家好多了,白胖了。的确,鲁迅自己明白自己不是解救人民的救世主。那个画笔程序聪明的地方在于鼠标左键按下以后鼠标移动画下的临时线要怎样擦掉,这个问题其实不简单,如果你的背景是复杂的图画,你除非重画背景这个可是非常的大的工作量因为鼠标移动事件wm_mousemove会非常的频繁,而且定一个重画的rect实在是很傻,说不定你只好把所有都画一遍。如果不知道作者的办法我还真是想不出来,不过我想学过计算机的尤其学过基本图形的人很可能都知道这个约定成俗的很酷的办法(除我以外?),你的临时线是screen的inverse,多么的聪明的办法,你只要再画一遍就抹掉了,等到lbuttonup的时候再用pen的颜色画最后的线段。我对于createcompatibleDC还是不太理解,为什么bitmap的操作都要用我自己创建的dc呢?

天天看新闻联播的话你会和大多数被韩劳动人民一样认为北朝鲜是全世界的天堂。

十二月二十一日 今天天气很好吗?阳光非常灿烂 。(第六天)

你绘画五角星吗?我当时非常的镇静为什么能够用5个顶点画出总共有10个顶点的五角星呢?看了半天才明白哈哈,真是计算几何学的威力,你的五边形的顶点是alternative的顶点,这就是复杂的多边形,但是GDI进行“scanline algorithm”的时候,你可以有两个选择,winding,alternate,前者全填,后者只填奇数与偶数边之间的区域,这是MSDN的原话,可是你还真需要一些时间去理解呢。还有一些我不太明白,那个magic code0x00960169L究竟定义在哪里?作者说的微软的表可能是很早以前的东西,这个code据说是postfix,我不知道这个是否有什么规律呢?DPSxx是怎么encode呢? 什么是度假?就是坐在棕榈树下的酒吧桌前看着眼前碧蓝的游泳池边比基尼美女晒太阳,在热带微风吹拂下吃着香喷喷的芝士汉堡,并且要不时地提防落在对面椅子上的小鸟的窥探。

十二月二十二日 今天天气很好吗?阳光非常灿烂 。(第七天)

终于在msdn里面找到了Ternary-Raster-Operation的code,可是我却不明白为什么结果不太对。看了半天才找到原因,是我自己的错误,bitblt的destDC当然不是memoryDC了,我应该把destDC的brush设定,这才是我的pattern,顺便说一下,那些ternary的operation只是一些自定义的index,五花八门,大都没有名字。其实brush也可以用bitmap来做,这增加了更多的灵活性,当我们的s,d,p都是bitmap的时候这真是好多好多的可能性。二十年代的上海一个出租汽车公司居然会花一万块美金买一个电话号码?那个时候的美金有多大啊! 调整window大小的函数是setwindowpos,连带把位置也调整了。 证实了一点,一万美金买一个电话号码是吹牛皮,那个时代中国的民族资本家还远未达到那个水平,连三百辆出租车加上其它配套设施加在一起也不过就是五六万美元而已。我肯定是什么GDI的资源未释放现在电脑变得很慢了。 看大陆报道的台湾新闻评论里面有嘉宾说美国人实际上很担心阿扁到时候搞一些意外出来,比如美国驻台代表问连战说如果到时候台湾攻击大陆渔船怎么办?我有两个感想,1。美国人确实很担心,因为现在经济联系这么紧密谁都离不开谁,美国一个次按风暴就让很多人担心明年经济陷入衰退,如果像中国这样的新兴市场再波动那不是雪上加霜?更不要说中国现在有很多美国的投资又是世界的工厂。所以美国人吃不透到底会有什么意外,所以提前来文国民党当然也是提醒。2。美国人对于中国的事情还是外行,你天天看CNN的话就知道美国人根本没时间关心像中国台湾这类事情。国内问题是大事,安全伊拉克非法移民等等全排玩乐也轮不到中国议题,另一方面美国人很天真地认为如果中国大陆的渔民被绑架杀害的话就会陷中国政府与危机,殊不知这类事情在中国人眼里就像死了几个蚂蚁一样不值一提,我小时候大概每个月都有福建渔民被台湾打死的消息,再往前每个月都有广西农民被越南人打死的事情,再往前每个月都有农民被苏联人印度人打死的事情,中国政府什么时候生气了?对越自卫还击也不是为了农民报仇,主要是为了柬埔寨的西哈努克的要求,那个时代只要有一两个小国轨道在中国领导人面前称臣让他们享受一下万邦来朝的虚荣就什么都答应了,包括向西哈努克这类乞丐要在中国嫖妓周恩来都只好找招待所的女服务员来服务。所以,美国人不懂中国,中国不像世界上的大多数政府要替它的臣民考虑,不是的,这种杀渔民的办法不能激怒大陆。阿扁要另想办法。

不过回过头来看台湾的问题很严重,很多人其实并没有意识到危机是注定要发生的,我们不妨仔细看看蓝绿两党在明年的大选中是谁也输不起的,第一国民党输不起。凡事不过三,如果国民党连输三次整个人心就散了,这个当可能就散了,机会主义分子会倒向民进党,党的内部会再次分裂出走,支持者会彻底丧失信心与耐心,总之,国民党会彻底垮掉,所以他们输不起。第二民进党输不起。民进党虽然是执政党但是始终处于很不稳固的地位,最大的问题是掌权的人一旦失去权力就如同失去生命,民进党的财源不如国民党一旦下台可能连维持的钱都没有了,另一方面这些人都害怕国民党重新掌权后会秋后算帐,阿扁就是代表,他们绝对输不起。原本的民主政治是一种平衡的权力,朝野两党不会有这种你死我活的绝对的执政党优势,可是台湾的宪政体制有先天不足导致现在这个情形就是谁都不能输,但是一定会有一个输家的话,很有可能会有极端事件发生导致政局混乱,这个时候才是最大的可能性事件发生:对台湾动武的三个条件中唯一一个可能发生的条件就是岛内发生重大事件比如混乱,大陆绝对要介入否则被联合国或者日美派维和部队的话台湾就国际化了。所以,这就是美国人最担心的因为这个剧本太复杂超出任何人的控制。

十二月二十三日 今天天气很好吗?阳光非常灿烂 。(第八天)

有几件事情要明确一下:1。做bitblt的三个东西,R=memory DC一般就是你创建的一个bitmap,他和一个memory的dc相联系,就是要selectobject,D=实际的screen的dc相联系的,往往可以有bgbrush,与pen之类的画出来的,总之是和实际的dc相联系的,P=和实际dc相联系的brush,不一定是bgbrush,而只不过是目的地的dc的brush。2。如果要抓取屏幕要创建一个和display相联系的dc,这个display-surface用名字"DISPLAY"来获得,CreateDC的其他参数为NULL,同时还要创建一个memory的dc来存储bitmap,屏幕的大小可以有GetDeviceCaps获得,bitmap和memorydc相联系,最好先把你的程序ShowWindow(hwnd, SW_HIDE);然后坐bitblt,memorydc是目的地的dc。3。存储bmp文件比较麻烦,我玩过一段时间感觉还是有些麻烦,主要是要考虑所有的格式的话不太好写的好,如果是单单面向某一种格式当然容易的多,从HBITMAP获得信息是GetObject,获得data是GetDIBits,bitmapinfoheader的定义还是很罗嗦的,我懒得再做一遍就copy微软的例子玩了一次。对于bottomup与topdown的格式我还是不太明白,以前发现有的人反映我的程序有这样的问题,实在是罗嗦的很。4。alphablend功能只能支持32bpp,这当然是合理的,可是rgb居然是pre-multiply with alpha,这就使让人难以接受了,我就懒得玩了。对于localalloc我还不太明白,是否已经没有必要使用了?也许使用heapalloc更好吧?究竟和new,malloc有什么区别呢?是操作系统级的具体实现吗?看伏明霞和郭晶晶的故事感觉很有意思,背后还有这么多呢。

天上的云彩仿佛半透明的羽毛飘来飘去不时地想遮住那轮明月的脸庞,地上徐徐抚面而来的微风不停地拉拽着婀娜多姿的棕榈树。

十二月二十四日 今天天气很好吗?阳光非常灿烂 。(第九天)

犯了一个比较低级的错误,因为我有一种错误的观念,如果你想创建一个singleton的对象,是否应该把它声明成static在“头文件”呢?我的观察是应该用extern声明,好像每一个引用这个头文件的cpp都会有一个自己的实例,所以你会有多个实例,这是非常的subtle,我在写并行程序的时候并没有这种体会因为mpi的程序在不同的node上执行不同的cpp所以每个Node还是只有一个实例。其实二战是一个险胜,因为直到德国投降的最后时刻他们都有翻盘的机会,当时不论是德国还是日本都有很大的机会研制成功原子弹,而且德国的喷气飞机有很大机会得到空中优势,我今天还知道了一个我不知道的历史事件,当时日本和美国一样成功研制了离心机,但是他们缺乏u-235,在德国投降前夜德国决定用潜艇输送500kg的u-235和一批专家到日本,天知道如果日本得到了这批武器战争是否会成为一场原子战争?

据说鲁迅和他弟弟周树人的绝交是因为家庭开销上的纠纷,以前胡一刀说鲁迅日记大概都是什么今日收到某人送来十块银元之类的琐事,后来我就开始学习这种写作风格,可惜始终没有收到某人某日送来的十块银元之类的,实在是一大憾事。如果要登记backgroundbrush应该用SetClassLong,在16位系统用的是SetClassWord,我猜想这个函数实际上就是用的结构的偏移量来设定的,猜测而已其实无关紧要。 让我感到困惑的是隐藏window之后,比如showwindow,我再也不能恢复window,好像消息循环被转移了再也创不到那里了,当然这是我的猜测。我试验了WM_SHOWWINDOW可是还是不行。

我想你一定会被气死的,vc6的资源编辑器居然要求每一行必须用回车结束,我最后一行忘了这个结果一直报错,我还以为是语法错误,文件结尾的判断有这么白痴的吗?真把人气死了。

圣诞大餐吃了些什么?我不知道,我只是知道我喝了好几杯的红酒,然后心里很惆怅,想起了很多,十年前,二十年前的陈年旧事想从胃里不时涌上来的饱嗝一样五味俱全,只不过事件里的人物都成了一个个的符号,一个个没有面孔的符号,我费尽心机的敲打着斑麻木的额头尽力会向那些面孔,可是除了一个个的指令破碎的片断没有任何一张清晰的面孔,一切都是一些模糊的支离破碎的片断。我想我要么是超级白吃要么就是超级天真,你想windows就算再烂也不会有这么低级的想法,我自己创建的wndclass是用来向系统传递参数的,系统内部怎样存储window-class是一个不透明的东西,或者按照操作系统的行话来说是一个不愿意暴露给用户的内部结构,一方面是安全的考虑,一方面是将来升级换代的考虑,总而言之最基本的是在系统内存的东西,我怎么能够天真到以为setclasslong是改变这个参数的属性呢?我一定是没有喝酒的缘故,否则怎么这么白吃?现在我的头疼得厉害。 首先,使用setclasslong改变bgBrush完全没有问题,但是正如我以上所说的wndclass是没有被改变,其次要改变menuname我失败了,并且正如以上所说的,wndclass是不会改变的,而且就算我手动改变也没有用,所以你明白我所说的了,你是只能操作hwnd之类的opaque东西,间接地依靠一些列函数,不可能直接改变数据结构的,这个基本观念我还没有建立实在是可耻。我的结论是也许静态的依靠资源文件建立的菜单不能简单地依靠改变资源文件名,也许可以但是我也许没有找到合适的时机点或者事件,不过我以为wm_nccreate是第一个事件,所以我认为只能用动态创建菜单的办法来改变

十二月二十五日 今天天气很好吗?阳光非常灿烂 。(第十天)

我想原因也许很简单就使setclasslong没有问题,我的确设定了新的menu-string系统也知道,但是我并没有说怎样处理已经load进来的menu,所以我只能硬性删除,getmenu,destroymenu,loadmenu,setmenu,这样一系列动作可以设定预定义的资源文件里的menu,动态创建实在是太麻烦了,我懒得看了。TNND的菜单是WM_COMMAND的wParam。我有一种错误的幻觉,这实在是糟糕,你能否仅仅依靠DSP的ternary-raster-operation来画一个bitmap在一个bitmap上?我的意思是一个cartoon人物画在黑色背景上,然后我想把人物的形象“扣”出来画在复杂背景上,比如一个bitmap上,这个只能使用alpha-blend做,可是我有一种幻想想用naox这几种操作的组合来画出“透明色”,这是不可能的,因为我们的透明这里意味着rgb都是0,而我的bit操作根本不管是不是什么黑色或者无色,这个可以做到的只是SDo但是这个并不是我想要的,因为source的颜色要改变。我浪费了块半个下午把256种可能都试了一遍,当然不是因为我白吃只懂得用这种笨办法来试验,我只是想再证实一下,而且把这个256的表作一下将来是很有用的,vc6例有一点好的地方就是按住alt+shft的鼠标选择,拷贝,简直是天才的设计。在提醒一句,DSP里面的P是hdc的brush,不是bgBrush!这简直是不可原谅的,不能再错了。还有一个白吃的问题,你要抹掉上一次的东西,如果是简单的2D的东西,最简单的就是用bgbrush来patcopy,当然要把bgbrush设定为brush,不过应该可以用invalidateRect,不过我还没有试验。试验了一下,我想我的概念是错的,那个使用beginpaint,endpaint的做法,是要你重新画一下。算了吃饭吧,今天是最后一晚了。叫到这里吧,度假结束了。我觉得就算用底色作P也是不行的,试验过了不行。看battle for wesnoth,它里面的头像都很小,这是否??等回家看看代码如何?

这里的表演其实相当不错,我始终怀疑是否他们是真的在唱,因为如果是的话那么他们的确太好了,仿佛百老汇的歌舞剧,当然我没有去看过不过sound of music,东边西边之类的还是看过几眼的,正好电视里再放,我觉得我还是很喜欢美国的歌舞剧的,我个人以为这是美国文化的精髓之一,相比之下国内似乎很有偏见对于外国的文化很排斥,颇有天朝大国对于其它一切都嗤之以鼻的情节,我现在看国内的所谓文艺界仅有一种迎合大众情趣的倾向,虽然我也觉得赵本山的小品有趣但是正如一位仁兄的评论,有些粗鄙,这不是他的错,错的是现在的文艺界的取向,你不引进介绍大众怎么有机会去品尝?我记得我小时候即便是刚粉碎四人帮文化极度贫乏,电视就只有一个台每天只有几小时的节目还经常可以看到如《胡桃夹子》之类的芭蕾舞之类的,可是现在你在几十个电视台里也找不到一个小时的所谓艺术,我也不是主张什么所谓高雅艺术,那个什么男高音我一点都不感兴趣,美国歌舞剧就是美国的大众文化。
回复 支持 反对

使用道具 举报

22#
发表于 2008-1-24 07:37 | 只看该作者
美不胜收。
回复 支持 反对

使用道具 举报

23#
发表于 2008-1-25 13:15 | 只看该作者
中国护照直接到那里落地签吗?我怎么听说去古巴要签证的呀?
回复 支持 反对

使用道具 举报

24#
 楼主| 发表于 2008-1-27 00:06 | 只看该作者
Post by 想想
中国护照直接到那里落地签吗?我怎么听说去古巴要签证的呀?
落地签证
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

Copyright © 1999 - 2024 by Sinoquebec Media Inc. All Rights Reserved 未经许可不得摘抄  |  GMT-5, 2024-11-23 07:44 , Processed in 0.053848 second(s), 29 queries .