更快的BT客户端
BT的出现,使得资源的传播非常迅速,有时BT的流量甚至会阻塞主干网络。但如果在一个网络环境很好的环境里,会希望它的速度更快,最好是跑满整个带宽。
在100M接口到桌面的校园网内,用现有的BT客户端通常很难达到这样的目标。分析其可能的原因和相应的解决办法:
- 有可能是校园内部的种子太少,没有足够多的源可供下载,而在校园网与外部网络之间存在某个瓶颈。这是如果能够在本地局域网内起如果个下载同一个资源的BT客户端,理论上是可以起到加速的作用的。
- 即使校园网内有足够多的种子,受到BT客户端软件并发能力的限制,网络处理能力也有限,需要改进软件的并发模型,使之更加有效。还有一种可能的瓶颈是本地IO。
- BT一般时候传播大文件,是不可能将整个文件进行缓存的,而是带有部分缓存的随机读写,IO效率比较低。这时候可以考虑将整个资源文件进行窗口处理,即某个时间段只处理整个文件的一小部分,并全部存储在内存中。
将传统的多线程下载工具(比如FlashGet)与BT工具(BitComet)相对比:
- 前者是多对一的,即用多个线程从同一个点下载资源,而BT是一对多,即一个点从多个源进行下载;
- 前者对文件的分块少,主要进行顺序写操作,IO更有效,而BT的分块很小,更加零碎;
- 源的带宽一般比较大,所用线程数不多,调度开销小,而BT的源可能是带宽很小的用户,需要同时从很多地方下载;
我们可以把传统的多线程下载方式的有点引入到BT工具中来,做一个更加疯狂的BT客户端,大概的实现方式如下:
- 在本地虚拟多个BT客户端,分别从同一个源进行并发下载,类似于FlashGet,这样在种子数比较少的情况下也能够比较快的下载;
- 虚拟的BT客户端共用一个IO后端,即用一个线程进行专门的数据读写;
- 将文件进行分块处理,比如10M一个块,完全存储在内存中,直到处理完毕。某一段时间只为其他客户端集中提供以两个数据块的下载。这样可以极大的减少读写磁盘的次数,降低IO负荷。
- 采用Erlang来实现,它的微线程模型可以尽量降低调度的开销。
- 为了降低开发工作量,可以只做文本界面;
感觉是很有意思的一个东西,开发时间估计也不会很长,可惜现在实在是分身无术啊,哪位有兴趣的话可以做一做。不过采用Erlang来实现的话,一个最大不爽就是它的运行环境太大,只有最少运行支持的环境也有3M。期待Joe Armstrong把Stand alone Erlang尽快完善,可以用它把用Erlang实现的应用程序做成尽量小本地可执行程序。或者用Stackless Python实现也是一种不错的选择,毕竟已经有Python实现的开源的BT客户端,可以作为参考,更加期待PyPy,将它转化为本地可执行程序,就更爽了。
davies 发表于 2007 年 04 月 21 日 | 1 条留言
关于构建文档翻译平台的想法
开源社区现在有大量非常有用的文档,虽然对部分英语较好的人不存在阅读障碍,也鼓励大家尽量提高自身的英语能力,但是有一份翻译得不错的中文文档,会更加有用,毕竟使用自己最熟悉的语言是最轻松的。同时也能造福广大英语不好的人,即使翻译文档不能完全准确表达原文的意思,能让人快速了解个大概也是非常非常有用的,通常费了很多时间阅读英文资料后也只能留下一个大概的印象。总的来说,如果能够有一个方便地支持协作翻译的平台,让更多的人更容易地参与翻译和改进,将是非常好的一件事。
现在有不少翻译社区,比如译言或者其它的一些翻译型blog,他们适合翻译一些简短的新闻类文章,不便于多人共同维护一份技术文档的翻译。也有基于Wiki的协作翻译形式,但是wiki的使用有一些门槛,在格式上也很难跟原文保持一致,针对原文档的更新也不容易。基于已有的这些并不太理想的方案,针对技术文档的特点,构建一个更适合文档翻译的平台。
先来看看文档翻译的特点:
- 技术文档相对新闻和blog来说,有效性时间相对要长,一篇翻译得好的文档可以让很多人受益;
- 技术文档是有版本概念的,会随着软件或者系统的更新而更新;
- 内容比较多,一个人单独完成翻译比较困难;
- 语句比较客观、直白和严谨,容易得到一个大多数人都能接受的翻译结果,多人协调翻页导致;
- 有不少相对稳定的专业词汇和概念;
- 文档有一定的格式,通常为HTML页面,内部会嵌入代码等。
根据这些特点,希望文档翻译平台能达到下面这些目标:
- 个人的翻译的过程是方便和快捷的,能够中英文对照,批量替换等;
- 方便地进行多人协同翻译,共同完成大量文档的翻译,个人即使只翻译一句话或者一个段落也是可参与的;
- 方便地进行相互校对和修订,提高翻译质量;
- 保持跟原文档一致的格式;
- 能够自动跟踪原文档的更新,并自动合并;
拟采用的方案:
- 将文档的翻译细化到句子甚至短语的翻译,建立文档中句子甚至短语跟翻译结果的一一对应关系,用它们替换原文档得到翻译后的文档。这样当原文更新后,翻译文档也会自动更新,新出现的语句会明显地暴露出来,便于增量翻译。同时可以保持与原文档同样的格式。
- 可选择以机器翻译作为初始状态进行改进,提高翻译质量,同时改进后的翻译作为用来进行机器学习。对一批文档采用项目的形式进行管理,同一个项目共享一个词库,用于进行批量替换或机器翻译时的特化词典。机器翻译最大的问题在于对专业词汇的翻译,解决了这部分后通常能得到一个基本能看明白的文档。
- 一个句子或者短语可以有多个翻译结果,用户可以选择最合适的翻译,投票决定最优翻译,以提高翻译质量。
- 交互界面上采用Google翻译的效果,页面中显示翻译后的结果,鼠标停留时可以看到原文,点击后可以选择其他翻译或者采用原文或者提交新的翻译。
- 可以做一个浏览器扩展或者插件,用户可以根据网页的URL,自动跳转到该平台下的相应翻译页面;
以上是我对协作进行文档翻译的一些想法,欢迎大家多提意见,最后能得到一个比较好的方案并付诸实施。
davies 发表于 2007 年 04 月 6 日 | 5 条留言
我现在的状态
来自Solidot 的消息(原文),确切地表达了我当前所属地状态....
"Science Daily报道Calgary大学教授Piers Steel(这位博士可能也许大概是拖延研究领域的权威)在《心理学报告》(Psychological Bulletin)上发表了一篇论文,标题为The Nature of Procrastination: A Meta-Analytic and Theoretical Review of Quintessential Self-Regulatory Failure。这项研究总结出几条让人吃惊的结论:大多数人的新年许愿注定是失败的,大多数自助指南是完全错误的,它们认为完美主义是做事拖延的根源(为了把事情做的更完美,在时间上就...),拖延(Procrastination)可以用一个简单的数学方程式来解释。"
这项研究整整花了十年时间,但是没有迹象显示在研究开始之前它经过了多数次拖延。 文章指出:
" 从本质上而言,拖延者对自己缺乏信心,对自己事实上能完成的任务的期待并不高。完美主义者并不是不会犯错,完美主义者也会拖延,但是他们对拖延的过程表现的十分焦虑。"
davies 发表于 2007 年 01 月 15 日 | 0 条留言
当心你的信用卡
经不住各种信用卡的推销攻势,学校里很多人办了信用卡,其中以招商银行的信用卡居多。不少人都信用卡是一知半解,包括我,以为免费办一张信用卡不但没什么损失还能摊不少小便宜,办了卡以后才发现如同上了贼船一般,想逃都不容易。
首先是信用卡的年费,招商银行的信用卡一年内没有刷满6次(不包括网上支付)的话,要收取100元的年费,而且是从申请卡的时间算起,而不是开卡时间。导致我采用了两三个月就莫名其妙扣了年费。更恐怖的事,即使你没有开卡,年费照收。后来找到很多人的投诉,大部分是在校学生,据理力争,终于把莫须有的年费给清除了,后来似乎对未开卡的学生卡不收取年费:招商银行免除学生未激活信用卡年费。
前阵子在蔚蓝书店买了一本书之后,信用卡就不见了,可能丢在宿舍的某个角落里,还好没有出现消费记录。卡丢了之后一般都会先挂失,可信用卡的挂失费可不低,招行是60元。于是准备在把这个月的消费清算完后注销之,反正现在又用得不多。今天打800客服电话准备注销,需要输入卡号,可我并没有把卡号记下来,现在丢了岂不是注销不了?
到网上搜了一下,看到了一篇文章:信用卡注销后依旧“还魂”,真是不看不知道,一看吓一跳,原来简单方便的信用卡背后隐藏着这么多危机。在国外,信用卡充当了现金的替代者的角色,只要是有效的信用卡就可消费,尤其是网上支付。掌握了16位信用卡卡号和3位验证码,就如同掌握了信用额度等值的现金,卡号相当重要,难怪公司一旦泄露的客户的信用卡号就是相当严重的事故。
国内的情况还稍微有些不一样,信用卡处于国际信用卡和本地借记卡之间的过渡地带,网上支付需要密码和信用卡中心的确认,不够方便,但相对安全一点。不过现在很多卡是双币种的,办的时候还为“与世界同步”暗喜,其实是暴露在了及其危险的环境下。只要卡在有效期内,一旦卡号和验证码被泄露了,很可能被冒刷,信用卡中心很可能会把责任推到你身上。
目前国内的信用卡环境还不完善,没有健全的责任体制,往往吃亏的是消费者,是用户,所以如果你没有用信用卡代替现金的需要和必要,尽量不要玩信用卡,很多情况下的刷卡消费和网上支付用储蓄卡同样可以完成,同时安全很多。信用卡所谓的提前消费其实是个幌子,没多少实用价值,通常用来还信用卡的钱在消费的当时就已经存在某个地方了,通常也没什么收益。
终于明白招商银行为什么花那么大力气来推销信用卡了,简直是在利用消费者的无知来抢钱,跟国内盛行的流氓软件一个德行。
davies 发表于 2007 年 01 月 5 日 | 4 条留言
论对世界的科学把握——对物质、意识和人的初步探讨
(这是《马克思主义哲学原理》课的期末论文,现在翻出来一看,还是有点意思的。不过篇幅过长,可以直接跳后半段相对有意思一点的看)
自从人类文明诞生以来,就一直在探索着从各方面把握世界,比如哲学的把握、科学的把握、艺术的把握、宗教的把握、常识的把握等。对世界的科学把握,是指人们以现有的科学知识和技能为基础,对世界的本质认识和理解。因而人类的社会实践和科学发展水平制约着对世界的科学把握的程度。随着科学的不断进步,人类对世界的科学把握也在不断深化。
人们对世界的哲学把握主要分为两个流派,唯物主义和唯心主义。世界的本原问题,是唯物主义和唯心主义的根本分歧,为物主义认为世界的本原是物质,而唯心主义则认为世界的本原是意识。从现有的科学积累来可看,唯物主义才是对世界的科学把握。但是由于历史上一直缺乏对唯物主义的充分论证,使得唯心主义一直作为唯物主义的对立面存在,伴随唯物主义一同发展,同时也给唯物主义的发展起到推进作用。
唯物主义的发展,也经历了一个由低级到高级的发展过程。古代的朴素唯物主义者首先提出了世界的物质本原问题,但他们却从具体的物质形态中去寻找事物和现象的共同本质,比如中国古代的五行说。随后,有了中国的元气说和希腊的留基伯、德谟克利特的原子论。这些朴素唯物主义的共同特征就是试图对客观世界穷根究底,以说明世界的物质性,这说明当时的人类对客观物质世界的认识尚处于初级阶段。由于近代自然科学产生和发展,出现了机械唯物主义,他认为原子是世界的本原,这对反对宗教和唯心主义起到过积极的作用,且克服了古代朴素唯物主义的自发的、猜测的性质,但是他却又陷入了形而上学,以机械的、静止的观点去认识世界,而且在社会历史领域还陷入了唯心主义。因而近代机械唯物主义又被称为形而上学唯物主义。现在时间的唯物主义,是唯物主义的第三种形态,它克服了以往就唯物主义的缺陷,建立了以科学实践观为核心,包括自然和社会历史领域在内的彻底的唯物主义,其典型代表就是马克思主义哲学中的辩证唯物主义和历史唯物主义。马克思主义哲学是建立在对自然界和人类社会历史的科学认识的基础上,是对世界的科学把握。她的成功,让人类对世界的科学把握迈上了一个新的台阶。
下面就以人类当前的科学成果为基础,应用马克思主义哲学中的思想和方法去把握世界。
马克思主义哲学认为,在人类实践的活动中,世界被二重化了,成为了客观世界和主观世界的统一体。所谓客观世界,是指物质的、可以感知的世界,是人的意识活动之外的一切物质运动的总合。所谓主观世界,是指人的意识、观念世界,世人的头脑反映和把握物质世界的精神活动以及心理活动的总和。人作为客观世界的观察着,又是主观世界的创造者,是联系着两个世界的纽带。通过人,客观世界在主观世界中得到反映,同样通过人,主观世界利用客观世界自身的规律去改造客观世界。
组成客观世界的是物质,而存在是物质的唯一特性,可见客观世界的唯一特性就是存在。尽管人类的自然科学已经发展到了非常高的水平,对物质的认识已经发展到了原子、夸克的层次,但是依然找不到一种合适的方式去描叙物质的本质,但是“存在”却恰如其分地揭示了物质的共性,没有比客观实在性更能表达物质的本质的了。
时间和空间是物质存在的方式,任何物质的存在都可以用一定的时间和空间坐标进行描叙,不可能脱离时间和空间而存在。大爆炸理论认为世界的时间和空间都有个起点,起源于大爆炸的起点。而在大爆炸之前,时间不存在,因而世界也不存在。在那个起点,世界只存在于一个点,被称为奇点。关于物质的存在方式,科学也取得了很大的进步。时间和空间是相互结合的统一体,他们密不可分,同时又受物质存在的影响。爱因斯坦的广义相对论揭示了时间和时间与物质的内在联系,认为物质的存在会引起时间和空间的弯曲,这进一步表明时间、空间和物质是不可分离的。另一方面,量子理论的成功则进一步揭示了物质的存在方式。物质的存在不是机械的、确定的存在,而带有一定的不确定性,人们对存在的观测又会影响到物质的存在。
运动是物质的根本属性,所有的物质都处于绝对的运动中,静止是相对的。现在科学认为能量是物质存在的一种表现形式,静止质量为零的物质,其能量也为零,因而是不存在的。宇宙大爆炸理论也表明整个宇宙也是处在不断的发展变化中,同生物一样,自有其创生、成长、壮大、衰老、死亡的过程。
马克思主义哲学中认为主观世界是由人的意识以及精神活动、心理活动组成的。笔者认为,将主观世界理解为单纯由意识组成的似乎更为合理一些。精神活动和心理活动,从本质上讲,可以归结为物质世界的范畴,因为活动是需要主体的,而这个主体只能是物质。这样,主观世界就仅是意识——特别是一些抽象的观念——的集合体。意识是客观世界在人脑中的反映,概念的形成都是以对物质世界的认识基础,都能在物质世界中能找到原型。现代人类社会的科学成就,包括哲学、自然科学和社会科学,也都是以客观的物质世界为蓝本创造出来的,并非主观臆造。同时,这也告诉我们一个事实,人类的创造能力是有一定的局限性的,受我们所能觉察到的物质世界的限制,任何超出物质世界的概念都是无法想象的,比如生活在三维空间中的人就无法想象出四维空间世界的情景。因而人类对世界的认识只能是逐步实现的,以认识——实践——再认识的方式进行,不可能一蹴而就、一步登天。
随着计算机、人工智能、脑科学等的发展,人类进一步地对意识和职能本身进行反思。意识究竟是什么?而智能又是怎么一回事?从存在的角度讲,主观世界并不存在,只是人脑中虚构出来的世界,要不然她就会成为物质世界的一部分了。既然不存在,又何以能与物质世界发生作用,指导人类去改造世界?我们来看一个简单的例子:假设在一个人的面前有食物A和B,在主观意愿的作用下,这个人会先取A或先取B,很显然,主观做出决定后要作用于物理的身体才可以完成相应的动作。那么,主观愿望如何作用于物理身体?人的意识行为的复杂性和对其认识的不足会阻碍这个问题的回答,那么简化一下上面问题的模型,假设人的身体是一个复杂的机械系统,这个系统能够通过若干控制开关严格的执行各种动作,那么对于上面的情况,最终可以简化为如下的情况:可以由一个物理开关决定这个机械系统是先取A还是先取B,主观只需要触动这个物理开关,身体的机械系统就可以完成取A或取B的动作。这样,主观世界和客观世界就通过这样一个物理开关联系了起来。但不论这个作用在开关上的驱动力有多小,也不论它性质如何,首先它必然是客观相互作用中的一种。可见,主观要影响客观世界的运行都必须施加一种客观的作用。既然意识并不存在,则必然不存在意识与物质之间的作用。为了得到物质能够“作用”物质这样的结论,我们可以假定,人脑中的意识是与物质的某种存在方式向对应的。在上面的例子中,当上面的开关合上时,表示人想要A,而当开关断开时,表示人想要B。也就是说,人脑中的意识并不是空中楼阁,而是有着某种物质基础的,是对物质的某种存在方式的诠释。这在计算机中,更是得到了进一步的证明。计算机中有的只是复杂的物理结构,0和1的概念并不存在,而是人赋予的。但是这种赋予并不时凭空的,因为计算机中的电信号可以用来表征0和1。可以大胆地认为,计算机中也有0和1的概念!这样,意识的神秘面纱似乎可以慢慢揭开,意识也就相当于我们通常所说的信息,是对物质的复杂的存在方式的一种诠释。
人是作为连接这两个世界的桥梁而存在,是客观世界和主观世界进行沟通的唯一途径。关于人在物质世界中的地位,我的上一篇论文《人真的特殊的吗?》已经做过初步的论述,结论是人在物质世界中并不特殊,这里不再重复。对主观世界而言,人是主观世界的创造者。在我们现在所谈论的理论中,总是将人放在特殊的地位,这也不是没有原因的。因为我们自己是这些理论的创造者,是客观世界的认识者,客观世界通过我们而在主观世界中有所体现。如果还有其他的生物也能够思维,能够形成一套理论,自然也会将他们自己放在一种特殊的位置。
既然人在物质世界中并没有特殊性,那人类社会在物质世界中的也没有特殊性这一点并不难理解。人是社会的主体,人的行为受物质世界中的客观规律的制约,那人类社会的行为也自然要受到物质世界中的客观规律的制约,只是这种行为具有更大的复杂性。现在,我们可以运用马克思主义哲学中的历史辩证法去理解和诠释人类社会的行为。达尔文的生物进化论很好的解释了自然界生物的发展变化,同样,进化论还可应用于以人为主体的人类社会,用来解释人类社会的发展变化。自然选择,优胜劣汰,在人类社会的发展历史中可以找到很多这样的例子,比如北美玛雅文化的灭亡,奴隶制社会的没落等。
人对世界的科学把握,是人类意识世界的一部分,是客观存在在人脑中的反映,但是这种反映是否能够完全表征客观世界,无从可知。但随着科学的进步,这种把握在逐步的接近客观世界,可以越来越真实的反映客观世界,但不能完全正确的反映。这种反映,是人的世界观中的一部分,没有正确和错误之分。他的存在,是为了让人们更好的生活。
二〇〇三年六月十五日
参考文献:
吴倬主编,《马克思主义哲学导论》当代中国出版社出版
福尔迈(德)著,舒远招译,《进化认识论》,武汉大学出版社出版
高清海著,《人就是“人”》,辽宁人民出版社出版,2002年
davies 发表于 2006 年 12 月 17 日 | 0 条留言
第 1 / 2 页 | 下一页