2009年7月19日星期日

日语学习笔记

这个暑假在 Symantec 找了一份实习工作,虽然开始时因为忘记去办 CPT,煎熬了一个星期,不过所幸最后一切都挺过来,顺利工作了。

毕竟是暑假,无论从工作负担和环境上,还是从精神压力上(主要还是后者)都比上学时要轻松。由于在放假前意外地被《ONE》和 Kevin 借给我的村上春树的《ねじまき鳥クロニクル》英译本《The Wind-Up Bird Chronicle》,引发了我对看日语原作剧本的兴趣。于是决定趁着暑假开始自学日语。虽不奢望能在 2、3 个月内就能享受想村上春树那样的大作,因为词汇量的积累纯粹是一个时间问题,但语音和语法等等都是可以在短时间内掌握的。学习一门新的外语其实也和学习一门编程语言一样有规律可循,但毕竟之前已经有了学习英语和德语的经验(这也是我认为那些“通晓四国、七国语言”的人其实也并不多么牛逼的原因,更何况同语族语言可参照的语素非常之多)。英语用了大概 10 年,达到可以出国留学的水平,日语只需要能阅读即可,不知道在我需要多久呢。

之前在维基百科上对语言相关的条目进行过一番搜索和阅读。汉语是目前世界上唯一仅存的仍然大量使用的表意文字,即以语言单元(汉字)本身作为表达含义的最小单元。其他所有语言都是表音文字,即语言单元(字母、假名等)仅仅作为表示读音的元素,本身一般不表达含义。汉语注音在古代使用直音、反切等方法,1913 年时北洋政府发明了注音符号,而现在大陆则使用拉丁字母的拼音。中西方在文字这个作为一个民族文化最基本根基上的差异,似乎也再一次印证了中西方人思维习惯上的不同。西方人更为直接,因为任何民族都是先有口头交流的语言再有文字,他们所做的只是把语言元素符号化并记录下来了。中国人更为注重意象,希望把整个自然界的每个事物符号化并记录下来。导致的结果显而易见,西方语言只需要等同于能够发音的元素的数量的语言符号就能组合出所有词汇,而汉语需要等同于世界存在的所有基本事物的数量的语言符号。但由于人类语言的本身的易变性,使得西方甚至同一语言的同一词语在不同时代可能表示不同的意思,而汉语文字的意思则十分固定。如维基百科上汉语条目所说,“汉字因为是非表音文字,而且一直是用文言文而不用方言来写文章,中国人的子孙到现在都可以明白两千年前孔子所写的文章。这是中国语言和文言文优胜的地方。”

而日语的文字由表音的假名和表意的汉字构成,不能不说是历史原因。日语中汉字的存在也并不能使日语成为汉语的同族语言。我目前所了解的差异有,日语是主宾谓结构,汉语是主谓宾结构;日语是黏着语,汉语没有黏着语特征;两种语言在词源上鲜有共通处。

这里是维舟关于文字的一片博文,推荐阅读:理解汉字,理解中国



学习一门语言,首先当然是学习语言单元(日语是假名)。日语和德语一样,同一个语言单元的读音在任何单词里都是固定的读音。虽然个别单元在不同上下文中会出现特殊读音,但相比起英语来说,规律抢了不知多少(一个很有名的例子是,在英语里,字母 o 竟然可以发 i 的音,women)。这很大程度上降低了语言入门的门槛。

日语假名的发音和汉语、英语、德语比实在是简单,简单到除元音和拨音外其它所有假名一律是两音节辅音+元音的结构。因此也很自然的能想到用一张表(五十音图)来记录读音,行表示九个辅音(相当于汉语的声母),列表示五个元音(相当于汉语的韵母),对应表格即为对应假名。可以说,假名的发音对于熟悉汉语和英语的人来说几乎没有任何新东西。那么困难就在于假名的写法了。

日语一共有 92 个不同假名,是拉丁字母 52 个的近两倍。其实在放假前,每天晚上在公车站等车的时候就把五十音图拿出来一行一行记。大概花了三个星期基本能熟记了(其实片假名还是常常忘掉)。同英语一样,一部分假名字文章中出现的频率远远高于另一些(比如耳熟能详的 の 字),使得各个假名的记忆难度也不尽相同。这部分应该只是单纯的记忆即可。

浊音、半浊音、长音、促音、拗音及假名的变音等等都是在基本假名基础上产生的一些变化。熟悉了假名后,这些知识点都很容易掌握。我大概花了两个星期学习这部分。之后就是暑假进入语法和词汇的部分了。



首先当然还是从“甲是乙”这种基本句型开始的。日语作为黏着语的特点马上显现出来了。引用维基百科的条目:“黏着语为综合语的一种,具有词形变化的一种语言类型。通过在名词、动词等的词尾粘贴不同的词尾来实现语法功能。”在日语中,并不直接说“甲乙是”(日语是主宾谓结构),而是“甲は乙是”。这里“は”就作为一个符号来指示“甲”是话题的主语。如果将“は”换成“も”,则表示“甲也是乙”。这不同于汉语或英语中增加“也”的表示方法。

2008年12月25日星期四

2008 年圣诞前夜

今天是 2008 年 12 月 24 日。晚上七点,给朋友和同事发完了祝福的邮件后,打算到市区逛一逛。没有什么特别的目的,只是想看看圣诞节的美国城市是什么样的,说不定还能看看圣诞节的教堂有何不同。2007 年依稀记得是待在家里的。外面下着雨,不大,但足够在 15 分钟内打湿整个身体。Santa Cruz 是美国少有的地中海气候,冬季下雨,夏季干旱。随便穿上一件小得可怜的雨衣,骑上 Carl 的那辆自行车出门了。我不能永远给自己找借口窝在屋子里。
还是走的 Miramar 的那个大斜坡,车还是没有刹车,路还是那么滑,那么陡。Mission St 虽说不是黑灯瞎火,但明显的能感觉到平时没有的宁静。开着的店铺应该都会早早的打烊吧。首先往 Vintage Faith Church 走。不出所料,教堂一片漆黑。接下来过马路,来到 516 Chestnut St,旧日的住所。一楼门口装饰得很有圣诞的气息,Apt B 的门开着,两个人在门口说着话。而 Apt D 则没有灯光。
转过路口,往 Downtown 前进。Downtown 附近有很多教堂。当我路过图书馆对面的那个 Orthodox 教堂时,发现里面有灯光,一个年老的牧师庄严的在念着经文,教徒都站立着听。没有进去,在门外看了一会儿就走了。在我看来,正教比基督教更加严肃,我不信奉任何宗教,进基督教堂都只是抱着好奇的心情,而在这个时候去打扰正教的仪式是很不尊敬的。
来到 Downtown 附近,很想找找 Carl 曾经给我介绍的那个茶店。那位老板似乎叫做 David 吧。记得很清楚是在一个十字路口的西北角,但是没有找到,一向比较自信的记忆力好像背叛了我。前两天玩了一个叫做《双重记忆》的 NDS 游戏,讲述人的记忆可以被机器操纵,篡改,复制。现在的感觉就像当时 Carl 带我来的那个记忆是被后来篡改过的。
经过 Pacific Avenue,我到 Laural & Chestnut 的那个墨西哥人开的杂货铺买辣椒。辣椒这东西在 Mission St 上的 Long's Drugs 和 Safeway 都买不到,算是风味品,大超市买不到,这里却有三种不同的品种。在 516 Chestnut St 住的时候,经常来这里买蔬菜,因为离 Mission St 太远。老板娘是一个墨西哥人,30 多岁吧,给人感觉挺精明的。结帐的时候前面好几个墨西哥人,都在跟老板娘用西班牙语说笑,让我感觉好像又从美国来到了墨西哥一般。这种身处异国他乡的感觉虽然已经很习惯了,不过仍然不好受,仍然觉得孤独,仍然要问自己,当年来美国的选择是否合适,来美国获得是不是比留在国内在同样时间内获得的东西更有价值。
接下来是最后一站,海边,Wharf。经过 West Cliff Dr 的时候想 ,到目前为止住过三个地方了,虽然相隔都不太远,但各有特色。West Cliff Dr 靠海,Chestnut St 靠 Downtown,Castillion Terrace 靠学校。今天的海潮很大,不考虑安全问题的话,应该很适合冲浪吧。我突然问自己,那些冲浪的人为什么经常来冲浪?因为冲浪很锻炼身体,还是仅仅因为他们喜欢冲浪?如果仅仅是因为喜欢,那他们不是很幼稚吗?我当然知道这个结论多么的荒谬,好几个我很尊敬的人也喜欢冲浪。虽然我们明确地被这样教育过,但我根深蒂固的认为,沉迷于自己的喜欢的事情是危险的,玩游戏如此,赌博吸毒如此,工作、学习、冲浪亦如此。而不喜欢的事往往是有益的,比如早睡早起,比如跑步,比如读论文。矛盾很明显,不是吗?其实,最重要的还是把握度。完全不做不行,做得太多也不行。不喜欢的事不用担心做得太多,却要经常提醒自己去做;喜欢的事不用担心不做,却要经常提醒自己适度。
Wharf 一如去年,主角仍然是海鸥和海狮。没有任何改变,即使今晚是圣诞前夜。理所当然,因为对于海鸥和海狮,耶稣没有任何意义,即使“他是造物主之子”。一个概念,超出了它的范畴,就没有了意义,就如大海,对于人类来说是广袤无际、力大无穷的象征,是人类歌颂的永恒主题,但将它放到太阳上去,也不过是点点水滴罢了。而人类对于美丽丑陋的理解,更可能和牛羊的理解完全相反。当然,这并不是在贬低人类概念的价值。只要人类一天是人类,那些人类推崇的概念就一天值得推崇和保留。宗教对于人类或许是必要的,只要他控型的人存在着,宗教对于这些人就是无可替代的。类似的,性是人类乃至绝大多数动物繁衍的途径,是自然的存在,是个体的需要。奇怪的是所有国家都在不同程度的打击公众领域的性。或许,有节制的、私有的性是人类区别其他生物的独特标志吧。
一路冲锋回到家。写下这篇短文的原因是,希望今后的我在人生失意的时候能看到,在现在一无所有的时候我的心情都能保持非常平静,今后一无所有的为什么又不行呢?是的,可能损失了几年、十几年的光阴,但多了几年、十几年的人生经验,扯平了。人生嘛,不就是来世上走一遭,经历属于自己的独特历程,然后回归自然吗?

2008年6月21日星期六

Mozart KV 313 Transposition

I transposed Mozart's Concerto for Flute and Orchestra (KV 313) from G major to F major so that it is easier for Oboe playing. Anyone interested can download the Oboe traverso here:



and here is the corresponding MIDI file. Use it as reference:



When print, you may want to print on both sides and leave the very first page blank (or write down your own title).

If you find any mistake or typo, please tell me here or via e-Mail. Thanks!

2008年6月15日星期日

美国和中国最大的不同

来美国也快一年了,就说说我在不同时期感受到中国和美国最大的不同吧。当然,题目有些误导之嫌,毕竟中国和美国都那么大,我也没有资格去全面地比较,就只说我作为一个来美国读博的本科毕业生,在成都、广州和Santa Cruz和感受。

刚来:1) 所有人都在说英文;2) 美国人很好客,很直接。
第一条不用解释,如果当初是郑和而不是哥伦布发现这里的话,可能现在有所不同。在公交车上所有人说的话,你能听懂一点点,但大概意思就不知道了。总的说来还是比在广州好,至少我的英语水平比我的粤语水平高。
第二条,感觉美国确实是一个多民族混居的国家,他们对外国人的友好比我想象的要多。说话直接也和传说中的一样,一般来说都没什么小心眼儿。中国的那一套拐弯抹角在这里最好不要用。

一个月后:1) 美国人的饮食习惯、结构和中国人不一样。2) 在美国,钞票很少用,信用卡居多。3) 感恩节购物狂潮。
第一条,美国人基本上不像中国人那样炒炸煎煮食物,更多的是生吃蔬菜,面包,肉片什么的。很多国内的菜这边见不着,比如冬瓜,白萝卜,鳝鱼这些。很多这边的菜国内也没见过,比如Artichoke,各式各样的蘑菇。
第二条,钱包里基本上不会放超过50美元的现金,相反,各种卡则一个都不能少。基本上所有的店铺都接受信用卡刷卡(现金也接受),方便,快捷。另一个好处是安全。即使信用卡被盗,银行也会保证你不会有任何损失。
第三条,感恩节那几天买了很多东西啊!刚来这儿本来也缺很多东西,加上打折又那么厉害。美国这儿网上购物很方便,也很便宜,没听说过像国内那种骗钱的网站。法律完善的结果吧。

两个月后:1) 和广州、成都相比,美国这儿的饭馆太少啦!2) 美国教育体系更完善,强度更高。3) 美国自然保护做的很好。
第一条,感慨了美国人的饮食习惯,就轮到自己受罪了。一般自己做饭,买现成食物太贵。本来能做的菜就不多,吃多了就腻了。想去下下馆子改善伙食,可没在国内那么容易。一是少,没汽车的话那距离足够让人打消念头了(去吃个饭还要坐公交车,还要坐车回来,唉……),二是口味也不合适。美国饭馆也不外乎就是沙拉,牛排什么的,墨西哥饭馆就不说了,吃过两次Taco,发誓今生再也不吃那玩意儿了,中国餐馆听说做得还没自己好吃,变化很大,算了。可能大城市会好些。
第二条,在美国,学习是很自由的,可以很努力,也可以很放松,完全看个人。做TA那段时间接触的本科生,感觉虽然刚开始也是什么也不懂,但学习能力很强,一个学期下来他们是真正自己学到了很多的。课程方面他们很强调自主独立性和实际动手能力。当然也有抄别人作业、考试作弊的学生,但这并不影响那些优秀的学生学习,毕竟那也只是少数,自己对自己负责就行了。
另外最大的感触是,这边的学习非常强调学生自己展示自己。我第一个学期的Advanced Operating Systems,基本上就是班里10个学生每个人读相同的4、50篇论文,然后自己争取在每堂课上用45分钟时间用自己的话来阐述自己对文章的理解。平均下来,每个人分到4次左右演讲。这对于我这个刚来美国连英语都成问题学生来说是极大的挑战。首先每个星期要读完3、4篇15到20页的英文论文就要花很多时间,加上还有别的课,压力就很大。如果轮到自己演讲,还要理解自己的那篇论文,做出PowerPoint,又是很多时间。其次,演讲时候的口语表达也是难点。中国学生学英语的最大问题也就是口语了,因此刚来美国时能听懂别人在说什么,但就是不知道怎么表达自己的意思。现在要说的还是专业性很强的东西,就更难了。另外这个课还要做Project,因此一学期下来最大的感受就是,学习太累了。后来发现并不是单单这个课很累,所有的课都累,只是慢慢地逐渐适应了这种学习方式,也就好了。本科生在这方面的要求虽然没那么高,但也是有的。
第三条,眼见为实。就说几个例子,Santa Cruz这儿有一条小河,清澈见底,野鸭、海鸥很多,相比一下成都的府南河,广州的珠江,唉……;Santa Cruz很有名的是她的Wharf,一条一公里长伸到海里的木桥(有兴趣可以Google Map),Wharf下面海里海狮(Sea Lion)成群。这要在中国,为它们祈祷吧;学校里红杉树很多,俨然就一个森林里的建筑群。能让人类活动和自然生态相处地如此和谐,在中国我看很难。

四个月后:美国的税收制度很完善,可能太过完善了。
在美国报过税的人都知道。

六个月后:美国人很尊重每个个人的观点意见,崇尚自由。
这是我很欣赏美国的地方。无论你的观点他们是否同意,无论他们时候和你争论,他们都会很尊重你自己的观点,对你说"Cool!"。美国崇尚自由的特点很明显的体现出来。你可以完全按你自己的方式说话,饮食,生活,只要不要严重影响别人。因此在美国社会里,你可以听到各种各样的声音,各种各样不同的观点,所有的观点无论对错,无论激进与否,都可以存在,这才是民主的体现。希望中国有一天也可以变成这样。

一年后:美国人办事效率也不总是很低的。
美国人办事效率低应该是很有名的了,比如去银行,DMV,一个人有时候可以办10分钟,结果最后只是取个钱,拍个照。最近一个月,我注意到三次修路的工程,效率各不相同。第一个是市的主干道(Bay St),总体用了一个星期,主要就四天施工时间,效率很不错。第二个是学校的主干道(Glenn Coolidge Dr),总体两个星期,主要一个星期施工,而且用了很多机械,卡车,长度和第一个差不多。第三个是一个小街区的干道(Tosca Ter),已经一个多星期了,刚刚才把道路挖开,完全没有进展的样子。每天都可以看到3个人,其中一个专门望风(比如拿个举着SLOW的牌子),另外两个站在路中间,好像什么都没干的样子。从施工人数来看,第一个和第二个相当,第三个要少得多,这说明并不是没有可用的人,而是优先级不同的原因。结论是,如果有必要,美国人的效率完全是可以快起来。往往可能觉得没那个必要,慢就慢些,美国人也习惯了慢慢来,所以效率就低了。

就说这么多,以后再慢慢添加。

2007年9月28日星期五

第一节课

今天刚上完在美国的第一节课,Programming Languages。主讲的 Prof. Flanagan 是一个很年轻的教授,语速很快,我觉得我最多听懂了六成的内容。课的内容并不是对某几个语言进行解释剖析,而是概观地对编程语言的历史,特点,要求等等进行介绍和讨论。一个很大的不同是,当每个同学介绍自己喜欢的语言时,很多人更倾向于Perl, Python, Ruby这些脚本语言,这些在国内基本上是十分生僻的。Prof. Flanagan则很喜欢Java。

我这学期的TA也要求会一点Perl, 所以还是要花功夫在这些原先不熟悉的脚本语言上。

研究生的生活比想象的要累啊。

2007年9月19日星期三

The first 4 days in USA

I'm using the computer in the Library of UCSC to write down this article. Since there is no Chinese Input Method, I can just only use English. Sorry.

I was a terrible journey flying to America. Due to some "Mechanic Problem", the flight from Chengdu to Beijing was delayed, for about 3 hours. Therefore, I did not catch the original flight from Beijing to San Francisco. After 5 hours terrible waiting, I finally got on an airplane flying to Los Angeles. 11 hours on plane, no deep sleep, I had been very tired. Entering the Custom and Border Protection was straight. 1 hour later, I flew from Los Angeles to San Francisco. When I got there, it was 10:00 pm, PST. Fortunately, Peggy Pollard, a member of ISI(International Student Inc.) came to the airport and pickup to Santa Cruz. It was very kind of her!

I was living with four Chinese exchange students temporarily. We got along with each other very friendly. They told me lots of things here, about housing, banking, campus, calling plan, yard-sale, etc.. Yesterday, I settled down in a house near the beach of Santa Cruz, which was a wonderful place to live, full furniture, $560 rental per month, plus month to month payment. I do not hope better.

Santa Cruz is a small town, with about 56000 population, mediterranean climate, friendly people. There is no crowd of people, and all town is quiet. Santa Cruz means "Holy Cross", which is famous for the beach and surfing here. Everybody should like it. By the way, bus transportation is powerful in Santa Cruz.

The campus is wonderful, too, since it is sitting on a hill and in a forest. More properly, I should say, UCSC is just a part of the Mt. Santa Cruz, because the natural environment here is well preserved. You can see deers eating grass, and squirrels are fighting for nuts. Inside of the forest, the temperature is very low, but the air is even more fresh. I can say, I like here.

There can be lots of things to tell, but I must stop here. I think my oral English is growing better and better everyday.

:)

2007年9月2日星期日

最近的情况

最近逐渐熟悉了Colemak键位,打字速度开始恢复了。确实,世上无难事,只怕有心人。

关于RecycleTorrent,我完成了应有的基本功能,已经把代码传到了SourceForge。SourceForge上RecycleTorrent项目的地址是http://sourceforge.net/projects/recycletorrent/。同时,编译后的程序可以在我的Windows Live SkyDrive上下载(运行需要安装最新的Visual C++ 2005 Redistributable Package)。对BitTorrent感兴趣的开发者可以试试。

另外,最近打算将RecycleTorrent扩展成P2P下载平台。具体细节我还在考虑。

2007年8月23日星期四

尝试Colemak布局



Colemak(http://colemak.com/)键盘布局是我在比较Dvorak键盘布局的效率时认识的。Colemak给我的第一印象是,它跟QWERTY很像,ZXCVBQW这些键的位置都没有变。在Colemak网站的FAQ(http://colemak.com/FAQ)上,发明者Shai Coleman列举的Colemak优于其他键盘布局地方有(括号内是我的解释):


  • Colemak的用户群正在增加。(有助于不断完善Colemak,开发相应软件。)

  • Colemak的设计初衷之一就是易学,很容易从QWERTY转换过来。(Colemak指改变了17个按键,而Dvorak改变了33个按键)

  • Colemak保持了Ctrl+Z/X/C/V四个快捷键的位置(请参见我的文章《解决Dvorak键盘布局快捷键的问题》)

  • Colemak对小指的负担不高。(Dvorak把L放在右上角。L键是一个常用键,因此对右手小指要求较高)

  • Colemak键盘布局的设计很稳定。(不会经常变化,要求用户重新熟悉)

  • Colemak可以在多种操作系统上使用。(Windows, Mac, Linux/Unix)

  • Colemak有相应的打字练习。(http://colemak.com/Learn


对于在Windows下使用中文输入法的用户来说,安装Colemak布局的最好方式是注册表重映射(Registry remapping)。注册表重映射是在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout键下建立一个名为Scancode Map的二进制键值,用于存放新键盘布局的键盘扫描码(Scan code)。启动系统时,Windows读取修改后扫描码,这样,整个键盘就被重映射了。如果想改回QWERTY布局,只需要删除键值,重启即可。

为什么是最好方式呢?因为一般输入法都有自己的键盘映射模块,会自己判断扫描码。注册表重映射是很低层的修改,新键位对输入法同样有效。

Colemak的注册表重映射实现在这里下载:http://colemak.com/pub/windows/Kmapper-1.0.zip。其他实现方式在这里下载:http:http://colemak.com/Download

用Colemak打了这两篇文章后,感觉最不舒服的是J键。虽然J在英文里是极罕见字母,在拼音里确是常用字母。但愿习惯后会好些。

解决Dvorak键盘布局快捷键的问题

虽然Dvorak键盘布局比QWERTY的排列更合理,但对于已经习惯QWERTY键盘的人来说,迁移的难度是很大的。对于惯用右手握鼠标的人来说,其中之一便是左手的那些热键,Ctrl+Z, Ctrl+X, Ctrl+C, Ctrl+V, 等等。因为现在的ZXCV都在键盘偏左的位置,所以不得不用右边的Ctrl键;另外,ZXCV等键相隔都很远,按起来很不舒服。

有没有办法修改Windows的全局热键呢?当然不行,我们没有Windows的代码。

能否使用重映射(Remapping)按键将ZXCV等键映射到原来的位置呢(这种方法很常见,很多日本同人格斗游戏的按键都可以通过软件修改到WASD来)?不行,因为这样就破坏了Dvorak键盘布局。

我们要找的是这样的工具,它能全局地拦截按键,并对指定的按键进行替换。替换的要求不只是单独的按键,同时要是按键序列。替换后的按键同样不只是单独的按键,同时要是可自定义的按键序列。

我尝试了很多软件,都无法满足以上的所有要求。昨天下午,无意间在VeryCD的一篇帖子里找到一个名叫Key Transformation(http://www.softboy.net/key/)的软件,试用后发现它满足所有要求。不过这是一个收费软件($44.95!)。要知道,别人一套虚拟机(Parallels Workstation)也才$49.99啊,怎么说,虚拟机的含金量也要高得多吧。放弃……

终于,在RandyRants找到了一篇文章介绍AutoHotKey(http://www.autohotkey.com/)。这是一个开源软件,免费。它能读取脚本文件,按宏的定义来替换按键。由于AutoHotKey支持的宏命令非常丰富,所以它完全能够胜任我们的要求。

比如,我们创建一个脚本文件test.ahk,输入

^j:: SendInput ^c

运行脚本后,按下Ctrl+J就相当于按下了Ctrl+C,而Dvorak的J键就在QWERTY的C键的位置。

当然,我们完全可以用AutoHotKey来模拟出一整套Dvorak键盘布局。事实上,在AutoHotKey的论坛上已经有人写出了脚本(http://www.autohotkey.com/forum/topic4473.html)。

另外,如果有兴趣的话,可以到这里(http://www.siteuri.ro/dvorak/)看看。这里有一个程序,你输入了一段文字后,它可以输出用各种不同键盘布局输入的效率比较。48小时之内允许测试5次。注意,最后一个键盘布局是Colemak,我正在熟悉它。关于Colemak键盘布局,我在下一篇文章中详细介绍。

不过,用新键盘来打出这么多字真是很累啊。万事开头难。

2007年8月20日星期一

RecycleTorrent 能够正常工作了!

经过近半年的努力,现在终于把一个有界面、有逻辑的基本BitTorrent客户端做出来了!主要还是用了Qt的框架,在Visual Studio 2005 SP1上编译。中间遇到很多问题,在解决问题的过程中也学到了不少,得到很多乐趣,这也是激励我在计算机这个行业中不断前进的动力了。

当然,目前连一个Alpha都还说不上,因为功能很不完全。不过既然已经走上正规,后面的工作主要就是体力活了:)

放上几张截图:


初始状态


尝试连接中


和BitComet对传数据


断开连接后

------------------------------------------------------------

当我把程序复制到一个干净的Windows XP SP2虚拟机里时,居然报错,截图如下:



Dependency Walker出错如下:



Side-by-Side?没怎么听说过啊?其实就是%systemroot%下面那个WinSxS文件夹里面装的文件。那些动态链接库按版本存放在WinSxS里。生成程序的时候,VS会创建.manifest文件,该文件用于保存目标文件的外部依赖的库,同时记录库的版本。当库文件未找到或者版本不符时都会提示程序无法运行。因为虚拟机里当然没有安装VS2005 SP1对应的CRT库,所以报错。下载Mircosoft网站上的Visual C++ Redistributable并不能解决问题,因为Microsoft目前还没有更新到SP1版本。当我复制[Visual Studio 2005 安装目录]\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe到虚拟机并安装后,就没有问题了。Microsoft的东西还真是挺麻烦的。(主要参考了这篇文章:Side-by-side screwup