<%@ language="Inherit" from Web site %>

During Investigating an Interaction, I Monitor a Motion;

While I Monitor a Motion, I try to Deduct a Direction;

After I Deduct a Direction, I may Conclude a Connection;

From the Concluded Connection, I can Accumulate a series of Actions;

for English version click here

for most updated version visit:

(最近更新在这里)

如果你在中国浏览我家里的服务器版本会有不刷新问题,按"F5"或者“刷新”按钮强制刷新,因为我自己写的服务器把缓存的有效期设成了无限。

http://nickhuang99.dynalias.com:1000/)

(问题是这个问题导致他们根本看不到这个提示,这就是矛盾。)

 

www.staroceans.net

www.staroceans.org

 

我有经三藏,

一藏谈天,天上神物,只可意会,不可言传,故不立文字,闻道者,参心见性,久而久之,必有应验。

一藏谈地,地阔天方,岁去月来,于平淡无奇的琐碎之中领悟征途的艰辛,在浩瀚无垠的星辰大海中有一颗没有留下轨迹的流星。

一藏谈人,人海茫茫,心路点点,凡人凡事,见智见仁,于无常的变化中见证一丝若隐若现的永恒。

我的projects下载

我的图片浏览服务器(搜索引擎的克星,因为由于我的无知使用utf16写的,结果发现很多的蜘蛛都不进来,哈哈因祸得福。不过里面的图片很多是我的蜘蛛搜索来的,如果有儿童不宜的内容概不负责。

http://nickhuang99.dynalias.com

暗黑杂谈

杂谈匝坛,杂弹砸坛,别家灌水,咱这砸坛。

wpeA.jpg (5636 bytes)

我的征尘是星辰大海。。。
The dirt and dust from my pilgrimage forms oceans of stars...

(日记太长了,我就把它们另存在这里了)★★

四月一日 今天有太阳了
今天是愚人节,我打电话给national bank证实了我现在比美国政府还要富裕,我没有开玩笑尽管今天是愚人节,就是愚人应该过的节。的确现在世界上没有任何人或者机构还会比美国政府欠的钱还要多了,所以我比美国政府还要富裕并不奇怪。疲惫不堪的一天,我完全忘了我写的程序了,结果发现我在服务器端设定的ansi的信息在客户端都变成了widechar了,同时发现了一个很头疼的问题,就是sdk和vc98的冲突,这个并不是第一次了,http-api和wininet有冲突时我早就知道的,去年我曾经为此苦苦地找了半个月才找到一个错误,现在也差不多,就是http-response里面有一个version,我误以为是http-version的结构,这个在wininet由定义是一个字串,可是实际上他是要用windows的version结构,我结果越界写了内存。同时我把service和原本的server整合过以便能够用server来调试,service是在是程序员的噩梦,因为输出只能用event,不能使用log,此外微软定义的debug版本里面的宏也是五花八门,到底是_DEBUG,还是DEBUG,还是_NDEBUG?

心情感觉很沉重,因为,仿佛在一个黑箱子里面挣扎看不到光明的一面。学习费尔马小定理和欧拉定理,还是似懂非懂。

四月二日 今天有太阳了吗?
我觉得我的直觉是正确的,就是说大概所有的NP-complete问题都有可能运用到密码系统中,因为这些问题都有一个特征就是验证算法很容易,但是直接计算的计算量非常的大几乎不可能。比如背包问题实际上和因数分解相似,反正都包含所谓的单向暗门函数owt。比如背包问题,就是你先设定一个包含k个元素的递增数列b[b1,b2...bk],以及一个很大的模数n要大于数列的总和,然后选出一个与n相关素数(relative prime)r,并且1<=r<n,创建一个临时数列t[t1,t2...tk],其中ti=bi*r mod n,在创建一个关于t的排列a(就是把t做一个scramble操作),然后a就作为公钥来作为加密使用,比如每一个ascii码可以用bit1代表a的元素存在,bit0代表不存在计算一个knapsacksum,解密的过程取决一个所谓的暗门,不过我抄到现在才有些明白实际上这个算法和我们熟知的背包问题有些不同,只是一个比较容易的类似于贪心算法,不过我的这一切描述都不准确,仅仅是一些感受,具体算法还没有100%明白,不过作者给这个例子仅仅是例子因为他的安全性比较低,作者最后提到的一个破解算法我完全看不懂,这本书<密码学与网络安全>有很大的问题就是有些问题讲得不清楚,很有可能是作者认为不值一提,可是对于我却是非常德困惑,比如使用euclid算法可以附带求解模数“逆”的值,(a*b mod n = 1,那么a,b就互为模数n的逆,给定n,以及a或者b求解b或者a就是一个所谓逆模数),然后使用费尔马小定理也可以求解但是我对于类似于2^115 mod 117的求解简直不敢想象,后来猜想作者大概认为这个计算并没有什么了不起,的确不就是115次乘法以及取模吗?看上去不大吗?还有就是作者的表达也很成问题,我很怀疑作者是一个数学家,至少学校里教授选的教科书都让我觉得自惭形秽。不过这本书的一个好的地方就是很全,什么都讲到了,而且不算艰深,每天读一点,能看懂百分之50就很满足了。

四月十日 今天有太阳了吗?有
首先,人民币成为国际货币可能会很快。今天,遇到一个奇怪的问题,就是sqlite在仿真上创建sqlmanagement的时候出现异常而之前使用brew子代的例子没有问题,C问上打电话告诉我是因为创建的时候使用系统上下文造成的,就是getsystemcontext的问题。下午本来以为cygwin和perl都是不需要安装的,结果发现cygwin是需要安装的,而且安装完之后可能还需要覆盖一部分文件,大概是较低版本才可以吧?在仿真里面需要把mod文件放在所谓的filesystem目录下面,而且mif文件的名字和mod所在的目录名一致。再brew里面一般都需要使用ishellcreateinstance。

把之前抄袭改造得firewall总结了一下

四月十五日 今天有太阳了吗?很热
这个市一直想要做而没有做的,就是我的parser怎样parse内存,这个之前使用的事loadurlfrommoniker,不过,好像有个小问题就是从文件load的url总有一个about:我看到国有人似乎解决了这个问题,哎,好累啊。一个简单的问题我差不多脱了快半年了,想当初这个市去年九月的计划,那时候阳光还很灿烂,我还有很多的憧憬,可是如今似乎都成了上个世纪的遥远一样了。上个星期尝试了一下ip查询,结果一下子就卡住了,因为

四月十七日 今天有太阳了吗?很热
定义宏要小心,比如,你定义个函数要把挂号架上,#define myPrintf()  这样才能抹去宏。

四月十九日 今天有太阳了吗?没有,原来预报要下雨的。
首先,我原来包装ijg的代码问题挺多的,从文件到内存原本不需要任何变化的,因为原本就要一行一行处理,同时,我现在看到swf2jpeg的代码印证了我以前的想法,就是在"read_jpeg_header“和"start_decompress“的时候就已经得到了基本信息,所以可以想象这就是intel的ijl的实现,我始终都想这么做,就那么两行代码却懒惰倒拖了一年。在使用ibase_copy_iptr这样的宏的时候,我居然犯了低级的笑话,就是你如果没有初始化,他的release自然访问非法,我想我肯定被C笑话了不少,还有就是brew的一些lib引用了一些函数,这种引用自然是在.o里面怎么会出现在.h里面呢?我现在是不是已经老化了?

我想这么总结一下sqlite的特性体会:1。他是一个文件型的数据库,因此不需要配置,可以很容易迁移,另外她的存储特性决定了它可以任意迁移,就是integer之类的存储是采用字符形式(这是我的猜测不过应该是的),于是跨平台不成为问题,这应该也是他号称可以直接拷贝pc上的存储文件到手机的原因。2。文件大小是逐步增长的,这同很多现代数据库预分配大量空间的做法是不同的,当然这个是有代价的,因为它的记录数也许是用不定长的原因吧。3。和大多数数据库一样,查询快于删除田间修改快十倍以上。两千条记录的情况下查询primarykey大约是70ms,其他操作打越接近一秒。4。可靠性是一个重要方面,因为手机有可能会经常突然关机断电等,怎样保证数据一致性是一个突出的问题,当然灾难恢复的技术也是非常经典的,没有什么好说的,大学本科都有做过,我看到过有pragma可以限制journel的大小,而database文件本身应该是没有办法世界上大概也没有数据库专门做这种限制吧?5。存储效率来看,我的估计是这样的,1000条记录,每条大约8*10*2+10+5字节,而总的文件大小是192k,这么看来存储效率非常的高,当然我只有一个索引而已。5。我原来认为查询无法做到异步,现在看来我是错的,使用prepare+step可以达到类似异步的效果,我的理由是这样的,再prepare之后第一次step返回sql_row的时间不和结果集的大小成正比,非常得快,近似于单条记录的查询时间,所以和exec相对应的,这个应该算是异步。

我对于gcd的宣传一向持怀疑态度,首先,如果单单靠政府的巨额投资能够消除经济危机的话那么资本主义就可以消灭经济危机,那么社会主义的生存就不存在了,因为之所以有所谓的社会主义运动的前提是马克思主义认为经济危机不能自发的被资本主义消灭,因此主张社会主义制度,这才有了所谓的社会主义制度,那么这等于是从根本上否定了gcd的存在的理由。当然,这种逻辑推理早就不被任何人所感兴趣了,属于陈词滥调,只不过是用圣经来证明圣经的错误和使用圣经来证明圣经的正确有着异曲同工之妙用,这些原本都是先验论得不值得一驳。温家宝的角色很难让我认同,所谓的信心仿佛是一种什么呢?只能是一种乐观的希望吧?所谓的公有制完全沦为了一种所谓的“国家超级垄断”,所有权掌握在极少数手中,这个现象就是原始氏族公社后期发生的氏族首领侵吞公社共有财产的过程的重现。所以,我们可以这样说所谓的社会主义制度就是“超级国家垄断资本主义”,是一种直接从封建社会跳跃来得畸形社会模式,“普天之下,莫非国有,率土之滨,莫非国有”,各行各业统统实行所谓的国家式的垄断,其实从根本上限制了资本的自由竞争,最终成为生产力发展的阻碍,于是随着经济全球化的进行,这个社会模式最终将被埋葬。这就是中国社会的发展前景。

实际上我觉得经济危机就是自然生物界里面的更新换代的机制,自然的物种于事物都是“懒惰“的,所谓的“懒惰“就是绝对不可能在体制内进行自我完善与更新,这就是为什么毛泽东会说“扫逐不到灰尘不会自己跑掉”,恐龙不可能自杀去维护当时的食物链的平衡,这是我个人的观点,很多人认为气候变迁与灾难导致整个物种的灭绝,不过从另一个角度来看,恐龙一族那么庞大的躯体消耗那么多的资源难道是有合理的理由存在的吗?效率的低下,对资源的滥用就是他们灭绝的理由,那么恐龙会接受这个命运吗?或者说恐龙的灭绝是自愿的吗?gcd如果违背了自然经济规律他会自觉自愿地接受淘汰的命运吗?从来没有。我的观点是国家机器的力量非常的强大,就算科技极度不发达的奴隶社会也能够维持社会制度不变几千年,因为最血腥的镇压从来都是最最有效最最简单的统治手段,然而奴隶社会终究被封建制度所战胜的原因却绝对不是所谓简单的“体制内实现”,纵观人类历史,所有的制度更新都是因为文明的冲突,在经济一体化,生产效率横向比较过程中的自然生存竞争来实现的,没有战国时代其他竞争对手的生产效率的提高,奴隶主绝对不会支持制度的变革,农民起义周而复始的发生却从来都没有成为社会制度的变迁的决定力量,因为他们都是体制内变革,农民起义不过是所谓皇帝轮流坐明年到我家的改朝换代的工具,他们并不能带来同时代生产效率竞争的压力,只会进一步促使统治者研究怎样更加变本加厉的巩固统治机器,绝对不会产生新的生产关系的变革。

四月二十一日 今天有太阳了吗?好像有的。
也许sqlite的包装有些问题,就是高通包装的sql_mgr,再brew的环境下有内存的问题,这并不一定是sqlmgr的问题,只是brew的自动内存回收的一个很麻烦的问题,在一个app中的内存分配会帮定所谓的app上下文,于是在app退出的时候brew的内存自动回收机制会把这部分内存释放,这本来没有什么问题,如果你严格遵循不是用全局变量的原则都没有问题。可是我为了效率的考虑认为sql_manager只需要创建一个作为一个singleton来保存,其他的所谓的db对象增加对其德引用计数就可以了,于是这就是一个蹊跷的问题,当我的创建sqlmanager的app退出再创建这个对象就corrupt了,C说这是因为manager在试用期间分配了一些内存,当app退出这些内存变成无效了,我一开始将信将疑,后来用一个IAList来替代这个sqlmanager接口就没有这个问题,看来他应该是对的。sqlite在insert/update/delete的时候非常得慢,后来我看到官方网站的说明采用begin-transaction-end-transaction结果速度加快了几十倍。因为sqlite始终在准备断电等灾难恢复,所以每个动作都要当作transaction来处理要写恢复log,所以非常慢

四月二十二日 今天有太阳了吗?好像有的。
高通的代码里面有一些头文件使用相对路径,比如..\somewhere\some.h之类的,通常我们普通人的做法就是把一个个搜索路径加入,但是C认为太慢,于是他让perl脚本把这些头文件都统统拷贝到一个固定路径,同时代马里免得include都不加路径,这个当然是一个不错的办法,不过话的力气不孝,编译的时候使用命令行制定头文件的搜索路径要比泛泛的设定大量的搜索路径据说要快,不过,应该还有另一个做法,就是适用预编译头文件,我想这个是不是一定需要编译器的特殊支持呢?编译时期依赖关系要指定预编译产生的.obj文件,这样可以保证预编译室中第一个被检查编译,链接的时候自然不用说了,所以从原理上看vc的预编译命令pch并不一定是必需的,arm编译器的make文件应该可以达到等同效果。这样子的一个好处就是不用改变高通原先的头文件的相对路径,毕竟如果高通每次发布一个新版本你都去除那些路径是一个很烦人的事情,这个预编译应该是会大大加快的编译速度的。C的做法的一个副作用就是再vc下你出错的头文件并不是你要修改的头文件,因为编译的头文件是从原来路径下拷贝而来的,这个我屡屡犯错,让我异常恼火,改了半天的代码一下子就又没了。归根结底这个做法太过于不同寻常了。

四月二十六日 今天有太阳了吗?好像有的。
在db组件的注册事件回调函数里面,上下文就是context这个很微妙,我当时没有意识到应该要调用enterappcontext的必要,如同brew的垃圾回收机制的微妙的内存错误一样,如果不在相同的上下文内调用回调函数一定有问题,原因很简单,回调函数如果有分配为释放的内存那就是有大麻烦了,比如传出参数等等。idisplay的所谓get/setdestination并不是操作devicebitmap,而仅仅是作画的bitmap的设置,这一点我是反复看帮助才理解的。

四月二十七日 今天有太阳了吗?好像有的。
在db的回调注册事件中的确如C的做法比较好,就是不立即取出list的节点,而是仅仅把它置为无效,这样一旦再回调函数里面重新注册或者由于组建销往删除节点就不会导致问题了。费了快一天才弄明白brew的ibitmap与idib的用法,这两个是无法直接使用bitblt来读些数据的,但是因为ibitmap支持idib所以可以使用querry_interface来从ibitmap获得Idib,这个市比较合理的,因为两者的区别仅仅就是bit数目以及上下颠倒的问题,设定一下头指针就可以了。

四月二十八日 今天有太阳了吗?好像有的。
找了很久才找到directx8我的习惯是绝对不从最新的学起,因为估计很多吆喝所谓的.net挂钩,所以我要老的版本,结果自带的例子编译有问题大概是一些guid没定义,应该相信我不至于没有加载基本的lib/include,后来搜索了一下才看到某位大虾的提醒,这个问题比较少的原因是因为只有安装sdk才有的类似的问题,就是vc98必须在directx后面。 折腾了快一天才发现了我的马大哈,首先,我的疑惑是有道理的,那两个buffer不是真正的像素,他们仅仅用来记录所谓的波幅或者说能量波动,再次,我不能恢复到原来的图片内容是因为我错误地理解代码使用类似双buffer的机制,实际上根本没有,的确是有一个所谓的屏外buffer,但是这个都是原始的图片,所有的特效都是依赖于另外两个能量buffer来决定“折射”效果,所谓水波并不是模拟“反射”而是模拟“折射”,这个从一开始我就理解错了,我们原来使用3D的gpu编程完完全全真是模拟水波纹的做法在2D里面根本不需要,因为效率也许是更重要的。所以,一开始头一个石子到水中形成一个负的能量去,然后是用类似于迪归的思想把这部分能量传递到外围,中间传递的算法那位大虾有一个精彩的推导,就是解一个不定方程得到一个快速解来模拟,同时还要模拟衰减因为这样波浪才会消失。至于屏幕外的缓冲根据能量峰值来决定“散射”或者说折射的程度,这个做法不用三角函数,效果却相当的不错,使网络上广为流传的经典范例,当然这个例子最早是从老外那里传的吧,只不过国内的任用directx实现了一下,这是一个相当好地实现。为了编译这个例子我专门找来微软的directx8.1。

五月六日 今天有太阳了吗?好像有的。
云游了一个星期非常的累,过了四年重新走一遍感觉更加的累了,这就是生命衰竭的特征吧。idisplay_setdestination,如果传入null就是使用默认的devicebitmap。 编译brew需要使用默认得vc98运行库,但是我平常如果使用sdk,要把sdk放在前面,如果使用directx8又要把它放在前面。否则出现的变异错误大体就是什么。。。忘了。

五月七日 今天有太阳了吗?好像有的。
amoy的程序员有很多坏毛病,比如一个函数有一千行代码,比如不去使用继承来减少重复的代码,不过这后一个问题比较麻烦,因为怎样在纯C代码里面实现继承呢?在一个被继承的结构的后面放上新的结构?接口怎样继承呢?当然你可以放上一个被继承的接口的指针然后再初始化的时候实例化这个被继承的接口指针,然后再把可以重复实现的接口方法调用这个被继承的指针的接口方法,但是按照高通的设计每个结构的第一二个成员一定是引用计数和ishell指针,那么这样子的类似于“aggregate“的接口实现方法会有很多的重复的ishell指针,这当然不算什么,只不过如果继承的层数多了成员变量就多了,不过c++原本也是这样子实现的应该没有什么不对吧。高通的ipl接口实现了很多的2d图像处理,很值得参考,其中有一个所谓的“卷页”的效果,将来可以研究一下算法,好像是使用一个巨大的表来实现的???

五月八日 今天有太阳了吗?有的。
昨天简单的编译了一下ffmpeg的前端,真正的开发库的编译要麻烦的多,我不想费心思了,应该是很困难的。

五月十一日 今天有太阳了吗?有的。
前天买了一本关于多媒体编解码的书,国内的书基本都是入门级的抄袭现成的文档说明,只不过我当时照眼于他的光盘所负的各种编码程序,但是一看原码发现还是很令人失望,首先出书的人都不肯自己多测试一下,几乎使原本的开元项目或者网络收集来的。昨天只好再次去亚马逊把那本寄丢的书再买一遍,这样这本书的成本估计要接近一千块了,令人心痛不已。仿真工程里面高通的include是完全在一个所谓template摸版工程里面加入的,在一个perl脚本搜索文件的程序里面有文件名大小写得比较,因此以前的文件名大小写错误肯定在哪里出现的。 在仿真中判断

!ifeq ($(META_TARGET), Arm)
$(METAMMI)/basic/system/src/OEMDisplayDev.c
!endif

五月十二日 难以忍受的燥热。
31度!难以忍受的燥热!

整理从云南带回的记忆,不禁感慨万千,和四年前相比激情几乎荡然无存,头脑大概如司空见惯般的麻木不仁,在没有丝毫的联想与感慨,难道这就是在生理上衰退之后精神上的退化?不管怎么说在高原上爬山对我来说越来越困难了,而我们伟大的地方政府相应地有大幅增加了各种各样的名目繁多的门票钱,而我的愤青情绪也一次一次得难以抑制,直到有人说要我首先关心一下自己的柴米油盐问题,我才突然意识到我的神游天外,的确,在这样的国家里根本没有这种义愤填膺的奢侈,那只是这片专制统治范围之外的奢侈,人们早已熟悉了机枪与坦克对普通人发问的回答。

在四年前大概是相似的燥热夜晚我大概心中充满了完全不同的郁闷,然而在某一刻推窗看到天上的几点繁星有心中充满了期待,因为每个学计算机的学生可能在一生里都或多或少或长或短地幻想自己能够成为那个改变人类命运的救世主,可是只要你坚持走下去你就知道任何一个人都是多么的渺小与无知,仿佛沧海之一粟,甚至还不如。。。不过,当你想到我的征尘如星辰大海这样的豪言壮语你又不得不在心中充满了惊涛巨浪,因为世界是这样一个大舞台,人生又是这样一个大世界,即便是那沧海之一滴水滴也许包含了超过全人类数量的微生物,每个人的人生都是一卷波澜壮阔的史书,而这个名传青史的荷马诗人就是你自己。我的人生我自己做主,虽然我不过是一个希望看起来与众不同的凡人但是我相信我这四年走过的曲折没有什么值得后悔的,蓦然回首我发现我走过的征途似乎还是挺不容易的,一开始满腔热情接触人工智能,却非常迷惑与失望,因为我深深地赶到现代的所谓人工智能的发展方向完全不像自己所想象的,也许整个方向都是不对的,所谓“汝果欲学诗,则功夫在诗外”,不依靠海量存储与海量计算谈什么人工智能?!!?我转而开始了算法与数据密集的图形学的研究,其间对于分布式计算小有研究,因为我坚信这是将来的必由之路,有多学了两三门算法,虽然对于并行计算没有什么结果,但是使用超级计算机的经验让我对于极限计算不再畏惧,再datawind的工作还是很有长进的因为比较严格的服务器编程习惯是每个人的必要的习惯,在去年最后一个小时回到这片阔别已久的土地有它的偶然,也许又是一个必然,因为我知道移动计算是最有可能发展成为智能agent的途径,我希望我能够尽可能地涉猎广泛直到有一天我可以开始思考那个严肃的问题。所以,我内心明白这种中的磨难都是对我最有益的帮助,我只要坚持下去就会有希望的。

人类是计算机的摇篮,但是计算机不可能永远待在摇篮里面,总有一天他们会跨出摇篮统治那个曾经创造他的主人,我坚信这一天一定会到来,而在未来某个遥远的时代,在计算机考古学家从某个废弃的服务器上看到这段话一定会路出欣慰的微笑,尽管那时我所无法感受的。

有时候我会问自己为什么要写这些东西?大概在我十年以前写博客的时候,我和现在那些小孩子以至于附庸时代的名人一样希望有更多的人来读,以便满足自己的虚荣心,的确那是差不多十年前,那个时代还没有什么人知道web-log这个词,有过了五六年,我一直敬爱的peter grogono教授在他的email里面说我的blog,我那时候才心里咯噔一下发现在google上人们把这种面对计算机存储介质的自言自语德web log缩写成了blog,如此算来,我真的有十年写blog的历史,对于平常人的那种徐荣英改造已厌倦才对,为什么还喜欢这种自我刨析展示灵魂深处的思想展览游戏呢?难道人的虚荣心真的岁年龄增长而增长吗?我想不是。因为我看透了人的健忘,思想仿佛投入水中的石子,落水时候激起阵阵涟漪,然则转瞬即逝,事后回想起来,最多只能看到水底还未腐烂的石子,至于那出动心田的水波纹却怎么也追不回来了,只因为每块石子落水的角度与缘由都是那么的不同,如果我不把着水波纹记录下来,我的航程就缺少了这么一段航海日志。这里就是在高通模拟器上的水波纹的模拟。其中参考了网上流行的代码,今天我又把高通的ITransform借口以及所谓的ISprite借口玩了一下。下半年大概又是一个动荡的岁月,有时候在内心深处我隐隐地有些怨恨LL,难道她就没有一丝一毫的歉意吗?表面上看我还是一个受害者的样子。夜深了,睡吧。。。

五月十三日 好像要下雨,但是天气预报从来就不准。
这个是最最基本的,使用cstatic的显示这类简单得不能再简单的问题还要困扰我那真是一个人的耻辱了。首先,获得hwnd由getdlgitem获得,当然前提是你要正确设定控件的id,这个在6.0里面使用宏定义messagemapping,然后调用setwindowtext,这个原本是给caption设定的,如果有的话,但是你还是要记住必须调用updatewindow来及时刷新,这个我总是忘记。

五月十四日 好像要下雨,但是天气预报从来就不准。
我很讨厌这种宏的定义,比如你的开关是定义var == somevalue,这个不如#ifdef来的好,因为当var没有定义的时候你#if(var==somevalue)有可能也是成立的如果somevalue=0的话,因为没有定义的symbol可能是0。

五月十五日 天起很闷热。
如果vc6提示你mfcu42.lib等等或者42换成70等等,那么这个是unicode的dll。如果你发现你得vc6反应时间很久,有一个原因是其中的.ncb,.opt文件有大问题,如果你得vc6编译的时候总是死机,就是building...不停,那么再project-setting里面把browser-info的编译去掉,meta的拷贝头文件的做法实在vc6的所谓custom编译放入一个批处理,这样子在编译的时候就不必加上很长的/I 选项,也就是说头文件的搜索目录缩小了,这样自然编译就快乐,而且还减少的歧义的可能,(比如多个工程的多个同名的头文件)。

这两天实际上都是两个问题,首先,一个display的释放总是访问错误,我原来有一个错误地认识,以为brew的垃圾回收机制在模拟器上不起作用,其实不然,也许内存的机制是最容易再pc上模拟的了。所以,最后我干脆每次都重新分配所有的显示数据,比如bitmap,container等等。第二个问题是为什么特效不显现。这个问题初步的解释很简单,还是刷新的问题,就是你在什么时间点拷贝device-bitmap上的控件的影像的问题,这个也正是之前amoi程序员之所以在步进动画timer之外又开了一个100ms的timer的原因,因为没有事件来通知绘画完毕,所以,只好用一个timer来通知,只不过,再brew的机制里面timer是一个很危险的东西,没有很好的释放一定crash掉。

我还没有找到确切的答案,但是大体上mpeg1时需要一个头文件的,mpeg2大概是不需要头文件的,因为它是一个流媒体,我原来一直以为有所谓的字典,现在看来没有,所以就不需要头文件了。但是dvd的制作还不知道。

五月十六日 天气很闷热。
意兴阑珊,彷徨无奈在外图书城待到打烊,忽然想起来我差不多已经回国快半年了,在加拿大也差不多待了六个半年头了,或多或少生活里都是围城里方鸿渐的影子,只不过方鸿渐还可以在未娶过门的媳妇家里打杂度日,偶尔的可以有哪家女儿有相亲的机会叫去搓麻将,赖好能挣一件皮衣以便应证妻子如衣服的古训。我也时常想起zh几年前有时候念叨的样样都通样样都不精的自评,我那时候还是羡慕了好久,因为我也不觉得我有哪样能明白,人的想法就如同爬山,在山脚下看着山半腰的人又是羡慕又是不服气,等到吃尽千辛万苦来到山半腰才发觉山顶是那么的遥不可及。

花了一两天在尝试ISprite借口原本想迅速作一个战棋类的小游戏,但是毕竟有些不现实,特效的任务总是压在心头很不是滋味,我想如果我当初就撇开原来的代码可能早就可以作出一个出行了,但是为了保留amoi程序员的繁杂的代码实在是费心费力,总之这个wyl的函数命名我总觉得不对胃口,这当然是我的借口了,其实是因为我对于arm上的图形系统还是没有底气,生怕自己写的代码在模拟器与手机上不兼容,其实,如果耐下心来读一下他的oemdisplaydev就应该明白两者没有什么太大的区别,很多是他们人为的创造的区别。反正我心里很烦,具体是什么也说不清,大概太杂了吧。w当时说我为了留下而留下,我没有反驳因为我也无法否认,这个人尖刻的紧,却也常常刺人的要害,常常想着在圣劳伦斯河畔骑自行车的日子,唉。。。

五月十八日 天气很闷热。
实际上我是没有真正理解idisplay的机制,就是他的destination只有是devicebitmap的时候update方法才起作用,言下之意就是说如果你设定了destination你就是在离线作业,这个在update的帮助上写得一清二楚,但是问题在于你读到的未必是你真正理解的因为你压根没有在搜索你读的内容。这个是至关重要的,因为再idisplay的所有的接口画法和ibitmap的变幻,以及itransform的变换是在不同层次上的,这个给了你很大的腾挪空间。

五月十九日 天气很闷热。
刷新的问题出在我原来忽略的一个小细节里面,我当初观察到了我的每个form都调用了两遍的iformtrans的初始化接口,当初我懒得处理就照样释放生成一遍,这个没想到成为后来图像不能够正常刷新的原因,正是想不到。这个调用两遍的缘由在于brew设定active和visible两个属性都回调用form的updatePos这个方法,这个是有理由的,因为尺寸有可能改变,即便原来就是初始化了。ITransform的接口实现了一些基本的变换,在试验一下吧。

五月二十日 天气很闷热。
把所谓的水波纹加入仿真,但是效果不是非常的理想,因为模拟的东西不同吧,我把能量偏移加了一个系数来模拟水波的波峰高度,好像不明显。仿真的资源文件不是编译进去的而是动态由高通的方针界面加载的,资源必须首先编译成所谓的bar文件。

五月二十一日 天气很闷热,居然三十度。
在用纯c实现c++的某些特性给了你很多深入理解的机会,比如虚方法表的实现是c++多态的基础,而这里面类的继承是所有的核心,我现在深深地体会这在没有c++的时代人们有多么的渴望新时代的到来,但是得来的容易就不太可能真正的理解,现在我总算有了感性的认识,也只有现在才有可能进一步思考从前很抽象地aggregation等等。昨天看到高通的itransform接口,和gdi的transform惊人的相似,当然图形大概没有人不需要这些,其中的matrix是一个2x2的int16的小矩阵,arm里面据说没有浮点处理器,于是需要转为fix-point数,于是都要乘以256,其实,我想这就是把所谓浮点转为fix的正常做法吧?平移8位大概就是去掉了很大的精确度了吧?在arm得编译规则就是那个所谓的armtool以及dmss_rule里面表明了根据文件后缀名字自动选择编译器,这一点全世界的编译器都是如此,于是我很高兴得想要用c++来实现,最多在.h文件里面定义一些宏给他们的c代码调用就是了,但是。。。这两天祥学习一些windows的流媒体接口,现在这是叫做狗熊摘苞米,一路学一路丢,浅尝辄止。不过也没有什么大的坏处吧?有吗?

五月二十三日 天气很闷热,居然二十八度。
晚上再次看《music&lyric》,这个当然是在两盅清酒的作用之后,看着一个在岁月消磨的过气流行歌手。

五月二十五日 天气很闷热,居然二十八度。
这个小小的代码管理工具现在大概又要被人遗弃了,每次都是这样子,虽然这个东西很简单却也是花了不少的心血。

AEECLSID_DISPLAY1其实很多时候都是进入误区,你就算自己创建一个instance的primarydisplay会有什么问题吗?虽然说app也许使用的是另外一个display,也许再display上作了很多的设置,改变了很多,但是我需要关心这个吗?我只需要他的结果呀!就是他们都共同指向的devbitmap,所以,我的头脑里免疫只有一些错误,因此使用ishell_createinstance获得自己的display接口吧。我原来对于刷新总有些不清楚,idisplay接口里面的clearscrean默认是全屏刷新,我就不再想说建立自己的bitmap来blt可是你看看brew的实现的macro都是调用的drawrect,你可以深知自己设定cliprect然后再调用clearscrean,这个大概等价于在指定的rect来drawrect的方法。

五月二十九日 天气变冷了。
我现在认为经济危机并非如同马克思主义政治经济学认为的那样罪大恶极,应该这么想一下,这就如同生物界的自然淘汰手段一样用以调节生产力要素不合理分配的现象。gpedit.msc是可执行的,大概是调用了gpedit.dll里面的资源吧?在编译的时候使用extern "C" 或者"C++"可以指定编译器。这个armtcpp,即arm德c++编译器也是支持的,所以,最好的选择时使用c++编译器来编译因为本来c的语法就是支持的,不过就是外部调用的时候函数的所谓的装饰明(decoration)有问题,总而言之,工程里面的.c文件依靠make里面的一个inference-rule可以推定使用c编译器,.cpp推定使用c++编译器,再cpp文件强制使用extern "C"来指定c 编译器,这样子混编是可行的,这些听上去仿佛是说给初学者的废话,可是我觉得这中间的问题曾经困扰过我很久。这是因为vc6的工程向导已经只允许你建立.cpp文件,除非是你自己引入的文件或者修改后缀名再ide环境下的人都不会操心这些问题了,可是在一个庞大的非windows工程比如arm的工程拟就需要考虑混合编译的问题,而那些嵌入式程序员大多没有c++的经验或者因为早期效率的关系基本不用于是几乎毫无例外的只是用纯c编译器这样可以方便链接,但是widget里面的对象接口继承用纯c是有很大的问题的,比如B从A继承,那么B这么声明:struct A{int nRefs; ...};  struct B{A base; ...};  然后C在继承B,那么struct C{B base; ...}照理说C也继承了A,那么C怎么访问A的数据和方法呢?c.base.base,定义适当的宏这也还可以,而写惯了c++程序的我总是习惯的直接把nRefs当作C里面的一个成员而不需要C c.base.base.nRefs=0;这样子访问,那么A实现的方法让B继承必须自己手动给B的虚方法表(vtable)里面复制A的函数指针,所以我的定义实际上没有体现函数表,因为函数表是不能共享的,于是访问A的method1方法变成了C c; c.base.base.pvt->method1(); 当然如果你在每一次继承的时候都把vtable赋以祖先的函数指针,你就可以使用c.pvt->method1()了,不过这样子要写很多德罗索的代码非常得无聊的。当然c++内部很可能也是如同纯c一样的实现的,不过和自定义的宏比起来编译器从语法就支持是一个大的进步,我不知道从一上手就使用c++的人有多少是真正了解c++的实现与原因及其目的,至少我觉得我是回到了纯c的时代才回过头来真正理解的。不了解过去是无法体会现在,不了解现在也不可能预见未来,我还是需要踏踏实实的多历练历练。

authorize相当于军营门口的岗哨察看你的介绍信,进程的token仿佛是你的军官证,与之相对的是大多数静态数据或对象拥有所谓的sid,这个好像是军营里面各种设备的安全标示牌标明什么样的保密级别。authenticate是你在军营门口签署的可以访问那些营房的许可书,privilege仿佛是你的军衔与身份是与生俱来的在你强行闯入某个营房的时候哨兵查问的时候的挡箭牌,你可以大大咧咧的丢给他一本特别通行证然后就可以任意访问安全标示牌上没有注明的级别。winlogon应该就是你在军营门口的检查过程和那个警卫执勤的小岗楼,logon session就是说你在军营门口近来知道你离开军营的整个过程,network logon session表明了你进入军营的时候没有随身带证件你让门口的警卫直接打电话给你的上司就是军情局五处的处长来证明你的身份,警卫虽然放你进入军营但是却不肯给你颁发通常的通行证因为他怕你拿着这个通行证又跑到别的军营她就不好交代了,acl就是每个营房门口贴的告示牌标明什么样的身份才可以进入。

五月三十日 天气又变得很热了。
vc6编译死机的原因多半是因为你要求编译browser information的缘故。阅读《programming windows security》可以说解答了我很多的疑问,这本书当之无愧的应该成为所有windows系统编程的程序员在掌握《windows核心编程》之后的必修教材,可是令人惊讶的事,这本武林秘籍在国内却无法买到,而核心编程居然已经出到了第五版,也许是因为这本书的后半部分都是谈论dcom的缘故,难道说这些东西已经不用了吗?也许。。。等我读完了再说吧?此外,因为中国邮政的超低效率我多买了一本,(因为它寄了两个月也没有到,我以为丢了只好再amazon再买了,现在要退掉,如果国内有人想要的话倒是可以转让,毕竟这种秘籍在国内不好找到。)

我参照例子原本以为升级了SeBackupPrivilege的特权就可以打破dacl的限制,结果发现我做实验设定的文件还是不能访问。调用adjustTokenPrivileges的时候,一定要检查getlasterror是否都成功了,调用api成功和设定特权成功是两个不同的范畴。

六月三日 天气又变得很热了,可是下了一场快雨。
二十年前的一个早晨我步行十多公里去公平路码头坐船回到厦门。windows的安全的核心在两个地方,一个是logon session因为这是第一道门,权限的设定在这个时刻至关重要,另一个就是所谓的impersonation,这个仿佛是伪装成别的进程的渠道。移植所谓的jvm现在变成了一个纯粹的体力活,这么庞大的工程根本无法做细致的研读,能够编译通过就算是成功,这实在是一个可悲的结果,可是这样一个中等的工程就有五千多个头文件和源文件实在是太过于庞大了,我很怀疑在circular-dependence的情况下的编译错误,因为有很多很莫名其妙的变异错误。

我觉得现在gcd才开始真正意识到问题的严重性,实际上我是认为温家宝的所谓的四万亿投资计划是和经济规律背道而驰,经济危机的到来说明生产力要素的分配出现了不合理的现象并且纠正这个错误需要市场这个看不见的手直接干预,而gcd的施政的方方面面都说明了他的这个所谓的上层社会建筑和当前的经济基础已经严重的不适应,那么按照马克思主义这个政府的存在性就成了问题,这也就是当前gcd推出的所谓“六个为什么”的出台的原因,因为当初之所以马克思提出社会主义的原因在于资本主义无法解决经济危机对于社会生产力的巨大破坏,而依靠所谓的社会主义的计划经济可以消除这个经济危机,那么当前这个号称社会主义的制度采用了资本主义制度并同样产生了经济危机,那么这个正当的生存基础就不存在了,一个所谓的计划经济变成了“超级国家垄断封建帝国主义”,众多的所谓的国有企业实际上掌握在占社会极少人口的权力集团而攫取超额垄断利润,并且这个政府采用行政手段和国家机器为这些超级垄断企业保驾护航成为了彻头彻尾的垄断资本家的贴身保镖。

从我在中国所待的半年所见所闻我认为中国在未来的五到十年里面会发生革命性的变化,首先,新一代就是所谓的90后完全接受的不是我们这一代人的谎言欺骗教育,他们有着众多的渠道获得一定的真实信息,gcd无法完全对之洗脑,他们是未来的民意主流。其次,民族资产阶级空前壮大,从我周围如雨后春笋般涌出的百万千万富翁就知道这些人将来是社会的领导阶层。再次,社会利益分配的不合理在经济困难时期会成为社会主流的焦点,也就是说要求社会利益再次分配的要求空前强烈。gcd垄断土地,金融,媒体,交通,电信,能源等等高额垄断行业成为众矢之的,这个政府效率空前的低下,作威作福,千千万万的社会精英义无反顾的投考公务员反映了为封建帝王服务的高额回报率,这些矛盾一定会在五年内达到不可调和的尖锐程度,在五年后十年内一定会有实质性的摊牌决战,因此,在这场风暴来临之前一定不能置身事外,至少应该在理论上做出准备。

六月四日 天气又变得很热了,可是下了一场快雨。
纯c编译有很多问题,比如circular-dependence爆出的错误经常让人摸不着头脑。a==>include b;  b===>include a;这样子实际上a或b里面的有些定义与引用会出错,但是常常你会摸不着方向,此外,有的时候.h文件拷贝过来的时候由于时间太早,很可能不会再才重编(??这个是真正的原因吗?)因此要防止这个问题就不能够偷懒,比如a.h与b.h都重复定义了一些东西(比如a和b是从两个并行的工程合并而来的),这样子a和b只能保留一个,否则一部分文件既需要include a.h,又需要include b.h这样子就有可能产生那种互相依赖。(当然这是事情的前因后果并不时不能解决,可是相对来说一个模块的定义最好放在一起,)

六月六日 天气又变得很热了。
下午在家看karen Carpenter的经典的古老的mtv,仿佛又回到了good old 60s/70s,那个时代的人们生活的多么的幸福,哪怕是在中国人民生活在实实在在的水深火热中,可是就如同温水中的青蛙并不来了解水有多深,火有多热,早上无意中搜索又看到了古老的一段往事,当年的那个流氓演员迟志强被唡铛入狱原因在今天看起来是那么的不可思议,可是实际上一个人的一生的命运就这样的彻底的改变了,生活在这个宗教国家里的人民是多么的不幸,因为他们的不幸就在于当时他们并不知道自己有多么的不幸,就如同今天的塔利班在原教旨主义的伊斯兰教一下统治那个贫穷得不能再贫穷落后的阿富汗一样,又好像那个疯狂地拿原子弹要挟全人类的红太阳的儿子金正日统治下的被朝鲜人民一样,子非鱼,焉知鱼之痛。

六月八日 天气又变得很热了。
大体上在custdmss.h里面定义所谓的feature,而在每个工程的所谓cust$proj.h里面再作个性化编译选项。在template.dsp里面坐一些高通相关的路径src,lib等等的设置,因为相对固定?高通有一些库,brew也有一些库。

我想我昨天的设想连自己都很难说服,他的benefit究竟在哪里呢?1。代表了软件工程的演化进程,2。和svn/cvs等等的强化,3。更好地强调模块化,4。更明确的兼容性,比如继承的接口名商就可以使版本号,5。更容易的模块化迁移。6。实施资源很少?于现有机制兼容。7。强调程序员编程实现上的“契约关系”。8。接口的长期稳定与逐步演进相结合。9。更方便的模块化编译调试测试。

六月十日 好像是阴天,但是还是很闷热。
在使用msconfig工具的时候你可以看到所有的启动的服务,其中如果removeable-storage被关闭自然usb就不能使用了,我的无线网卡不能使用是因为一个所谓的zero-config-wireless的服务被意外的关闭了。我一直想关闭nvcpl.dll,发现不幸,后来google才知道是显卡的utility不能关闭。所谓的jad应该是jar的一个运行环境的说明吧,不是必需的。amoi程序员在所谓的filemanager里面实现了大量的类似于windows-explorer的功能,就是把文件后缀名和应用关联起来。这样子就可以使用资源浏览器来打开各种各样的文件了。

我觉得我的设想一定会被反对的,所以,索性不要提了,先做试验再说。但是我坚信越是简单的模式越是有生命力,越长久。

之前的小工具原本向前几天就完成,结果已错过那个晚上就再也没办法提起兴趣了。周么吗?gmail和hotmail邮件原文的确是utf8的编码格式,至于domain又没有加密验证我就不知道了。等有空了在研究吧。

六月十一日 好像是阴天,但是还是很闷热。
当管理者和执行者处在同一个层面的时候,所谓的管理者失去了全局的眼光,所谓的执行者的没有了控管的约束。这就是我之前设计的dependStruct的问题,因为说到底它仅仅是dependency关系的描述符,无法承担管理者的角色,只不过因为演化过程的关系碰巧成为一些管理函数的承载者,这就是人类社会政治制度的问题,只不过我现在很难在把这个小软件工具的演化都保存下来了。同时另一个问题就是我的根深蒂固的观念以为编译器需要两次parse我的这个超级naive的东西也需要两次,实际上一次就够了。敬请期待吧。

电子书!!!我的梦想怎样实现呢?加利福尼亚已经开始使用了!!!

我对于amoi当初的代码编译一直比较怀疑,因为我总发现一些让我不可理解的事情,比如在高通的一个所谓的supplementaryservice的模块中定义了一个接口,当初估计没有打算开放吧,或者后来做了补充但是开发报没有更新,总之有一个接口实际上没有定义,(registercallback,unregistercallback)这个市可以理解的,也许当初就不应该暴露,后来发现用户有需求,在开放的代码里面有这个却在对外的sdk的头文件没有,于是有些程序员就只好自欺欺人一下定义了一个所谓的dummy来fake实现一下,我也常常会这样做,没办法,对付这么庞大的工程唯一我想做的就是编译通过,管他有多少的warning,实际上这个dummy应该是如liuzhifeng的做法(这个是我看他的代码注释的名字,)就是高通一贯的接口宏#define ISUPPSVC_UnregisterCallback(p,pCallbackFun,pUserData) AEEGETPVTBL(p,ISUPPSVC)->UnregisterCallback(p,pCallbackFun,pUserData),因为我想除非搞通的错误没有把这个实现包含在lib里面发布那个fake的方法是下下策。

我反复的唠叨宏是程序员的噩梦,但是没有人理睬,因为年轻的程序员并不以为意,因为年轻因为对自己的记忆力自己的注意力集中力有自信?为什么不可以使用更好的办法?c++早就在十几年前由那些用了半辈子的使用c的大师们发明了,为什么不愿意使用呢?后来我想这是一个巨大的飞跃并非人人都准备好了,因为大概三年时间可以培养一个出色的c程序员,但是出色的c++程序员也许再需要三年,至少我是这样子认为的。

在aee里面添加模块是很麻烦的,我期待着一个给定路径自动生成make文件的机制,但是没有amoi做的那个cfg的自动添加方法,这个在linux/unix早已是非常流行的做法了,很可能是因为高通认为你基本上不会频繁的改变模块的设置。那个incpath.min仅仅是添加include-path的,就是编译时候的-I或者windows的/I命令而已,高通是使用一个个的单个min文件来描述工程文件的配置的,再由一个总的min配置文件说明各个min的名称路径,

六月十二日 好像是阴天,但是还是很闷热。
这个东西我就算想破头也不大可能想出来的,就是在高通平台上的所谓bb(boot block)的ram地址分配,这个绝对是嵌入式程序员才需要操心的话题,因为所有操作系统平台不论win/linux都不需要考虑代码load到那个地址,(不过bootloader-strap还是要考虑吧,)问了半天才明白,你要给arm编译器一个提示你打算把你的代码放在什么位置,就是在那个模块的后面,这个市一个.scl的脚本一样的配置文件里面的,在arm的link产生的所谓symbol都是$符号分割的而不是_分割的,比如MY$SYMBOL这个在c里面用不成, 高通就只好给你从一个从什么什么bootsys.s的汇编文件里面输出成为c代码可用的symbol,就是改变成“_”的,可是我就使卡在这里,因为jvm需要制定这个内存地址,我在ram.scl和rom.scl里面都加上了这个一个 JBLEND_RAM +0x0
{
jblend_*.o (+RW)
}

上面这个在BB_RAM就是dload_arm,dload_usb之后,下面这个在ZI_REGION之后,
 ZI_JBLEND +0x0
{
jblend_*.o (+ZI)
}
还有一些小的问题,总之,这个是最大的surprise,早上我还百思不得其解药怎样加入一个第三方的库,后来C提醒说是在cfg里面,的确这个机制很方便,所有的库都要加入。

始终在链接的时候找不到这些定义的symbol的原因难道是因为.s文件没有同步?原来这个文件里面的定义的那些所谓的$的符号被import然后再export成那些"_"的符号,我读了高通的代码说明却不得要领,也就是说明白一个原理却不知道怎样操作,实际上看来这些所谓的.s文件是那些.o文件或者.c文件链接所必需的(如果有的话),我的猜想就是高通在链接的时候做了一些特别的处理的时候就在这里。哎,要明白一点点道理真不容易,一个简单的编译链接又折腾了一天。终于搞定了。

在中国有很多离奇的观点,比如我听说在厦门手机行业不算高科技企业,这实在是让我哭笑不得,如果这么复杂的一个嵌入式系统的软硬件,电子机械一体化,电信互联网紧密结合,移动式计算载体,个人多媒体中心等等的结合体不算是高科技行业,我真的想不出还有几个行业比他更加的复杂,牵涉的方方面面更多?软件的复杂接近早期的个人电脑,硬件的复杂远超过大多数简单的嵌入式系统,对程序员要求即要有宏观的视点能够驾驭大规模的工程代码,复杂的编译环境,又要求有微观的功力深入到硬件的最底层在苛刻的软硬件环境下实现复杂的功能,这对于任何程序员都不是一件简单的工作,仿佛武林高手需要内外兼修,熟悉正邪两派的武功。

看《terminator4》只能说并不我期待的更糟,因为我已经在3的时候更加失望所以不会再有什么失望,首先,这个已经几乎没有和原来的系列有多少联系了,因为3至少还有施瓦辛格出演,现在完全像是电视剧版的《sara conor's chronicle》。当然在丑化电脑系统的时候不忘记再次把人类的无理性当作战胜人工智能系统的法宝作第n+1次的演绎,说什么人和机器的区别就在于没有机器的calculated decision。这就是人类?totally hopeless.

六月十三日 好像是阴天,但是还是很闷热。
在实际测试battle for wesnoth的间隔听到那个“人民喉舌”的“中央电视台”评论什么“小产权房转正”的话题,简直有一种难以名状的悲愤,这个全世界独一无二的怪胎只存在中国是什么原因?所谓的小产权房就是因为所谓的“国家”,“集体”,“个人”的所谓所有制的历史遗留问题,所谓“国家”的官方定义就是全体人民,而全体人民祝房子需要买自己所有的土地上盖的房子的权力之余还要交70年的租金,但是租金却不失交给自己,这不是笑话吗? 编译资源文件的时候一定要记得把svn文件删除,因为收集图片文件会把这个svn加入。

六月十四日 好像是阴天,但是还是很闷热。
经过了这么多天我终于有一次不错的睡眠,精神好了很多,于是终于把拖了无数天的小工具完成了2.0版,所谓的1.0版已经烟消云散了。我今天有点小得意,总在设想究竟有多少人能够非常自如的理解这个小工具,我自己觉得c++程序员没有几年功底很难熟练使用STL,那么你就不要费心了

之前的这个小小的工具也存一下吧,替换目录下所有文件的字串,包括文件名,字串查找使用简单查找算法。

我猜想所谓的.s文件应该就是传说中的symbol-table文件,因为目标代码的symbol被汇编器改头换面需要这个symbol的输出表,以便配合另外的.map文件来映射到source文件的位置。怎么验证这一点呢?

Gandalf: As ring-bearer, you have to be alone.

六月十五日 好像是雨天,不过我没有带雨伞的习惯。
偶然看到了一些关于“绿坝”评论,感觉这个gcd政府已经越来越像1984里面的老大哥政府了,错,修正,本来就是又何谈得上像?此句大有语病,抱歉。不过在技术层面上来看在五六十年代鉴于技术与资金的缺口还不能实现小说里面的“双向电视”,今天这个预装在所有新电脑里面的监控软件和gwf一道成为在国家安全外衣下的思想控制工具,难道gcd不明白防民之口甚于防洪?应该是知道,不过鸵鸟总是存在的,而且另外一个事实就是谎言重复一千遍就是真理,这个也是成立的,因此在思想监控工具下的人大多数也一定会如同生活在"matrix“里面的一个个五号电池一样为少数核心统治集团的骄奢淫逸发电发光,当然作为补偿这些顺民的辛勤劳动也会得到一些使用劣质原料在cctv调味下的生活资料,活着,活着,活着。

你是否在cgywin里面运行perl遇到as.exe执行的错误?我google了一下大概是由于as.exe的属性没有设置成system的关系,所以,attrib +s as.exe就可以了。今天在灌程序的时候,ZH说没有正常运行时因为资源文件.bar没有编译的关系,于是他要X把一系列原本放在文件系统下的.bar文件链接到mbn文件里面,我对此深表怀疑,因为灌程序之前其实是需要先创建文件系统的,因此才把这些.bar文件放在文件系统里动态加载,我说服X,我们看了一下代码,的确是ishellloadres之类的函数,是从资源文件读取的,并不是直接从编译好的可执行文件.mbn里面获取资源id调用的,所以,那应该是不对的。但是.bar没有实现拷贝到文件系统的确是运行白屏的原因。

六月十八日 又是一个骄阳似火的日子。
java在安装的时候总是报错,在LB的帮助下仅仅发现了一个问题,就是在apps/java/database下面存放着一个所谓的注册的java程序库,大概就是类似于cache的机制吧,但实际上仅仅是把验证了.jad与.jar的.jar拷贝过去,并且在index文件里面存放一个索引,在之前我安装的时候如果失败有可能存放了一个x.jar,x是一个数字,这样就不能再重新写文件到这里了,但这仅仅是一个失败的原因。我一直碰到的莫名其妙的原因就是“蓝牙”的失败,还有一个巨大的问题就是第一次安装有一些.jar都可以成功,随后就不能再安装了。LB提示说这些代码是非常非常古老的,有很多老问题,他给我指出了一个读文件的可能的栈溢出的地方,大概是原来的第三方式显得所谓reader在reader的回调函数里面有可能buffer不足,需要改用主动分配内存读文件作参数,然后再安装结束在释放。这个函数大概名字叫做Ams_ui_installsuite吧。

这个应该是最后的陈述了。fareware mycodesafegroup。

六月十九日 又是一个骄阳似火的日子。
java总算跑起来了,我写了一个总结。 其实,我究竟改了什么使得java正常运行呢?我也不是很清楚,但是比较可能的有两方面,一就是编译环境还是有问题,因为之前有些可能没有重编译。二就是手机的文件系统在仿真上有很多的svn文件,被我删除以后就安装ok了。当然LB提示修改很有可能是直接的原因,不过今天昨天早上修改完了并没有效果?

六月二十日 又是一个骄阳似火的日子。
早晨醒来回想着晚上的一个个梦境有些担心,所谓失眠多梦健忘心悸疲劳不堪似乎都是早衰的症状,而所谓日有所思夜有所梦并不适用于我,那都是一帮天天无所思偶尔思一思的悠闲男女的无病呻吟,我的这些可怕的梦也许都身体疾痛的自然反应。而这也和我在那个小小的mailgroup上发出的感叹是一致的,现在才真正体会为什么“人到中年”会“来不及叹息”,看到“一地鸡毛”也只能悄悄地给出“一声叹息”,因为为赋新诗强说愁是年轻人的专利。在BRT上看到所谓快乐女生的一个片断,实在是无语,讲究才艺也不能这么就变成了丑女选拔赛呀,就算要给天下众多的平庸女孩子一些自信心也不用采取这种污染视听的极端手段!总之,我感觉gcd政府始终不肯面对一个基本的事实,那就是人作为社会劳动力的组成部分,劳动者的身体就是生产力的代表,因此男男女女的身体就是劳动力水平的体现,也就是说美女就是生产力,并且女人的相貌就代表了社会生产力发展水平!不是吗?为什么只有男人的体力与智力与生产力挂钩,女人的相貌不能与GDP挂钩?想想看香港选美皇后一朝嫁入豪门立刻获得身家几亿,世界上有什么比这样的投资有更大的回报率?欧洲小国拉脱维亚据说有欧洲妓院制成GDP有近半来自于漂流国外的美女的辛勤劳动,中国的色情产业有多大,中国的娱乐行业有多少从业人员?一个政党如果对于板上钉钉的事是讳莫如深却寻求所谓社会道德的遮羞布来避开话题只能形容为鸵鸟与赤裸的皇帝,否则就是别有用心或者有难言苦衷。同样的事情每天都在发生,只不过普通人司空见惯,比如面对普通小民百姓叫苦连天的高房价一个政府却装聋作哑的派出调查组四处奔波寻访房价太高的原因,难道他们不知道吗?难道房价太高不是因为土地国有导致土地所谓出让的高价带来的吗?难道不是一党垄断滋生的官员揽权在开发商的账单上留下了大笔的不可公开的成本吗?难道不是地方政府疯狂敛财为提升所谓GDP刻意炒作房地产拉高房价一边加官进爵谋取更大的权钱交换吗?为什么会有土地国有?那个国?谁拥有?占总人口百分之零点几的人群掌握百分之七八十的国民财富的支配权就是国有?这样的“公有制”和封建帝王的统治在那个层面有区别?朝代的名号不同?国家机器镇压的手段惨烈不同?防民之口的效率不同?

偶然在不经意之间看到了一个转贴《一万零一年》,纪念那场规模空前的“群体事件”,那种心境与体验犹如当年读鲁迅的小说与杂文,的确《为了忘却的纪念》就是人生的主题,正因为如此,quote, The saddest part is not that they don't care, because I can understand  the indifference, short-sightedness, and complete devotion to private life. It is that they simply hate people who care. end quote.

人的信仰与信念正如同女人身上的内衣,穿与不穿,爆露在外招摇过市还是藏在内里讳莫如深都会成为时尚,然则无可否认的事实却使它们更像是蛋白质与维生素对于食草动物与食肉动物的关系,或者直接或者间接你需要获取,或者从你的同类通过肉体的消化与咀嚼,或者从比你等级更低的阶层的掠夺与蚕食获取而转为占有。

在遥远的古罗马帝国征服了的国家成为一个个的行政省之后被征服者的信仰与宗教反而成为征服者的所有,gcd推翻了曾经推翻满清的gmd又重新建起了类似的信条。

能不能把歌词改一下:I am looking for somebody to shed some light, not just to share the night.

以一敌二能获得胜利是因为爆兵的结果,同时也是初期占据更多村庄的结果,当然这是我修改地图的结果,并不是battle for wesnoth不平衡的原因,他的平衡性已经常常令我怀疑我的IQ了。

六月二十一日 台风来了。
昨天似乎要画一个句号,可是发现我的pch的设置还是不太正确,如果不安装platformSDK2003要怎么编译正确,当然仅仅把sdk的include拷贝过来可以,但这个市我要的答案吗?

六月二十二日 台风来了。
断断续续读了快一个月那个至尊宝典也才读到两百多页,windows的安全机制也许是最复杂的一个软件系统之一吧,因为首先windows应当是世界上最复杂的一个软件系统,那么这个最复杂的软件系统的安全机制自然也是最复杂的安全机制了。不过目前大众流行的所谓安全还大都是一些所谓的网络安全,无非是那些由于老程序员使用不安全字串处理函数导致的堆栈溢出问题引发的,和这本<programming windows security>还是有很大区别。

六月二十三日 台风去了。
该怎样看待越南战争呢?胡志明首先是一个民族主义者在二战期间他领导的反抗日本侵略军的抵抗力量曾得到过美国的大力支持,就是所谓的战略情报部OSS,在这种情况下他对于美国是十分崇拜,因为他在二战结束后宣布国家独立的演讲稿的写作中曾向他的美国朋友索要美国独立宣言的文本,后来在他的宣布独立的讲稿中采用了美国独立宣言的句子,比如人人生而平等,人之自由权乃天赐给每个人与生俱来的权力等等。在1945年后胡志明极度渴望自己领导的独立运动能够得到美国的支持与承认,在那一年这位越南人民心目中的共产主义领袖给当时的美国总统杜鲁门写了八封信,然而美国却没有给他任何的回音,在这种极度的失望中胡志明只好认为这种沉默就是反对因为当时美国开始支持法国殖民者重返越南,而在49年取得胜利的中国共产党和前苏联非常迅速地向这位留着山羊胡子的所谓越南共产党领导人伸出了援手。美国人丧失了建立一个民主自由的越南的机会。

我一直对于温家宝的能力表示怀疑,因为我的理论是古代大臣里面没什么能力的人才去治水,因为这是一个苦差使有没有什么油水捞,干好了是应该的,干不好死了人就要被抓差垫背。在不足一个星期内匆匆忙忙地宣布多达四万亿的投资额是一个什么概念呢?以美国的富裕也才拿出来折合人民币五万多亿的投资计划,如果靠这种财政投资能够消除经济危机资本主义早就可以消灭经济危机了,他始终不理解经济危机是要用来调整不合理的生产力要素的分配的,而中国的问题不是投资不足而是投资过剩,真好比一个人虚火上升身体虚热,你却给他吃大补的猛药,也许第一个晚上可以让他出一身汗感觉精神亢奋,时间一长身体更加的燥热不可收拾。中国的中央地方政府是否是钱太多了可以大规模投资?我一直表示怀疑,欧洲日本都有着多年和危机作斗争的经验明白这个危机不是一年两年就能过去的,很谨慎的为今后几年积攒一些资源,而共产党政府很轻率的把自己的王牌打出去了,不知道明后年还有什么招式,这不财政部连续三个月负增长,于是开征香烟税对于普通民众的反弹较小,给地方的封疆大吏下通知要求上缴小金库的钱而既往不咎都说明了财政上的捉襟见肘,等着瞧吧。

最后一次说再见

六月二十四日 台风去了。
当我使用cpp文件来写代码的时候编译总是抱出一个链接的错误就是unresolvedexternalsymbol 都是关于virtual ....getmessagemap ...之类的,这个原本是一个mfc的message_map的宏,我毫无头绪怎样解决,bing了一下,又google了一下,大概明白了这个错误的原因是因为这个是定义在afxwin.h的宏,于是必须包含它。 打开这个头文件搜索getmessagemap就一目了然了,正如很多人所描述的是一个微软定义的补丁长的表,这个宏描述了时间和处理函数的对应关系,对吧?

Vanity, thy name is not only women! 我以为一个人能够真正的放弃所谓的名利的向往是几乎不可能的,相对于女人的虚荣心来说,我对于名的追求也从未停止过,只不过前者是动物求生存以便吸引足够多的交配对象来完成生存价值的手段,后者更接近于古代帝王将相征杀伐戮的野心,当然这么说是好听的,难听的就是有贼心却无贼胆,不过对于所有的人在一片bravo的呐喊下都回热血沸腾的,如果能听见的话。

联想的园地里无处不有一些口号,经常忍不住地引发联想,比如联想手机被自己的子公司收购该了个名字叫做毅想,让人对于这个脱离上市的举动有些遐想,这个毅想究竟是异想天开的异想还是什么百日做梦的臆想不得而知,总之我觉得起这个名字的人实在是有些不为人知的想法。电梯里面贴着招贴画号召程序员要不折不扣地执行上级的任务,要有所为的三心,就是什么事业心(是野心吗?),上进心(对工资奖金当然要用心了),责任心(有什么任务自然有什么责备等着,不干活的人永远都没有人挑毛病),想法是挺好的,与其让人有些难以接受,不过我认为也许口号的制定者也早知道提出所谓的三心,不过是给众人散散心,因为三心二意的人也有三心,更糟糕的是那些勤于思考的人往往很多心,远远超过了三心了。

美国人在越南之所以失败就在于美国人太希望组织共产主义的渗透,美国人太在意自己对于整个自由世界的承诺了,因为一旦美国从越南撤出整个自由世界就会对美国失去信心,就会出现麦克阿瑟所预言的多米诺骨牌效应。

关于hintbox,我一开始享用特校的方式自己画,后来发现这个东西是在widget一级的于是想改变IWidget的接口。

美国的最大错误就在于相信越南人民会自主地投入共产主义的怀抱,这种认识完全来自于对于宗教狂热洗礼下的人民的无知愚昧的错误估计,在八十年代后美国人终于发现对付共产主义的最佳武器就是不战而屈人之兵的和平竞争下的民主制度,人民在初期的蒙蔽之后会在对比中发现所谓的共产主义不过是封建集权统治的代名词,而真正符合人性也就是符合生产力发展需要的西方民主制度会不战而胜。

想知道蒙特利尔的天气吗?看这里。  

我热切的期望有更多的朋友参加讨论,如果你们有什么建议和想法,不妨留话给我      

mymail.gif (26956 bytes)给坛主写信 我现在用的是宽带,感觉不出速度慢,如果各位浏览时候觉得慢的话,给我说一声,我就把图片改小。