Shell's Home

马尔代夫游记(二)

Aug 1, 2012 - 1 minute read - Comments

早餐的时候,谢天谢地,终于有水了。虽然没有免费的水,但是牛奶,果汁,都是免费用。服务员领我们去了海景坐,还为我们服务了两杯拿铁。这里的果汁和牛奶都很不错,果汁喝起来像是现榨的,牛奶也很不错,不知道他们是怎么解决的。但是拿铁就非常外行,咖啡不够香,奶不均匀,都是一颗颗的小的白色颗粒,貌似是用奶粉冲出来的。 今天开始,主要的项目就是——水。来马尔代夫不玩水,来干吗来了? 马尔代夫的水很漂亮,但是要玩水也有很多要点。 浮潜是最简单的玩法,需要的只有一副眼镜(要罩住鼻子那种,否则就要鼻夹),一根呼吸管。如果想要玩好点,还需要一双脚蹼。酒店的出租价格,整套1小时3美金,4-6小时7美金,24小时10美金。小贵,还可以接受。或者你可以国内带一副眼镜,一根呼吸管,然后自己下水。酒店会有救生人员,但是他们只保证你淹不死,不保证你能玩好。不知道是不是我的心理作用,国内的潜水眼镜经常漏水。我们租来的眼镜就非常稳定,我最长一次大概游了10分钟,要不是眼镜起雾了,我还不打算站起来。在下水前,一定要用足够好的防晒液,涂抹你的肩膀,后背,脚。尤其是肩膀和屁股附近,是最容易遗漏的。我想腿晒不伤,就没涂腿。结果在经过半天潜泳后,我在洗澡时被猫咪嘲笑了——居然给我生生的晒出了一个泳裤印子。防晒霜的作用相当明显,我的肩膀只是轻微发红而已,腰上稍微深一点,不过还可以忍受(主要是喵涂抹防晒液的时候偷懒没涂均匀),大腿后面已经像煮过的虾米一样了。另外,防晒液只防止晒伤,不防止晒黑,这点喜欢美白的女生千万注意。 浮潜前,你需要戴上游泳眼镜。游泳眼镜通常要在水里洗一下,以防起雾。戴上眼镜后,将呼吸管别在眼镜带子上(通常已经别好)。然后调整一下眼镜,保证没有漏气,并且将头发理出眼镜里面,以防水从头发那里灌入。用牙齿咬住呼吸管的内测,然后用唇包住呼吸管外侧。缓慢潜入水中,通常你就可以稳定的在水里游了。 浮潜的关键在于头的朝向,换气,和游泳姿势。首先是头,必须保持脸向下,不能抬头!因为眼镜内虽然少,还是有一些空气的。有空气就有浮力。在入水后,这个浮力会向上推眼镜。如果你不小心用鼻子吐气,那么眼镜内的空气会更多,胶皮和脸也会贴的不那么紧密。在这个时候,受到海浪冲击,很可能就发生进水。而一旦进水,你就需要上水面调整,这个很浪费时间。而脸向下则有两个好处。首先是眼镜的浮力会将眼镜牢牢的压在你的脸上,即使少量的鼻子吐气也不影响。更妙的是,当发生少量进水的时候,水会从眼镜内侧流到鼻子那里,而不会进入眼睛,影响视力。你甚至能看到水的下流。如果你不继续用鼻子呼吸,这少量进水完全不影响你继续潜水。即使需要调整,时间也会快很多。 至于换气,记得小幅呼吸,不要过猛,也不要大喘气,更不要大幅动作,试图玩自由泳什么的。因为人在水下的浮力会受到呼吸的影响,吸气时浮起,呼气时下沉。当你水下大幅动作,或者水面波浪,碰上你正好吐气的时候。搞不好就是海水从呼吸管进去少许。而这少许的海水,非常烦人。每次你呼吸的时候,都能听到噗噜噜的声音,好像摩托车的排气声一样。吸气过猛,抱歉,就进嘴里了。这时候,上水面,不要摘掉面罩。站起来,抬头,侧脑袋,水会自动从呼吸管中流出去。然后轻轻抬起面罩下延,排掉里面的水,你就可以继续潜了。整个过程大概就10秒时间,省事的多。一般来说,上浮重整主要是因为喝水和眼镜起雾。 水里记得不要用手去够一些东西,贝壳,珊瑚,除非你的手可以轻易碰触到他们。因为你伸手去够的时候,实际上是头下脚上的。如果运气不好,海水就会直接从呼吸管中倒灌进去。这时候没有意外的,你肯定会喝水。不过放心,这里的水很干净,喝一点不会死人的。相反,你要是瞎扑腾,撞伤了倒是要痛好久。同样,要是用脚在水面上猛打水,一样会造成头下脚上,呼吸管倒灌。因此,浮潜实际上是整个人“趴”在水面上的一种运动。如果你有脚蹼,可以考虑自由泳的姿势,但是手不要轮转划水。手可以保持前伸,或者在身体两侧,或者在胸前,都可以。脚蹼加上自由泳的脚打水姿势会游的非常快,你可以感觉到海水在你身体上形成的压力。而如果没有脚蹼,则推荐采取蛙泳姿势。两脚猛打水的结果可能是前进不了多少,但是却很容易撞上珊瑚。 马尔代夫的海水是印度洋中心的海水,非常清澈,而且属于海中心,洋流非常快。在水里呆着就能感觉到强大的水压在推着你走。如果你没有一定的游泳速度,在中等深度区域(1米上下)就会开始转向,偏移。这么说吧,我不穿脚蹼不敢到1米区域以外去,因为万一发生问题我不确定自己能游的回来,最好也只能顶着洋流保持不动。人的体力毕竟不是无限的,最多顶10分钟就会被洋流带着跑。而万一抓不住周围的浮标,就会漂到广阔的印度洋上。到时候怎么办只有天知道。如果有人看着,还会叫船来把我拖回去。只需要坚持到船过来就行。没看到就彻底听天由命了。 如果你对自己的浮潜水准有自信,可以从珊瑚上面漂过去。这时候能看到成群的鱼在珊瑚里面游来游去。至于没有自信的,可以在旁边看。毕竟万一发生意外你需要站起来。如果在珊瑚上,你不小心踩踏了珊瑚可是麻烦。普吉岛的潜水则是深水潜水,用游泳衣让你漂在水面上。因此你根本不需要“站”起来,自然也就没有这个问题了。 更复杂一点的,可以去玩深潜。这个我在普吉岛也玩过,相当昂贵。主要是适合潜水的地方,都离上海很远(哭)。在酒店这里,提供深潜服务,你甚至可以考出本证书来。尝试潜水,一次130美金。考证需要多潜水两次,总计245美金,加上49美金的证书费用。以上费用都需要加上16%的附加费,作为酒店和旅游局的抽成。考证还需要看2小时的光碟,并做一些作业。在潜水后,需要24小时(不得小于18小时)才能上飞机。因为潜水会导致血液内微量的气体溶解,而上浮时这些气体会逐步溢出。所以你可能会有局部的麻痹,头晕之类症状。不过只要保证按照潜水指南,在3-5米的区域停留3分钟,一般这些症状都不应当会出现。但是尽管如此,你血液内的气体含量还是很高的,而且局部可能有小气泡。在24小时后,气体溢出,气泡溶解,你没有任何问题。然而如果马上就上飞机,往往会导致严重的减压问题(讽刺的是,其实你在正常环境中没事)。因此,通常4晚6天的朋友,最好到达的头个晚上就报名第二天的深潜项目。这样如果你需要考证,你有足够的时间来操作,而且更加安全。我们为了考证,放弃了海豚,深海珊瑚浮潜,还有海岛半日游的行程。 晚上我们尝试了夜钓。实话说,不好玩。从晚上六点开始出海,然后每人发给一个风筝转盘一样的东西。将鱼饵(通常是新鲜的鱼肉)钩在上面,然后扔到水里。剩下就是等着吧。我的鱼饵数次被吃光,好容易赶上一条大鱼,居然还被咬掉了鱼钩(??!!)。倒是猫咪,虽然严重晕船(好多人都晕船),但是还是钓到了一条小鱼。我笑话她是小猫钓鱼,鱼钩放下去,就接着晕船去了。等过了一会,不知道鱼铒被吃掉没有。拉上来看看?我靠,一条鱼。。。 开始的一个渔点,鱼多的很,而且超级大。随便都在30厘米左右。颜色基本都是蓝色,红色。膘肥体壮泛着亮色的油光。第二个渔点鱼就很小了。虽然数量基本差不多,但是都是小鱼,最大不超过15厘米。颜色以白为主,偶尔能看到红色的鱼。粗看挺像鲤鱼的,但是口比鲤鱼大。猫咪说她好像认得,但是吃不准。

马尔代夫游记(一)

Jul 30, 2012 - 1 minute read - Comments

今天是去马尔代夫玩的第一天,我们坐马尔代夫美佳航空的班机直飞马累。网上有说美佳的班机都是老班机,不过飞机还不错,看不出破旧。只是在座椅设计上的不尽合理,让人觉察出这个飞机其实是很久之前的了。美佳的空乘很有趣,两个黄种人,看起来像是上海人,两个黑人美女,两个黑人帅哥。服务语言是马尔代夫语,英语,中文,和上海话,餐食也是上航餐食(航飞配出发地餐食似乎是惯例了),让人不禁感慨服务本土化之彻底。 飞行时间8小时,听起来很难熬。实际上毕竟是直飞,比转机还是舒服了不少。我们睡了三个小时左右,看了三个多小时的片子,吃了一个多小时的东西,基本就把飞行时间打发过去了。 马尔代夫的机场很有特色,和澳门机场一样,是建在岛上的。不过澳门机场还是填海了,马尔代夫机场还用不着。机场沿着马累旁边一个狭长的海岛修建,整个岛屿就是一个机场,包括一条跑道(是的,没有备用跑道,等待区之类的东西,我们降落后还得原路沿着跑道开到停机坪上),一个小停机坪,一个机场大厅。机场大厅也极小,不说比浦东国际机场的规模,就是普吉岛的布吉国际机场也大有不如。整个大厅只有四个篮球场大,还有部分露天区域,没了。从飞机下来,坐上摆渡车,20秒后,在100米处停下——到了。真真让我无言以对。 马尔代夫的签证和通关很简单,比欧洲简单无数倍,比泰国的都简单。我在浦东机场通关出境的时候,海关看到我的目标地是马尔代夫,压根不去验证你的签证,因为用不着。落地后,你只要在飞机上发的通关条上面,填上你的飞机号,护照号,还有你需要入住的酒店(这点很重要),就可以直接获得落地签。但是马尔代夫的海关规则比较特殊,猪肉,酒精等穆斯林禁品禁止入内,贝壳,珊瑚之类的海产品禁止出境(购买商品例外)。不要自找麻烦。 尽管通关简单,但是下飞机后通关还是很慢。因为很多人都没有预先准备好材料(包括我们,没有填写入住酒店)。负责处理我的是一个小黑,叫abudonla什么的,估计翻成中文就是赫赫有名的“阿卜杜拉”。人家挺客气的,我问出酒店名字后,他也不让我自己填,直接帮我补填了,然后马上敲章放我过去了。从海关出去领了行李,我们就直接领了预定好的水上飞机机票。在上飞机前,猫咪还买到了当地的电话卡。卡本身2美金,资费4美金,据说是最便宜的。卡本身激活后送20rf,4美金充值50rf。别问我rf是什么货币单位,我猜是当地货币。就是不知道国际电话和短信资费如何,所以没有对比标准。我们发了几条,其中有一条收到了回音,证明是发的通的。 水上飞机的流程很特殊。首先是托运行李,将”所有”行李过磅,包括你手提的行李。因为水上飞机比较轻,对前后平衡要求比较高。所以飞行员需要手动计算飞机的前后重量,来取得平衡。然后坐小巴,绕到机场另一侧的矮房子里,等待水上飞机的登机。这里的飞机登机也很特殊。通常登机是我们先到登机口等待登机指示,然后一个个扫描检票。这里的登机口是一间很小的(不到20人)的屋子,里面有本地飞机所有需要登机人的信息。你进去的时候扫一下票,然后就坐着等吧。等所有人到齐了,驾驶员就申请开飞机去。然后有小黑领着你到水上飞机那里去登机。可以想到,如果有一个人不到,剩下的人是有多郁闷。 乘水上飞机是一件很难描述的事情。水上飞机是以小型飞机为基础,加上浮筒形成的。在马尔代夫这种群岛国家,岛分布的很稀疏,坐船太慢。而全飞机又不能修那么多机场。因此水上飞机是一件顺理成章的事情。尽管如此,还是有不少痛苦之处——例如,飞机太吵,而且很小。 是的,水上飞机吵死人。上飞机前就有人发了耳塞,尽管如此,还是有不少不会用耳塞的家伙被吵个半死。这里说一下,耳塞的正确用法是,将耳塞先捻成细细的一长条,然后很快放入耳道,并且用手推紧。等海绵吸收空气膨胀,就会顺着耳道的形状完全塞住,一点声音都不会露过。但是,引擎巨大的轰鸣声,会透过颅骨直接传递到听觉器官里面,你会听到很奇怪的嗡嗡声,和平时完全不一样。千万别试图拔下耳塞试试看到底有多厉害,或在试图重新塞好。很难受的。 至于水上飞机的规模,我们的飞机是19个乘员的定载。2个驾驶员,后面有5排,每排3人,舱门那排每排两人,最后是一堆行李。一堆人在飞机里面挤的满满当当,不过幸好这个过程最多不超过1个小时。 飞机在浅水区域滑行了很久,到深水区后,开始加大推力。很快,和普通飞机一样,我们就飞上了天。不过和普通飞机不一样,小型飞机的抗颠簸能力很差,在起飞的时候,猫咪满脸恐惧的抓着我的手——天知道,要是出事我也搞不定的好吧。不过飞机上天后,你就能感受到小型飞机的美妙——我们仿佛在云海间穿梭一样。先是近距离的飞越马累市区上空,然后能很清楚的俯瞰一路上的小岛——距离相当近,我甚至能清晰的拍下海面的波涛。海水在深水区呈现的是美妙的蓝色,如同我们这颗蔚蓝的星球一样。在浅水区,随着水深变浅,颜色会逐渐由蓝转绿,由绿转白。而马尔代夫附近的海岛都具有鲜明的深度阶梯,从一个区域到另一个区域,过渡清晰,边界分明,犹如油画一般,一块一块鲜明无比。而这样的一个个海岛,分布在飞机下波光粼粼的印度洋的的广渺水域中,仿佛一块巨大蓝布上的色彩斑点。如果你仔细观察的话,同样是在深水区,还有部分黑色的阴影。那是白云飞过天空,在海面留下的倒影。 个人觉得,乘坐水上飞机本身,就可以当作一个旅游项目来玩了。 虽然整个飞行时间只有45分钟,然而我们所在的vilureef岛,和马累有一个小时的时差。马累是GMT+5的时区,而vilureef是GMT+6的时区,和阿拉木图一个时区。到了岛上,有会中文的服务员为我们介绍岛上的详细规则。规则很长我就不复述了,简单来说,岛上有各种好玩的好吃的玩意,但是都要花钱,并且提前一天报名。 到了岛上第一件事情,我们就检查了电力和网络系统。电力系统还不错,他们提供了一个转换器,能够让我们的充电器正常工作。我目前就在用外部电源支撑我的上网本写日志。而我们的ipad充电器则配置了英国标准头。但是网络系统就很抱歉了,需要购买帐号,收费足够让中国电信汗颜——每小时10美元!根据我的观察,这里似乎是在一个个岛上面架设毫米波天线,通过岛群的中继来传递信号的。这种方式相当昂贵而且不稳定,受到天气很大影响。不过除去这种方,只有海底光纤(而且不是一根,而是光纤簇)才能满足需求。可以想见,这里的手机信号也是受到天气影响的。 第二件事情,则是换上了泳衣和潜水装备,去屋子后面浮潜。这里的水挺不错,不过鱼没有普吉岛那么多——那里毕竟是观光景点,而我们这里是民宅。最让我郁闷的是,我们买的潜水眼镜有问题。在花了数万到马尔代夫后,我们败给了一个不足50的潜水眼镜。没办法,我们只能由猫咪和我轮流使用同一套装备。而最后我还把鼻夹给弄丢了——shit,貌似明天要捏着鼻子单手游泳了。 游泳后,我们都感到了饥饿。按照国内时间,这已经是晚饭时间了。然而这里比国内晚两个小时,自助餐又是8点开始,相等于国内的10点开始。我们都饿坏了。吃掉一包饼干后,我们小睡了一会。醒来后直奔餐厅开吃。晚饭相当不>错,泰式青咖哩酸辣开胃,其他数种我叫不出来的吃的也非常好吃。只有一个问题——没有免费的水。毕竟是海岛,估计淡水来之不易。岛上的饮料都是我们看不懂的玩意(最奇怪的是居然还有啤酒,穆斯林不是不得饮酒么?),而且贵的足够在五星级酒店点单。貌似明天开始,我们需要单独购买一瓶水喝了。

snappy的性能测定

Jul 23, 2012 - 1 minute read - Comments

要去马尔代夫渡蜜月了,闪人前最后一贴。 方法是用python准备数据,然后用timeit进行测试。虽然因为python框架的干扰,具体时值不是很准。但是用来做数量级对比和计算足够了。原生数据是一个屏幕截图,4M的数据块。 zlib.compress: 0.054105230093 snappy.compress: 0.00374100804329 zlib.decompress: 0.0157685602903 snappy.decompress: 0.0051297039032 从结果分析,zlib是典型的非对称压缩算法,压缩/解压速度比大约是3.5:1。而snappy的压缩和解压速度在同一个数量级上,甚至在具体的数值上,压缩比解压还要快那么一点。以解压速度为基础的对比,snappy大概比zlib快了3倍。而压缩速度上,则是快了14.5倍。 由于python的干扰是在每个的时间上面增加了一定开销,通常会使得速度比更接近1。也就是说,实际上snappy和zlib的速度比比这个还要大。 另外说一句题外话。按照我们测试下来的数值计算,snappy和zlib的压缩比大概在1:2之间。zlib压缩图形资料时的典型比例是0.05,而snappy则是0.1左右。对于熵比较高的数据,zlib大约是0.33左右的时候,snappy是0.5。都是比2倍大小略小。

论社区制度——答各路神仙

Jul 18, 2012 - 1 minute read - Comments

前面一篇“论社区制度”果然非议者众多。 混淆了直接民主和间接民主 这个真没有。仔细看引用的第三个材料的第一节,民主的形式。里面就讲了直接民主和间接民主。每篇引用的材料我都大致看过,还不至于犯这么严重的错误。 民主制度其实是个恶政,除去能够保证每个人的自由,他就是公民的暴政而已。这句话不是我的原创,而是从材料2中引用过来的。原文是温斯顿·丘吉尔的一句名言,“…民主是最差劲的政府模式——除了其他所有不断被拿来试验过的政府模式之外。…”。材料2做了转述,我做了引用。 我当然不想掺和白马非马的诡辩,但是讲到民主,总不能把直接民主踢出门外,光讲自由民主制吧。如果是这样,我会直接把标题从民主制度改为“自由民主制”。实际上,在民主制度的第一小节,每次提到民主的时候,我指的都是“非自由民主制度”。关于两者用词,我参考了材料2的“自由主义”一节。如果您觉得和您自己的理解有所差异,我们可以讨论辨析一下这几个词的细微差异。 #规则需要人来执行,并不等于规则是否严格都无所谓 # 对于这点,我不反对也不赞同。我的意见是,规则是否严格由管理员说了算。如果你觉得无法接受,你可以提要求完善。他们不接受,你可以走人。你不走人,那就只有接受。 原文核心的观点是——“试图依靠严密的,没有漏洞的规则来规范所有人的行为是行不通的”。 实际上,这一观点是从哥德尔不完备定理中得到的美学观点——试图通过一种大一统的,完备的定理体系来描述整个世界是不可行的。当然,由哥德尔不完备定理进行论证太扯淡了,所以原文根本提都没提。 #多数人暴政# 这个我首先把材料引了吧。多数人暴政 维基百科。 首先,如果你看了我上面的“直接民主和间接民主”,应该同意,直接民主是能产生多数人暴政的。真正对暴民政治作出修正的,是自由民主制。自由民主制的核心思想,是强调透过宪法保障个人免受政府权力的侵犯,或者说强调对于个人和少数派的自由和权利的保护。 然而,你得承认。即使是自由民主制,控制舆论引导民意可以操控权利这一套还是不变的,只是手段更加巧妙而已。中国有一种特殊的招聘,叫做量身定做招聘。即为了保证某人肯定中选,可以为招聘加上身高必须严格等于 ,年龄必须严格等于等条件。同样,为了限制对手,而在媒体上大肆宣传,夸大对手所具备的某个特性对大众的影响,这已经不是一个很少见的手段了。当然,这和多数人暴政又有所区别。 原文的核心观点是——“在民主社会,操控舆论者操控权利”。

论社区制度

Jul 16, 2012 - 1 minute read - Comments

引言 事情的起因是shlug上的一次吵架。具体内容我就不在这里摘抄了,也不做评价。我单单说一点其实大家都应当知道,但是很多人却不知道的社区常识。 不要以为你加入了社区,就可以参与社区讨论。更不是因为你对社区做出很大贡献,社区事务就可以由你来管的。你能管的唯一事情就是退出社区。 社区管理之殇 民主为什么在社区行不通 其实严格的说,社区可以民主。debian社区事务由所有DD一致投票决定,这难道不是民主么?所谓社区不民主,指的是,非管理层不能参与社区的管理,也没有投票决定权。 这是理所当然的!如果非管理层可以在社区里面发起投票,为了迫使社区接受一项决定,可能发生很多荒谬的事情。为了说明的更明显点,我们假定一项荒谬的决定,例如社区中的每个人必须拍一张遮住三点的猥琐裸照。然后看看,会发生什么事情。 通常来说,管理员会很快会否决这个提议。如果管理员有空,甚至会题上一句——你有病吧。但是,提议的人可能基于某种利益——例如社区解散会为他带来利益,而要求强行通过这个提议。他会怎么办呢? 他会找来社区数量几倍的人入会。 我不知道一般社区有多少人,但是我曾听说一些水军可以高达10W人。无论是哪个社区,都会在这些人手下快速的被淹没。再说,就算没有10W,你又无法验证本人。一人冒充10人乃至100人也不是太困难的事情。 于是会发生什么?我估计大部分的人会直接退出,然后社区会整个倒掉吧。 当然,为了防止某些人抓住这个荒谬的例子,宣称自己的行为不荒谬。我在这里补充一句。这个例子只是说明民主投票制度在社区行不通。基于上述的理由,无论你的行为是否荒谬,这个结论都不变。 为什么严格规定在社区不通行 另一个很容易陷入的误区,是规定制。规定是一个看起来很有道理,实现起来很有道理,但是没法完全照做的东西。 我们在各个社区,很容易看到各个社区的社区规定。不许po广告来,不许随地吐痰拉,blahblah… 但是这其实不是规定,而是指导规范! 我们都知道这些规矩,但是一个行为是否符合规矩,却无法由规矩本身判定,还是需要人来判定。我们举一个发广告的例子。例如,在shlug里面,广告必须OT,和社区无关的广告/招聘/讨论,完全禁止。然后某天,一个人来发了个网站广告,是个新闻娱乐网站。理所当然,马上被禁了。他于是就叫了,为什么禁我? 因为你发无关广告了。 谁说无关,这个网站的服务器是linux的。我发上来,希望大家帮我看看有没有漏洞什么的。 ——难道你跟他争这个? 因此,严格规定是行不通的。大部分通行的都是指导规范。所谓指导规范,核心要点是各个社区不同的地方。例如有的地方可以吹水,有的地方必须严格讨论。有的地方可以发招聘,有的不行。至于执行的力度,要看管理员的理解和心情。。。 权力分配的几种形态 封建制度 在普通公司中,最基本的权力是决定公司解散和盈利归属的权力。这个权力应当归属于股东,在很多企业中,总经理其实就是唯一股东或者绝对最大股东,所以公司的最基础权力都来自这个人。其他一切权力,都来自这个基本权力。因此,我们又叫这个人大BOSS。在国企/事业单位,一般也有这么个大BOSS。貌似这都是中国化管理的常态了。 由于所有权力都来自一个人,因此你的最终目标就是让这个人信任你,并最终为你行使权力,或者干脆将权利下放给你。例如经营管理权,人事任命权,等等。这个构成了一切公司内斗的基础,其本质就是对各种分支权力的争夺。在这个过程中,下级希望尽量扩大手中的权力(例如任命,提升),而上级希望他任命的下级通过转赋获得的权力完成他的工作,好让自己的上级赋予更多权力。当然,最高层并不需要获得更高的提拔和任用,盈利是他们最大的目标。 这种权力下放和争斗,几乎贯穿了中国封建社会以来的每一处。封建社会,什么叫封建?我们忽略马克思主义者的定义。根据维基百科的说法,封建社会,指由共主或中央王朝给王室成员、王族和功臣分封领地,是一种国家管理“制度”而不是一种“社会”,属于政治制度范畴。[1] 民主制度 民主制度其实是个恶政,除去能够保证每个人的自由,他就是公民的暴政而已。[2]韩寒似乎就曾经写过一篇blog,关于一个富人和10个穷人的故事。在民主制度下,可能发生的事情是10个穷人一致投票处死富人并瓜分财产。问题是,在近代社会中,每个底层的员工/社会的公民,都希望自由。于是我们设计出种种的民主制度,并赞以为好。[3] 民主制度的权力,实际上很虚无缥缈。因为从理论上权力来自每个人,但是又不是每个人都能去行使这个权力。因此实际上权力来自于“民意”。民意这个东西很抽象,但是也很实际。大多数情况下,可以通过舆论加以控制。早在古希腊时期,政治就很明显的会受到剧场中的“政治讽刺剧”的影响。[4]近代来说,希特勒的上台也是合法选举的(当然,上台后的那些事情就是另一回事)。 社区制度 当我们说社区制度的时候,我们并不是在说社区的管理员层制度。管理员层制度可能千变万化,如果论坛是一个公司,那么可能就是封建制度,如果是纯社区,那可能是民主制度。实际上这两种我都见过。在这个小结里面,我说的是社区的每个成员和社区管理层间的互动关系。 社区的规模和定位不同,管理员的风格和个性不同,管理的方式也可能不尽相同。有的社区有完整的社区指导,有的没有。有的有管理员内部投票,有的没有。有的社区对新加入人员亲切友好,有的不是。有的干脆禁止随意加入,要加入可以,找介绍人。 不服?可以。但是社区的每个成员,实际上对社区都是没有管理权的。这也是管理层为什么叫做管理层,或者管理员的原因所在。社区成员唯一制衡管理员的,就是离开。用google的话,就是“用脚投票”。你可以自行离开,然后组建一个社区。如果你的方法,或者个人感召力确实占优。你的社区会更出名。很多社群都经历过分裂。要想看传奇故事的话,大家可以看看DivX和XviD两种视频编码格式的恩怨。不过也仅此而已了。很多社群都是熟人来玩的,压根不在乎你搞多大的社群什么的。 总结 我觉得,这个结论,是很多人都应当想的到的。但是很多时候,还是有人跳出来。也许出于热心,也许没想那么多。但是社区的事情确实不是社区中每个人说了算的,这和天下事天下人可议还不一样。包括debian社区的“蝶变”音译问题,还有shlug的ban人制度之争论。本质上都是一回事情。 引用 封建社会 维基百科 自由民主制 维基百科 民主 维基百科 雅典式民主 维基百科

debian wheezy下以uwsgi安装graphite

Jul 9, 2012 - 1 minute read - Comments

abstract graphite是一个python写的性能监控系统。这个系统是由多个分离的部分组成的。 graphite-web: 由django写的web界面系统。 carbon: 数据收集的守护进程。 whisper: 一种python写的数据库,类似rrd,便于大量的性能日志数据收集和处理。上两个组件会调用这个库。 collectd: 数据收集守护进程,向carbon中喂数据的数据源。 另外,有一点黑色幽默的就是,graphite的意思是石墨,是炭(carbon)的一种同素异形体。因此在graphite项目中,多次出现carbon这个名字。当然,另两个同素异形体是钻石(diamond)和足球烯(footballene),你就暂时别指望看到他们的身影了。 另一个用python写的,以元素命名的著名软件是mercurial。化学元素中的汞,俗称水银,符号hg。因此mercurial的命令行简写才是hg。 以上几个的结构大概是这样的: collectd(source) -network-> carbon -> writing-> whisper database -> reading-> graphite-web 下文描述了在debian wheezy下,以nginx+uwsgi模式安装graphite的过程。之所以用这个模式,是因为我的大部分系统都是python写的,同样安装在uwsgi下面。一事不烦二主。 carbon carbon有对应的debian包,可以很简单的安装。 sudo aptitude install graphite-carbon 默认的数据端口是2003,默认的数据路径是/var/lib/graphite/,这个在下文需要用到。 graphite virtual graphite有部分需要安装到系统中,因此最好用virtualenv进行安装。 cd /var/web/ sudo aptitude install python-virtualenv virtualenv --system-site-packages graphite 我假定你的安装路径是/var/web/graphite,这个在下面要反复用到。 install 在安装路径下,执行以下内容 source bin/activite pip install graphite-web --install-option="--prefix=/var/web/graphite" --install-option="--install-lib=/var/web/graphite/webapp" 注意,/var/web/graphite需要根据上面的设定自行修改,webapp是你的django基础路径。 configure 在/var/web/graphite/webapp/graphite下面,执行以下内容 cp local_settings.py.example local_settings.py 然后编辑local_settings.py GRAPHITE_ROOT = '/var/web/graphite' WHISPER_DIR = '/var/lib/graphite/whisper' DATABASES = .

一次韵达投诉经历

Jul 2, 2012 - 1 minute read - Comments

最近婚礼,碰到个挺憋屈的事情。 婚礼不是要印请贴么?老妈说亲戚都是远道来的,请贴印的高级点,把照片印上去。再把路线什么的也打一张纸,一起邮过去。我在淘宝上订购了一家婚礼请贴公司的服务,结果邮寄过来一看,货倒是对版的,但是字太小,颜色还有色偏,偏红,纸质也不算高档。没办法,1.4元就这个质量,我也没功夫去投诉什么的。直接找了另一家,好像叫上海络客,老妈跑去现场沟通印刷的。4元一份,50份,总价200。 我找韵达给邮了过去,5.21号发件,过程还挺顺的,没出别的事情。第二天,快递员给我打电话,说对方不在。我说不在阿,不好意思,您能回头送么?他说已经放门卫那里了,让我通知对方。我心说你怎么随随便便就放那里了。但是放都放了,还是尽快给老姐打电话吧。 电话到了,张姐也知道了。事情看起来到此为止咯。不,事情才刚刚开始。 我6.10号接到老妈电话,说老爹那里没收到快递。我说张姐不是说知道了么。她说,张姐去找了,没找到。我说都半个月了,才说阿。老妈说,她联系你爸的事情忙(我爸还有别的事情请她帮忙),把这个给忘了。 我X,这下篓子大了。请人过来,连请柬都没一张,像话不像话?而且还有线路图,证婚人证词,全丢了。 没办法,还有6天就是婚礼了。老妈跑过即加急补印了一套,然后重新打线路图,还有证词,再发过去。全家总动员,一天内搞定了所有材料,结果在快递上又出了问题。 韵达是不敢用了,我找的联邦。联邦总机没说啥,快递员告诉我,请柬算文件,按照邮政法不得快递。我想没办法阿,找EMS。和EMS的快递员扯淡半天,发现:他们的件都是三天内达,到时候人都在上海了。隔日达的限于特定区域,例如长三角。但是张家港又不在这个业务的覆盖范围之内。我说我加急费用行不行。他们回答我:抱歉,没这个业务,加费用也不行。我一想没办法,用毛巾包起请柬,打给联邦说我邮一条毛巾过去。联邦的业务员说,好,你别包起来,我要检查的。。。 我X,这TM扯淡劲的?咋办? 和老爹打了半天电话,听他念了半天,最后决定:他去和所有亲戚道歉,到了上海再给人家请柬。 结果婚礼那天,没线路图,四辆车(分批次走的)里面有两辆走偏。老爹车上有GPS不会用,开去了外高桥。老姐车上的GPS数据不够新,开到浦东没下出口,一路开去了浦西再开回来。 事情闹这么大,怎么也得有个说法对吧。这里面有两个问题,一个是张姐忘记和我说了,一个是韵达丢件。张姐那里是我们有求于人没办法。韵达丢件是实打实的,所以我打给韵达总部去投诉,并且看了一下单子上的快递条件。未保价的,按照运费5倍赔偿。 请柬大概10张,一张就是4元,总价40。还有各项其他材料,小礼品。加起来大概是60朝上。我报了个80。实话说损失远不止这点。光是开错去外高桥的车的油钱就多少?加上加急印刷,我接近两天的时间浪费,总数合计可能要破千。更不提这件事情麻烦而且丢面子。但是运费只有6元,最高只能赔偿30。好吧,既然是合同,我无话可说。而且主要责任确实不是韵达的,所以我就打算弄一个投诉,拿这点小钱,小惩以戒。 投诉上去,隔天(大概13号)有人打给我,说是上海网点的人。去找了,但是这么久了,找不到了。我说那怎么办。她说你想怎么办。我说这个当然是你们说怎么办。她还是问我怎么办。我说按照你们标准来吧。我估计是她被人搞的怕了,听到这个松了口气,说明天我给你带去。 结果第二天她没来,倒是有个号码疯狂的打我手机。我的手机婚礼后就被各种人狂打,估计是婚礼中方方面面的人都拿到了我的个人资料。所以我开了防火墙,就一直没接到。第二天下午(大概是6.18号)接起来,是那个送件的快递员。他打过来要我别投诉了,说可以按照东西价格赔偿。 我当场就发飙了。东西才多少钱?后果值多少钱?我让你赔个精神损失费10000你赔么?我邮递个东西,就给你们随随便便的放门卫那里,还很不耐烦的让我通知对方去拿。放门卫是你的选择,选择了就要承担后果。你要是摸着良心说你尽到责任了,我当场就打电话去取消投诉。 结果他答不出来,但是还是吭哧吭哧的道歉。刚刚做这个不容易拉。我说,这和我没关系。我投诉的是韵达,要求赔偿的也是韵达。你的处罚是韵达的决定。因为你不容易要求我解除对韵达的投诉是没有道理的。你要是真不容易,找你们领导求情阿,真不容易假不容易他最清楚。 说完我就挂了。 结果没两天,我姐给我打电话,说小伙子跑她家里去了。这下我就更来气了。事情本来就是你自己问题,最多是你和韵达的问题,你老骚扰委托人算是怎么回事呢?我坚决的没撤销投诉,隔手又打给韵达总部,投诉快递员骚扰。 总部的接线员很无奈的道歉,我们会加强对快递员的管理。我说你们处理问题的时候,左一个电话右一个电话就算了。现在快递员都跑到家里去了,我可以不可以投诉他骚扰。接线员犹豫了一下,说可以,但是这样就会加重对对方的处罚,快递员也不是很容易,问我是不是要投诉。我想想,人家也挺不容易,就和接线员实话实说了。你想法联系他,让他别再一趟趟的求情了。我再知道这种事情就肯定投诉了。 好,这个JP快递员的事情暂时告一段落。我们说回上海网点。不知道是韵达上海网点的执行会导致快递员受罚还是怎么回事,我12号投诉的,13号接到电话说隔天赔偿。到19号一点动静都没有。没办法,再打去韵达那里投诉。这次投诉他们赔偿协议不执行。然后韵达上海网点的人终于来了,说今天不过去了,三天内赔付到位。我说三个工作日吧,下面三天放假,我都不在。他们说,周一保证送过去。我说好吧,事情总算完了。 就快递一份东西,加起来耗费两天时间,全家总动员,还打了三个投诉电话,才解决问题。我细数一下里面的问题和教训,给大家做个参考,也希望知道的朋友解答一下我的问题: 按照邮政法,快递是否可以邮递文件?请贴是否算文件?如果可以,那么联邦快递有问题。如果不行,那么韵达有问题。无论如何,我可能还得多一个投诉。 如果快递不能送文件,这就是彻头彻尾的垄断腐败。 个人资料泄漏阿,结个婚,最近我的电话都快爆了。幸好早改成接听免费了。我听到广告就说,您大声点,我听不大清。然后放一边—— 如果东西比较重要,一定要保价,而且要按照结果保价。也不贵,韵达是3%收取的。如果考虑到丢件,当时我保价100,也不过是3元而已。快递总价不过是6元涨到9元,但是基本可以保证东西不丢了。如果真考虑这东西比较重要,我会走联邦(如果可以的话),而且大概会足额保价。 韵达对网点和快递员的控制和监管很差。网点有没有和我达成协议,总部不知道。网点赔偿没赔偿,总部不知道。快递员出了问题,还可以和委托人讨价还价。这根本是淘宝的加盟模式。 对快递员的处理只有赔钱,完全没有培训过快递员,什么情况下可以放门卫。如果他是先问我,是否可以放门卫,我说可以。那我这个投诉电话也不打了。 谢天谢地的是,总算投诉是有效的,投诉后对方是有反应的。如果我投诉了,责任方完全没半点反应。这家快递可以从我的联系人中除名了。

预言和伪预言的几项判定

Jun 25, 2012 - 1 minute read - Comments

人类很信算命,世界各地各种预言层出不穷。我碰到过真的预言,也碰到过假的。当然,真的预言并不代表我相信对方的宗教,或者其他的什么。只是说,对方的预言是有效和正确的。而假的预言,不消说,就是指预测是无效或者错误的。有很多预言披着各种外皮,让你觉得像真的一样。所以我提出几个观点,来区分两者。 预言的结果总是增加信息量。这是预言判定的大纲。如果一个预言没有增加信息量,那么就不是一个有效预言。 预言是对未发生事情的断言。预言的主体事件必须清晰明确。反例如:明天下午,你身上会发生一些事情。废话,只要我醒着肯定会发生事情,这种预言无论对错,是无效且无用的。 预言不得以隐喻,暗示方式说出,解释上亦不得附会。例如:推背图,爱怎么解释怎么解释。 预言的时间和地点可有可无,但是如果有则必须符合事实。如果时间,地点,事情细节不完全吻合,可以称为“带误差的命中”。 预言必须是可验证的,不可验证的事情不叫预言。反例如:下辈子你会投胎成什么。。。这怎么验证呢? 预言不可以是自实现的。反例如:很有名的股市预测者预测股市涨跌,这属于“自我实现的预言”。这种情况很特殊,因为预言本身是有效的,而且是会实现的。但是不是以某种神秘的方式,而是可知的心理学。 预言的总体必须是常人无法推测的小概率事件。反例如:你一个月内将会吃到一次米饭。废话,这TM不叫预言,叫2B。 对预言者的分析,必须注意“多次预言”,或者隐性的”多次预言“。反例如:找1000个人,然后分别为他们预测股市。你只要对一半人预测涨,一半预测跌。理论上说,应当有一个人会连续预测中10次。这是符合上述规则的预言,但是是无效的。类似手法经常用于短信诈骗,群发短信预测股市,对预测正确的再进行预测,最后就有一批人会觉得预测者很神奇,从而容易轻信对方要求代为理财的言语。 因此,承8。对不同人,预言同一事物,必须做出一样预测。 承9,如果你不能确定预言者散布预言的范围,以及范围内是否都听到同样的预言,那就是一个无效的预言。 同样承8。在预言帝,章鱼哥之类的事务面前,你要考虑总数有多少类似的预言者在进行预言,其中有一个人做出了全部正确预测是不是一件很奇怪的事情。当然,这并不否认预言者可能是真的具备预知能力。只是以统计而言,无法区分是真的具备预言能力还是仅仅是统计上的胜利。 承1, 8,判定预言的终极方式,是将预言者对于某一事务的所有预言进行收集,计算其正确率。如果这个正确率高于热噪声选择的平均正确率向上修正三倍方差,那么这个预言者就是有效预言者。

快速深入一门语言的几个问题

Jun 15, 2012 - 1 minute read - Comments

劳资明天要结婚了,今天婚前最后一个blog。 1.hello, world 目标:屏幕上打印出hello, world。 原因:不解释。 进阶:当命令行给与不同参数的时候,打印hello, 名字。给与开关的时候,打印hello, 123。 2.正则提取 目标:写一个正则表达式(或者类似的东西),从一段网页源码中找到某个标签的内容,去掉前后空格,显示。 原因:测试字符串处理能力。 进阶:支持正则扩展 3.扫描排重 目标:将某个目录和子目录下的所有文件扫描,排除重复的文件。 原因:测试文件系统操作能力。 进阶:多线程处理,注意吞吐颠簸。 4.做24点自动计算程序 目标:写一个程序,能够计算24点。要求能够自定义扩展算符。 原因:检查深度优先搜索,栈,结构设计,抽象处理能力等等。 进阶:做并发处理。有数种语言可能无法实现并发,或并发实现难度大,不美观,例如python。 5.做一个计算器 目标:做一个计算器,要求能计算1+2*3=7,并支持()。 原因:表达式解析和处理需要用到程序的方方面面,字符串处理等等。 进阶:做一个本语言的eval函数出来。 7.抓网页 目标:实现一个服务,定期下载符合规则的一批网页,解析,获得格式化的数据,并存入数据库。 原因:测试系统开发能力,基础网络库,字符串处理能力。 进阶:分布化抓取。 8.留言板 目标:设计一个留言板,将所有人提交的话保存起来,能一并展示。提交不需验证,展示不需分页。 原因:测试网络服务能力,数据库支持和多国语言支持。 进阶:防止XSS攻击。 9.异步大并发服务器 目标:设计一个异步http服务器,能对请求做出响应,添加,删除,修改数据库中的数据。不得使用现有的http框架和容器。 原因:集成性测试 进阶:不使用现有数据库,自己写一个。。。

multiseat简说

Jun 11, 2012 - 1 minute read - Comments

简述 这篇文章说的是如何实现multiseat,必须的条件和步骤等等。 首先简介一下multiseat。multiseat又叫做多座电脑,和瘦客户端(thinclient)一样,是一种降低电脑平均使用成本的方案。基本思路是,买一台稍好的物理机,然后买两个显示器和键盘鼠标,让两个(或者多个)人同时使用一台电脑。和瘦客户端一样,multiseat一般只用于对电脑计算能力要求不高的场合,打游戏的一般就别考虑了。和瘦客户端不同的是,multiseat的处理都在近程,所以在体验上会略好一些,部署时也不依赖于中心化网络。不过这些年网络设备都在改善,相差也不多。 硬件解说 显示系统 显示系统通常分为显卡和显示器两部分。multiseat至少需要两个显示器,但是两台显示器输出有多种情况。 单卡单核心双输出。一块显卡,一块核心,pci上就一个物理设备,但是可以输出到两台显示器上。例如笔记本,一个输出到本子上,一个输出到投影上。大部分机器都是这种情况。 单卡双核心单输出。又叫做单卡双核心交火。交火是一个ati术语,在nv那里叫做sli。是指用两块显卡为同一个显示进行加速,达到比一块显卡更快的情况。这一般是顶级显卡。 单卡双核心双输出。在单卡双核心单输出的卡上,一般都有两个输出。如果接入两个设备,那就是双核心双输出了。 双卡双核心单输出。又叫做双卡交火,在pci上有两个物理设备。同样是为了游戏而生的电脑。 双卡双核心双输出,两个pci-e。在上面的基础上,多接一台显示器。 双卡双核心双输出,一个pci。很少见,一般都是图形工作站。 之所以在这个问题上说这么细,是因为多X方案必须工作在两个以上核心上,每个核心分别输出一路。也就是说,上文中的3, 5, 6三种情况。我们最常见的1是不可以用多X方案的。而方案5, 6,是这么分的。一般的显卡都是pci-e的,而一块主板上只有一个pci-e插槽。所以普通主板是配不上两块普通显卡的。也不要考虑板载显卡和外接显卡的问题,卖电脑的说,大部分主板上都做了自动屏蔽。外接显卡一插上去,板载显卡自动屏蔽。 键盘和鼠标 multiseat至少两套键盘和鼠标,这是常识。 声音和外设 做的好的multiseat,尤其是搭配硬件卖的商业方案,一般都会做声音和外设隔离。你接上去的u盘不会出现在另一个人的电脑里。不过有些方案的隔离就不是那么完美,有可能只有主座有声音拉,或者是声音不能用拉。或者是自己指定声音输出到哪个设备,然后再抢耳机拉,或者是干脆多装一块声卡拉。这个问题自己留心。 windows windows下可以用softxpand[2]或者betwin[3],俗称拖机软件,不过两者的破解都不是很好找,尤其是win7可用的。windows下拖机的后果可能是,D3D加速有问题,两个人同时用的时候CPU使用率升高,其中一个人没有声音等。具体情况你设法下到试试再说。 linux 以下linux,没特别说明的话都是指debian,默认的发行版本是wheezy。 多X方案 所谓多X,就是开启两个以上的X,每个显卡一个X。这样形成的multiseat保留了原生的一切能力,包括3D加速。只要你原生显卡支持,都可以做到。多X方案的第一个显卡可以看到console,第二个只能看到图形界面,不能通过C-M-F1切换到console。 但是多X的条件也非常严格,上面列的情况1是没戏的。大部分人的电脑都被划到了这种情况。即使你有幸,弄到了3, 5, 6三种情况中的一个,也要注意,两块显卡必须是同一厂家,最好是同一型号。这点尤其对pci显卡更需要注意,pci显卡和pci-e显卡显然不能是同一型号,但是*必须是同一厂家*。 这个方案最鸡肋的地方在于,3, 5两种情况只有在针对游戏特别配置的电脑上才有效,而这种电脑本身是非常昂贵的。这和降低系统成本的初衷相违背。 Xephyr方案 Xephry是一个X的模块,他的目的是使用内存作为X的输出设备。因此Xephry做出来的X可以将显示内容再显示到其他地方,例如作为其他X中的一个窗口出现,等等。 利用这个特点来做multiseat的思路基本是这样的。首先我们将两个显示器合并成一个虚桌面,如同我们常规做的那样,左边的窗口拖一下可以到右边。然后再开两个Xephry,每个里面包含一个标准的X,包括display manager,session,window manager等等。最后每个X分别用一套键盘/鼠标。这样出现的效果和multiseat是完全一样的。 这个方案的优点是,支持众多的机器,尤其是我们最常见的1情况。但是,其缺点和优点一样明显。由于我们操作的是Xephry,而不是实际的显卡,因此会缺少一些X扩展,例如3D。而且相比原生设备,Xephry方案会有少量延迟。贝壳做过实际测量,至少在播放普通视频的时候,60Hz的刷新率没什么问题,播放无卡顿。 这个方案有一个封装好的实现,帮你做了整个过程。(不过我没有测试)叫做MDM[4]。 虚拟化拖机 无论是windows还是linux,都有一个不算方案的方案。安装一套vmware,然后将vmware在其中一个显示器全屏,再把其中一个鼠标和键盘指定给这台虚拟机。这样也可以做到multiseat的效果。使用Virtualbox/Vitrual PC也是完全一样的原理。 vmware中原生是不可以将鼠标/键盘指定给虚拟机的。关于这点,文档[6]给出了完整的解决方案。在.vmx中加入下面一行即可。 usb.generic.allowHID = "TRUE" 参考 Multiseat Documentation in x.org Softxpand BeTwin Multiseat Display Manager ourbetwin VMware拖机方法