Shell's Home

剪发公告

Nov 6, 2006 - 1 minute read - Comments

最近碰到朋友——老问我,你最近如何。我说还行,就是头发剪了。然后就被要求照片。好,现在特此公告。照片如下。 别说我没说过。

一只小狗

Nov 6, 2006 - 1 minute read - Comments

今天老妈跑到我租的房子里面的时候,在门口看到一个小狗。(关于我租房子的事情后面再说,我很懒,就这样)脖子上有个牌子,看来是有主人的狗。看上去很乖巧很可怜的一个小狗,趴在我家门口附近。不知道哪里来的。老妈看看可爱,又看看有主人的,放心的喂了块肉。结果,麻烦大了。 到中午我去吃饭,把早饭时候的锅子带回去。结果出门发现,它还在那里。看到我出来,一下子站起来。有没有搞错,别说我可不是老妈。就算是,也不能在空锅子里面变出肉来阿。赶紧给老妈打了个电话,老妈还说我大惊小怪。好好好,见怪不怪。我出去看到它注意力正被邻居引开了,干脆一溜烟跑下去。 晚上去吃饭,发现还在——有没有搞错阿——就算黑猫叔叔也要休息的好吧。没办法,和老妈说了,你喂的肉,你搞定。老妈想想也没办法,吃了晚饭到我哪里准备抱下去。结果路上看到一个邻居的狗,也跟我们上来了。 两个狗见面了非常有意思,互相闻来闻去。然后邻居的狗居然想骑那个可怜的狗了。它(或者应该叫她?)到处跑。我赶快跑到屋子里面,省得看狗打架。老妈赶快把狗抱到下面去,结果发现110来了。看来是刚刚他们打架的声音太大,吓到谁了。邻居的狗应该没事,不过这只可怜的小狗就麻烦了。虽然有狗牌,但是不能用来查找主人。(狠狠鄙视下中国的动物管理制度,收了钱不管理的么)派出所的人看看也很可怜,问我妈说要不要养。养的话省下1000来挂狗牌,不养的话回去他们也是处理了。(其实就是人道毁灭)我妈听了也很想,问题是这狗可带不回北京阿——即使带回去也没法养。原来的狗就是一个证明。所以很无奈的看着给接走了。

上海电信ADSL宽带测试报告

Oct 25, 2006 - 1 minute read - Comments

总算把该死的有线通换成ADSL了——现在我们看看电信的宽带质量。 我做了几项测试,因为时间关系(我要吃饭了——),没有做的很足,回头补个详细的。 1.tcp连接丢包率 根据我的测试,有一次出现了4%的丢包率,其余时间是0。 2.网络时延测试 www.google.com的测试结果是 平均/抖动=295.3⁄591.7 www.sina.com.cn的测试接过是 平均/抖动=435.1⁄714.3 3.TTL状态 平均TTL大约在12-18左右,略略好于有线通1-2个路由器。 4.动态丢包测试 P2P/HTTP混合实际使用下1分钟8863个包,丢包2.7%。 5.网络压力测试 未进行。 从以上参数中可以看出,电信的质量略略好于有线通的。但是网络时延大,带有数据丢包。这个要去检查是否是信号线上的问题。 下午仔细检测了ADSL的详细状况,然后得出了一个更详细的表,附录如下: 1.tcp连接丢包率&网络时延测试 #hping -p 80 www.sina.com.cn #hping -p 80 www.google.com 2.TTL状态 NTOP测定,平均TTL大约在12-18左右,略略好于有线通1-2个路由器。 3.动态丢包测试 wireshark测定。 1.无网络压力状态下测试 双机器自然负荷,仅仅开启MSN等IM软件。 --- www.google.com hping statistic --- 96 packets transmitted, 95 packets received, 2% packet loss round-trip min/avg/max = 36.1/39.3/57.6 ms 平均/抖动=39.3⁄21.5 --- www.sina.com.cn hping statistic --- 96 packets transmitted, 96 packets received, 0% packet loss round-trip min/avg/max = 10.6/13.1/16.7

通过LPIC1

Oct 21, 2006 - 1 minute read - Comments

总算正式通过LPIC1了,搞了半年这个东西,真的差点让我崩溃。通过可以有两种方法,背考古题,或者拥有深厚的功底。 里面最让我觉得不爽的就是很多莫名其妙的参数还需要记忆。例如tracroute -n的n,是阻止R-DNS的意思。这个如果是RHCE,一个man就知道了——可是这里,就需要人自行记忆。除非相当长时间的使用,让你对这些参数了如指掌,否则——考古题。 不过里面对于功底的考察蛮细致的,有的题目会问你一些正常不会细究的东西。我为了通过考试,自行研究了整个Linux引导的详细过程。从开机到initrd,然后从服务到启动X,到自动执行脚本。非常详细的了解了整个Linux的基础,并且可以自行定制一个Live系统。这里面需要非常详细的研究,一般的大路货考试好像还没有这个必要—— 不过我要说的是——这些东西——纯粹是自己吓自己。事实上,LPI-101我考了550分,LPI-102我考了640。不是啥高分,不过远远超过通过分数。原因是对于考试评价过高——还特意拖了很久——等很多事情稳定了,而且功底扎实了才去。没想到这么简单,扫兴。 总体来说——考试通过的感觉还不错,不过没有什么好惊讶的。意料中的事情——除了多出来的1300块钞票——我的钱阿——

LPI的表述问题

Oct 17, 2006 - 4 minute read - Comments

+————————————————————————–+ | {width=“181” height=“80”} | | 在您准备接受LPI认证考试前,必须在 LPI | | 官方网站上进行注册登记,注册后系统会发送一个LPI | | | | ID到您的邮箱中,同时登陆会员区也可查看 LPI | | ID。 | | | | 如果您在注册中遇到困难,请致电: 010-62670579,或发邮件到 | | candy@lpi-china.org 或 bai@lpi-china.org, | | 我们有考试官员为您服务,所有注册都是免费的。 | +————————————————————————–+ | {width=“183” height=“80”} | | 拿到您的LPI | | ID后,您可持本人身份证到LPI中国办公室、LPI授权培训中心及Prometric考试中心报名,同时一次性交纳考试费¥1300元,然后您会得到一个准考证,持准考证及身份证到指定的考场去参加考试。 | | | | | | 注:考生在报名时,请选择对应的考试级别和中、英文试题:LPIC-1 | | | | 和 LPIC-2。 | | | | ———————————————————————- | | – | | LPIC-1 |

Windows和Linux之争

Oct 6, 2006 - 1 minute read - Comments

在网络上大家经常能看到争论Linux和Windows哪个更实用的帖子。两者无非抱持两种论点,Linux胜在价格和灵活性,Windows胜在简便和可用。一般来说都是说,不论怎么说,Linux可以如何如何而Windows不行。或者是,Windows可以什么什么而Linux不行。 总体来说,Windows擅长于桌面应用而Linux擅长于服务系统。Windows最大的资本在于品牌和延伸。Windows的品牌和可乐的不同在于,可乐的品牌仅仅是牌子,是虚拟价值。一旦可乐公司全部烧毁,那么能否靠可乐的牌子重新站起还是一个问题。但是Windows的牌子还附带了用户对于UI操作方式的粘滞。一旦M$烧了,别人也是很难抢这个蛋糕的。Linux长处在于免费,就单机成本来说,Linux远远要低于Windows。但是这是不完全的运营模式。一个不赚钱的项目?如何吸引别人? 我不考虑Windows和Linux哪个更好,而是考虑另外两个问题。他们是否有存在的必要,以及他们谁更适合我。 大家想必知道,POSIX标准下还有Linux,BSD,Solaris的分别。如果今天不是WL之争,是否会出现UL之争呢?我不知道,历史无法假设。不过我相信,多个公司多种模式的混合竞争,会造成好的效应。很多Windows项目,都潜在的为Linux项目提供了资金(至少M$养活了很多程序员)。而很多Linux项目,又为Windows项目提供了技术和支持。最重要的是,没有Linux的追赶,windows就会无限制的膨胀,垄断,守旧,出现问题。而没有挑战Windows的需要,Linux也不会不断进步。 很多人往往把Windows和Linux等同到开源软件和商业软件。其实这是不严格的。软件往往分为商业软件,试用软件,共享软件和免费软件。商业软件是指代码封闭,作为公司的一个资产。可以转让,可以有条件开放。软件收取使用费用,并且出品公司对于功能提供保证。这样的一类软件。试用软件是商业软件的特殊版本,指限制或者取消了部分或全部功能,准许用户合法免费有限使用的一种特例。代码可以封闭也可以开放(但即使开放也往往是部分代码,甚至是理论代码),通常是全部软件的一个部分,或者是修改版。往往可以通过缴费来变成商业软件。共享软件指软件作者保留软件的所有权,但是免费的发行软件,不收取费用或者仅仅收取手续费。源码可以封闭也可以开放。免费软件指作者按照源码形式发布软件,并且放弃源码所有权力。一般有有条件发布和无条件发布。GPL就是一种发布条件,虽然作者不继续拥有代码所有权力,但是这些代码不得进入商业领域。而无条件的免费软件,所有者放弃所有权力,任何人可以合法的运用其中的代码。 由此来看的话,大致是商业软件和试用软件一个阵营,共享软件和免费软件一个阵营。然后,Windows上有大量的共享软件,例如Winamp,这已经是Windows得以生存的一个基础了。Linux上面也有很多的商业软件,例如MAYA。往往是属于免费阵营的共享软件稳固了Windows的存在基础,给Windows系统提供了大量的功能和定制。而属于商业阵营的MAYA等为开发4Linux的软件,而为Linux提供了大量的资金。 至于哪个更适合我(注意,这里的我,可不是贝壳本人),则要看系统的功能,成本,特性而定了。首先是成本问题,M$曾经提出所谓总体拥有成本。即,Windows通过一次购买就可以低成本的运行,而Linux一般都是要为机器配备高水准的管理员。所以管理员水平的上涨引发的费用应当被计入成本中。而且Windows系统对于操作者是基本不用培训的,而Linux需要培训操作者,因此也会产生成本。 问题在于,Windows一次购买1000台机器的时候,大约40W是的纯软件成本。如果原来是需要配置3个网管,现在要配置5个高水准的。那么原来大约需要12W一年,现在需要25W一年。如果3年内需要购买升级产品,则会导致Windows的成本反而高。问题在于,Windows也是会购买升级的,所以软件的成本也会平摊在每年上。当运行的机器多了,就会导致网管的工资上升不算啥的状况。而且注意,其中还不包括因为要在Windows上工作而需要购买的其他软件,例如Office。如此计算下来,单纯从配置的平均拥有成本讲,Windows不占有优势。 不过在雇员培训上,Windows就非常有优势了。现在会Office的雇员满天飞,不会才奇怪。因此可以说是无成本的。然后不会的人找起来反而困难,加上培训,每人成本就要高出100-200。而且非Windows环境和Windows环境交互上比较麻烦,所以这个成本还要更高。从这点来说,一般企业都不适合用Linux。什么企业适合呢?1000台以上机器,雇员学历偏高,在和他人交互上需要他人配合的企业。其实去了企业就可以明白说是政府了。 特性上说,Linux奉行的是专业分工合作的模式。由一个软件完成一个非常专的部分,例如排序,或者下载。然后通过交互通道来协调各个软件,达到一个复杂软件的构成。例如一个邮件软件,可以在里面加入HTML,加入加密,加入VIM编辑。定制性非常强,对于和某些常见任务接近但是细节上有区别,又强调细节必须实现的特殊任务。往往可以非常简单快速的完成。例如同样一个从Internel上面抓专利信息形成数据库的工作,Windows下要专门写程序,而Linux下面可以通过连接lynx|sed>来完成。 然而这对于使用者水平要求非常高,如果不熟悉系统,根本无法做到。对于学校,专家来说,使用Linux是非常方便的。而对于正常用户来说,Linux可就是鸡肋了。 windows的特性是大而全,思考是基于用户傻瓜的模式。固然没人愿意说自己是傻瓜,可是做傻瓜考量的软件总不做天才考量的软件好用。简单来说,windows不追求低成本,不追求好用,只追求用户最简单可以用。可见,随着电脑普及,windows这种思路是无法持续的,或者至少是要萎缩的。 最后一个是功能,Linux的功能和windows总体评价来看差不多。不过Linux的软件更多是专业用的,例如免费的符号表达求解。而windows更多是娱乐的,例如游戏。因此要实现有限功能的人可以自由选择,例如办公环境。需要专业的人最好用Linux,需要娱乐的人最好用windows。 综上来说,对于政府,学校,专家,需要专业软件的人,建议选择Linux。而对于中小企业,需要娱乐的个人,最好选择Windows。

租房和买房

Oct 5, 2006 - 1 minute read - Comments

租房和买房的选择中其实有两个问题。报酬率,还有投资选择。 首先看报酬率问题,我们看房价/租房比值。 假定一个房子没有装修,这个房子每个月租金理论应当是多少?答案是房价在当前长期存款中的一个月平均利息(注意不是复利,房租可不会计算复利),简单来说是总房价X乘r,其中r是长期存款的单月收入率。因为买房,在没有价格波动的情况下,和长期存款一样。都是一个投资,指望获得利润。如果理论租金高,那么会更多人买房子去租,导致房价上涨。而且出租间竞争导致房租下跌。由此平衡到利率。我们假定一般这两个投资期限都是五年,并且都没有风险(这两个投资对于货币贬值这个风险的反应是一样的)。注意这里的两个前提,理性投资,价格不波动,房子不装修。 投资者有一个等式,他对某个资产的每个月所得减去每个月支出,应当等于这个资产价值的当月获利。 那么我们再考虑房子装修的情况。一个房子是固定资产,可是装修就是更短期的损耗品。如果装修的可以使用期限是N个月,而一次装修费用是裸房总价的k倍(当然,k可以小于1)。那么装修在每期的费用就是总房价X乘k/N。然后我们综合上面,得到了房价/租房比值。每月所得(房租x),每月支出(Xk/N),每月利息(Xr),x-Xk/N=Xr。X/x应当是1/(r+k/N)。还是注意这里的前提,理性投资,价格不波动。 我们先计算下,当前中国升息后5年期以上的月利率是0.345%(银行注明是月利率0.3%,我现在还不知道怎么计算出来的)。一次装修普遍是120个月为周期,大约投入资金为房价的1成(伪推定,按照房子地段和装修水平,此处变化非常大)。这样我们计算出233倍。如果是两成的装修,就是195倍。但是基本都在200-290倍间。装修越好,比值越小。房价/租房比值是指明你租房多少时间可以买一个房子的数值。当你装修很好的时候,很短的时间就可以重新买一个房子了。国际上一般这个值都在100-200间,可能是由于装修比较好,而且当前美元利率也比人民币高出一倍。当前上海的此比值在320-370间浮动,和我们计算的并不符合,原因就是在于远期预计。 我们现在保持理性投资的假定不变,那么当我们预计房价会以一定比值变化的时候。我们会改变买房和租房的行为,从而导致房价/租房比值的变化。那么,我们预计投资者的收入会在租房房价外加上房子上涨在每个月的平均所得XR(假定房价上涨当场折现,事实上你必须在一定时候出手折现,然后平摊在你拥有房子的这些年上。如果跌了,R为负)。现在,每月所得(房租x+房子上涨在每个月的所得XR),每月支出(Xk/N),每月利息(Xr),x+XR-Xk/N=Xr。X/x应当是1/(r+k/N-R)。 同样,我们按照上面的假定来进行计算,1/350=1⁄233-R或者是1/350=1⁄195-R。R应当是0.143%-0.227%的样子,换算平均年预期房价上涨是大约是1.66%到2.59%。预期房价上涨越高,当前的房价/租房比值越高。关系式很简单,R=r+k/N-P,其中P是预期房价上涨带来的平均每月收入。 显然,当前房价/租房比值的状态显示大众的心理还是基本相信房价逐年上涨的状态。 当然,消费者未必在房屋上全理性,因为受到工作,生活,个性的影响,我们对于房子的选择也是非理性的。而且上面的市场也是完全市场。因此上面的分析仅仅是分析而已。 另外一个问题,就是投资选择问题。简单来说,就是房贷和存款利率的差的问题。这涉及风险评估问题,根据不同的风险,商业贷款的利率应当不同。但是中国目前利率固定,因此开始就没有讨论价值(加上公积金等等问题,更难说清楚)。但是一般来说,如果风险不变化,存款利率不变。提升贷款利率的结果会催生地下钱庄。反之则会疯狂贷款,催生呆帐。因为同样通胀水平下,风险越大,投资回报比例越高。 同理,如果说没有其他问题,贷款利率升高,风险也增大。不知道这是否预示着中国的领导层预期到中国将来房贷的返还风险增加。换句话说,失业或者房价下跌(高失业率或者高通胀率),痛苦指数增加。

网络性能测试和标准

Sep 30, 2006 - 2 minute read - Comments

前两天弄有线通的事情弄的郁闷了,所以就研究了网络性能测试。以后不用也是浪费,大家需要就看看吧。 1.目标 测试目的往往是测试清楚几个值,包括:IP包传输往返时延(RTT),IP包时延变化(抖动),IP包丢失率(Lost rate),IP业务可用性,还有带宽(Bandwidth)。 2.适用标准 RFC 1242, RFC1944, RFC2285, RFC2432。 ** 中华人民共和国信息产业部令第36号(http://www.chinanetcom.com.cn/mj/dxsc.asp?Unid=3810) ** IP网络技术要求– 网络性能参数与指标(YD/T 1171-2001) 3.测试平台和工具 我们假定基于POSIX兼容平台测试,演示用的例子来自Debian Etch/Kernel 2.6.17-2-686。Windows下所需要工具可以参考移植工具。 iperf 网络带宽测试工具 paratrace 被动路由测试工具 hping2 网络联通和时延测试工具 wireshark(ethereal) 抓包分析工具 p0f 被动指纹分析工具 4.测试对象,方法,和结果分析 以下为实例测试,参数需要根据具体情况变化。 4.1.测试网络带宽 在服务器端运行iperf -s。 在客户端运行iperf -c 192.168.0.2 100Mbps网络环境下,得到结果为92.6Mbps,折合为11.5MB/s。即数据极限传输速度。 4.2.测试网络IP包传输往返时延(RTT)和IP包时延变化(抖动) 分主动被动方法,被动方法用wireshark抓包分析。下面主要介绍主动方法: 运行hping2 www.google.com -p 80。得到 56 packets transmitted, 56 packets received, 0% packet loss round-trip min/avg/max = 242.5/269.9/381.1 ms 即在主动建立的到www.google.com的TCP连接中(默认为TCP,可以使用UDP,ICMP,IP,具体请看hping2 –help),丢包率为0。平均传输延迟为269.9,抖动为138.6。 注:按照《中华人民共和国信息产业部令第36号》,往返时延平均值≤200毫秒,时延变化平均值≤80毫秒。此处已经超标。但因为测试环境和适用条件不完全吻合,因此无法作为有效证据。 4.3.IP包丢失率(Lost rate) 也分主动方法和被动方法,主动方法见上。被动方法是用wireshark抓包后,通过tpc.analysis.lost_segment标志分析丢包数量和总体数量。具体为。 用wireshark抓包。 用( tcp.srcport == 7007

从踢牙老奶奶到火星文,从火星文到人工智能

Sep 30, 2006 - 1 minute read - Comments

先复制一个小的密码—— £³¨Ç£ê£±£¬£µ¨É¨Ù¨Ó¡££±¨Ð¨Ç¨Í£¬£±¨Ð£ä¨Ê¡£ ¨×£²£ä£´£¬¨ß¨Ç¨Ñ¨È¡£¨ÙYA¨È£ã£¬£ê£±£´¨Ø¡£ £´¨Ñ£´£õ£¬£â£ã£â¨Ó¡££±£ã£±¨É£¬¨Í¨Ø£´¨Ó¡£ 看的出来的——请和火星总部联系。 很多朋友可能不知道一个事情,不过不少人应该听说过无冬城之夜。台湾版的无冬城之夜本地化(l10n)中有一个重大bug。俗称踢牙老奶奶。 原文是:我看到一位老奶奶慈祥的脸——我抓住她的手,但是她竟然一脚踢到我的牙齿。 估计所谓踢牙,应当是英文kicked my teeth in,指漠视。最后应当是她竟然无视我。这是典型的一个翻译错误,而且估计可能是机器辅助翻译没有修润的结果。这个错误和当年大菠萝的温暖骷髅情况不一样,没有任何一个电脑会把蠕虫骷髅(wormskull)错成温暖骷髅(warmskull)。 由此肇因产生了很多火星文,例如说:这个游戏里面到处是踢牙老奶奶。 不过,无论是机器翻译不完善造成的火星文,还是人造的火星文。其实都是一个核心问题,NLP。 机器可以理解形式化的编程语言,并且转换为机器代码。是因为语言是具备一定的形式(form)的,或者叫做范式(pattern)。而例如说可以借助符号来做唯一分割(语法树的生成,或者说波兰树的生成),符号的唯一性。(所谓重载,是用将参数等重载辨识元素附加在名字里面,导致名字的定义仍旧唯一,详细大家可以看有做对象导出的库的导出符号表)然而自然语言本身分割未必唯一,符号也是和上下文相关的。例如最有名的例子,中国队大败美国队获得冠军。(中国队大败美国队获得冠军。和中国队大败美国队获得冠军。前一句中的败是动词,后一个应当是使动用法)这句同时出现了非唯一分割和符号歧义,即使对于人来说,也是具备歧义句特征的。只有在特定的语境中,歧义才会消除。例如如果在表扬中国队表现的文章中,那应当是后面一个解释。 对于自然语言的理解,人工智能中叫做NLP问题(Nature Language Precess)。首先要处理的就是断词和消除歧义。其中涉及的问题到不繁复,但是很庞大。最关键就在于数据量上。 断句的话,一般简单的都采用HMM算法,这就需要有前后词或者词组的衔接概率作为基础。中文又具备一个恶心的特性,就是假借。尤其在口语和古语方言一类的东西里面,倒置使动频繁。所以单纯做HMM还不完全解决问题。现在有很多分词软件,是基于HMM的。拿古文上去试试就知道是不是了,例如:古之人诚不余欺也。 至于消除歧义,更是麻烦的要死的东西。要消除歧义,只有把所有歧义可能全部列举出来。然后查看上下文中相关词汇出现的频率,选择比较高的一个。然而对于上面那个使动用法的例子,两者相关词汇的频率应当差不多。而电脑又不会像人一样判断语境,因此要误判就不奇怪了。 还有一个就是上面踢牙老奶奶出现的原因,俗语(idiom)或者叫俚语。例如百口莫辩,如果不加处理,至少也是can’t argue with one hundred mouth(people)。事实上比较恰当的翻译应当是unable to give a convincing explanation for self-defense。当然,NLP的目的未必是翻译,因此可能出现别的错误。不过错误的原因是一样的,就是俗语不了解。这个问题人也会出现,只是人的智能就比电脑高一些。百口莫辩不知道典故错误翻译过去还算难免,买椟还珠这种东西即使知道椟怎么翻译,在真的翻译前也会问问典故的吧。

玉女穿梭

Sep 27, 2006 - 1 minute read - Comments

今天弄了一个好玩的东西,esound4win。 现在在我的linux和windows上面有一堆穿来穿去的协议,大家看看实现方法,然后头晕不头晕。 首先是VNC,在windows上面安装RealVNC,启动服务。然后用linux的xvncviewer访问,就可以无缝在linux上面访问windows。 然后是Xming,这个是Cygwin的一个部分。可以在windows上启动X服务,这样我们可以运行一个远程跨平台的图形界面。在我的Debian上面是这样的。 用一个tty登录进去,然后 $export DISPLAY=192.168.0.X:0 $/etc/X11/Xsession & 这样就完成了完整的一个界面,界面控制是在windows下,但是程序是在linux下跑。和VNC不一样的是,windows的前端在操作的时候,其他的前端可以同步操作。 再然后是esound,这也是Cygwin的一个部分。可以在windows上开启一个esound daemon。方法是运行。 esound -tcp -public 在linux下面,esound可以跨站传输,方法是设定。 $export ESPEAKER=192.168.0.X:16001 当然,监听端口可以自行设定。 这样,就完成了从linux上将声音输出到windows听的功能。 最后,我讲讲我的实现。我先开了一个VNC穿到windows上操作,然后启动Xming。按F8退出到本地,用Ctrl+Atl+F2切换到tty登录,并且连接上Xming的前台X。然后Atl+F7返回GUI,F8返回VNC全屏模式。在Xming里面,开了个term。export了参数后启动xmms,并且切换到esound输出。再在windows下面运行esound4win,插上耳机。最后我点了下VNC中的Xming中的xmms的播放,声音出来了——世界多么奇妙?