Shell's Home

如何分辨网站真假

Aug 19, 2014 - 1 minute read - Comments

老婆想去新疆玩,结果她居然从百度上搜了一下新疆国旅就联系开了。我一直不知道,直到她和我说,对方要求缴500元到一个支付宝帐号里。我立刻要求她不要付钱,然后开始查证真假。 第一家网站 她开始给我的是这家:http://www.17xjly.net/。 老规矩,先whois,再dig,再whois。 whois域名的结果是没有任何信息?! dig后的IP是113.10.247.20。再whois一遍,发现服务器在香港。此外也没有任何信息。 ICP是新疆的,查全国ICP登记无信息。 开始想不通,这家伙在新疆背景这么深厚?突然醒悟过来。这家伙是个.net域名,注册地不在中国,服务器不在中国,凭什么要人家ICP备案啊。就因为号称是新疆的网站? CAO,这种网站给的支付宝,鬼知道打进去会发生什么。。。 第二家网站 百度上排名很高的是这家http://www.yuyutrip.net/和这家http://www.yoyotrip.net/。两家的页面很像,但是又明显有区别,不知道是竞争对手还是什么。 老规矩。 whois域名的结果是这个: Registrant State/Province:Shanghai Registrant Name:shxg shxg 注册地上海? dig了更好玩。这两个域名的IP指向是同一个。121.52.217.137。再whois发现是这个: netname: TopnewNET descr: Beijing Topnew Info&Tech co., LTD. 没听说过。 ICP倒是有: 北京博通天下网络技术有限公司 U旅商旅网 2013-06-09 咳咳,漏底了吧。虽然号称国旅,但是是一家北京公司在上海注册的域名。 好玩的是,这家网站上面给出的地址,是真的(具体后面会说)。但是电话却不对。 真的国旅 google出手,马上就有。结果是这个http://www.cits.com.cn。 老规矩。 whois域名可以看到这个: Registrant: 中国国际旅行社总社有限公司 注册者看着就很NB。 dig一下,发现IP是这个,219.143.192.35。这个IP可牛逼了。whois一下: inetnum: 219.143.192.0 - 219.143.192.255 netname: CITS 我擦,专属C类IP段! ICP查询后结果是这样的: 中国国际旅行社总社有限公司 国旅在线 www.cits.com.cn 2014-07-23 www.cits.net 2012-11-29 这个网站上有400电话,打过去说新疆只有团体游。不过人家给了正确的地址和电话,和第二家网站的地址一致,电话却不一样。 事情到这里,我的基本判断是。和第二家网站做生意还是有点谱的,ICP是真的,地址国旅也认。最低限度,他至少是一家合法的旅行社——虽然不保证是国旅下属。第一家么,谁爱信谁信。 上海国旅 后面有点更好玩的事情。国旅在线上有上海,而google查询结果上也有不少上海国旅。那么谁是真的呢? 上海国旅1 例如这家http://www.scits.com/。 域名的whois是这样的: Registrant Organization: SHANGHAI CHINA INTERNATIONAL TRAVEL SERVICE CO.,LT Registrant City: shanghai dig后发现IP是210.14.68.234,再whois是这样的: netname: SVA descr: Science & Technology Network Communication Co., Ltd.

服务器操作系统的选择

Aug 14, 2014 - 2 minute read - Comments

今天被LTN问了一下怎么看一个知乎问题: 服务器操作系统应该选择 Debian/Ubuntu 还是CentOS? 其实我觉得他的大部分说法都没有错。如果你需要装一个服务器,确实首选是RH系的。 但是。。。 选用RH系的主要理由 其实你把回复从头看到尾,主要论点就一点: 哪个发行版,可以在长达7-10年的时间里,始终保持硬件稳定性的同时,又持续的升级补丁? 结论当然是RH!这是RH的主要卖点。 我们真的需要长达7年的硬件稳定性支持? 咳咳,今年上半年,蔽厂的运维碰到了这么一件尴尬事。 他们进货,去机房装系统,配置网络结构,加入运维管理系统,添加监控,交付。除去采购外,整个一套流程大概是一周。 我们在机房里面原本大约有10个机柜,那么一般扩充的时候,一次扩充一个机柜。 结果今年上半年的某一段时间,一周一个机柜的事情持续了两个月。运维同学辛辛苦苦装好一个机柜,周末打算轻松一下。被老大通知,又来客户了,机柜又不够用了,下周继续。 是的,我们现在20个机柜不止。机房有多少机柜我不知道,不过照这个趋势来看,我们快把机房包下来了。现在我们的带宽已经没有限制了,每个月月底按照合同秋后算账。 我们有一些有三年历史的服务器,台数不多。现在来看,性能已经远远不够。CPU不够快,也没有SSD,硬盘读写次数也太多。这些机器的下场,多数会被换下来折旧卖掉,或者作为测试服务器,搬去测试机房。而现在机房里面大半机器,都是两年以下历史的。而且至少一半服务器历史不超过半年(。。。)。从现状上看,把老服务器留在机房,其性价比并不合算。因为机房有机架密度问题,限制着我们的单机房极限,这相当于变相的租金。 如果考虑到这点,我们的线上服务器生命周期大概也就三年。最多。很多时候甚至还不到。 比我们更极端的是页游。他们的一组服务器生命周期一般是半年。半年内,要赚钱的也赚完了,不赚钱的也死完了。所以他们甚至不会新采购硬件服务器,而是直接使用虚拟机。 当然,虚拟机内的系统,支持时间是一年还是十年,对他们一点意义都没有。 为什么我们不喜欢三年以上的系统? RH系的提供10年级别的维护性,我换个说法,也就是最近的软件在RH的官方库里面找不到。当然,装最新的RH是有的,但是在安装了三年的一个系统上?肯定没戏。 怎么办?编译呗。 这大概就是国内谈到RH必编译的由来。 可是,我引用文内的一段话。 如果我今天告诉大家,我要做一个 http 的服务器,我不用 apache 不用 nginx, 为了性能我要用 xxx 为基础重写一套出来。我相信绝大多数人会问同样的问题, “你觉得你写的能比 ng 好么?” 再回头看看那时候你们自己吧。 同样,自己编译的软件,补丁维护速度,能和新系统比么?而且我们还得扔一个人下去搞补丁维护。 所以,正解是什么? 装一套新的,把数据导过去用呗。 我们的”数据“,都是装载在磁盘上的。而换”系统“并不需要更新这些数据,只要把系统盘擦掉重部署一遍,然后配置好deploy系统就OK。在开发之初,”环境“,”程序“和”数据“分离,就是一项基本原则。而且即使是”数据“,丢掉一台机器上的所有”数据“也不会构成问题。这应当是运维基础中的基础。只有少数几台服务器,既不能直接更换也不能停机。这些机器我们做特别的管理。 为什么蔽厂使用Ubuntu? 很简单。因为最初的开发希望在Linux上进行。直接在Linux上开发和测试,对于startup的快速开发是非常重要的。而开发用什么版本,服务器跟什么版本,这是最省事和好办的。如果你硬要和我争,说开发在Mac上,跑在Linux上一点事都没有。或者说开发一个发行,服务器一个发行也OK。 我至少得说这对于golang和python都不是事实。除非不用cgo,也不用python的C扩展。 先不提Mac下和Linux下的差异。我们今年在升14.04的时候就发现,12.04和14.04的编译互不通行。所以现在12.04的编译可以程序员自己编译了本地测,14.04的就必须在测试环境里干。一帮程序员远程tcpdump出结果,拷回本地wireshark一把。。。 看看就蛋疼。 当然,这也有个问题。就是上面”我们不喜欢三年以上的系统“。所以呢。明年我们的系统大概会轮换重装,14.04。。。 也很蛋疼。 Debian系的补丁不靠谱么? 那要看和谁比。这里有HeartBleed事件的统计。虽然不普遍,但是我觉得这种大漏洞比较有代表性。 CVE-2014-0160 - OpenSSL安全漏洞的非技術事件 我引用他的重点整理: RedHat 修復的速度比 OpenSSL 官方還快。 RedHat 派系的修復時間,除了 RedHat 外都算慢,如 Fedora 及 CentOS、Scentific, 他們都比 RedHat 慢 16 小時以上。 Debian 派系的修復時間,如 Debian 及 Ubuntu,都比 RedHat 慢上至少 12 小時以上。 Scentific 是列表中修復最慢的。 若以資安黃金 6 小時來說,Fedora、CentOS、OpenSUSE、Gentoo 及 Scentific 都不及格。 如果和RH比,Debian的修复速度是不及格,但是和CentOS比。。。怎么说呢?6个小时对10个小时,有种五十步笑百步的味道? 换你你愿意走几步? 另外,我也不知道原文说的升级一大包是怎么回事。我在Debian stable上查询ssl: $ dpkg -s libssl1.0.0 Version: 1.0.1e-2+deb7u12 Depends: libc6 (>= 2.7), zlib1g (>= 1:1.1.4), debconf (>= 0.5) | debconf-2.0 但是同时。 $ dpkg -l | grep libc6 ii libc6:i386 2.13-38+deb7u3 i386 Embedded GNU C Library: Shared libraries libc的依赖早就满足到不能再满足了。直到今天为止,openssl在debian上的升级还不需要你强制跟随升级libc6。而kernel根本没有依赖。 纠正原文的一点理解错误 Debian 是由社区维护、贡献的发行版本,其从选包、打包、都是由社区组织,分散行动的。 Debian 是没有真正意义的 release 概念的。Debian 有众多仓库,stable,testing, unstable ,experimental.

架构师

Aug 13, 2014 - 1 minute read - Comments

一个好的架构师至少要做到四点: 识别甚至提前预测到程序不同阶段的性能瓶颈,并以合理的代价消除。 识别束缚程序员生产力发展的瓶颈,并合理的消除。 解决组里面的尖端问题。 成为组员的精神支柱和旗帜。 他不应该: 总结需求。这是产品经理的事,除非他兼任。 评估工作时间,并保证工作进度。这是项目经理的事,除非他兼任。 召集,协调工作细节。这个随企业有不同划分,理论上是行政领导干的。有的企业是技术系的来做行政领导,有的是PM。 亲自写程序。除了初创,架构师亲自冲上去写大段大段的程序是找死的先兆。 预测技术的发展方向,并做出技术决策。您让CTO干什么去? 政治斗争。架构师也来搞这个,要么被搞死,要么根本没心思做事。 但是架构师应该理解办公室政治,并且能够基本掌握情况。一点办公室政治都不懂的架构师肯定被搞死。

14年7月,无甚大事

Jul 30, 2014 - 1 minute read - Comments

这个月比较忙,啥都没说。堆月底做个总结吧。 空难 一个月三起,马航又来一次。我都不知道该说什么了。也许今年就应该避开马航,马英九。 马航空难就是一场悲剧,不仅对所有在空难中身亡的人而言。看到现在基本也看出来了,乌克兰政府,反抗武装,俄罗斯三个当事主体互相扯皮。调查人员进场缓慢(不知道是不是受到阻拦),现场破坏严重。将来就算调查出了结果,也完全可以抗辩说调查结果没有任何公信力。看来这个案子只能等待某国档案解密之时才能确认了——虽然我们都应当在心里确认了真相。 话说回来,确认了又能如何呢?美国不想陷的太深,欧洲有心无力,马来西亚?丫管个P事。也许今年马来西亚请巫师过来是对的,只是不应当找人,而是应当给他们自己的政府和航空去去祟。 另外两起空难暂时没啥想说的,等调查报告吧。 向所有在空难中死亡的人表达哀悼,祝他们在天国(具体地点视个人信仰)中安好。 显示器 又败家了。买了台显示器,型号VG2233-LED。优派的,22寸。最大特点是800元价位上内置了屏幕旋转,可以把屏幕转成垂直的(是的,就是一大长条)。程序员都理解这样做的价值。就算不是程序员,用来看看网页什么的,尤其是超长网页,也非常爽。 下面说说问题和需要注意的点。首先,这块屏幕是TN的(废话,这个价位难道还想用IPS么),这就造成垂直视角非常有限。而转起来后,很不幸的,就变成了左右视角。于是当你偏一点头去看的时候,会发现色彩亮度都不对了。 不过幸好,对程序员而言,这个问题并不致命。程序员既不会用这块屏去欣赏某些视频,也不会在写程序的时候左摇右晃,甚至跳一曲小苹果。 另一个细节是,你先看自己的显卡和window manager是否具备旋转屏幕的功能。虽然大多数显卡都有,但是少数(尤其是集成显卡)在旋转屏幕后性能很差。我在旋转屏幕都打开屏保,能明显看到卡顿。幸好,写程序也是没影响的。至于window manager,其实包括整个系统。我在用lxde的时候发现一个细节问题——lxpanel会把panel横跨整个虚屏幕。在旋转屏幕的情况下,另一块屏幕无法显示panel。而如果把另一块屏幕对准下沿,应用程序的title就会显示不出来。于是我只能强制panel的长度来避免这个问题。 汕头 今年去汕头玩了,具体就不写游记了,因为写不出来。如果我把游记详细的写出来的话,你们一定会以为是美食流水帐,并且质疑我报复社会。 所以我就数一下我吃的美食吧。 牛肉丸:当地特产。据说要人工用大锤子把牛肉打成酱来做。机器打出来的会发硬,不好吃。所以这算是在地(因为要离养殖地近)食品加工业,而且是劳动力密集行业。我问了问能不能带点回来送人,他们说只能抽真空。要买抽真空产品还不如直接在淘宝上买呢,还不算我们回程的携带重量。 鱼丸 鼠壳粿,厚粿:很当地特色,鼠壳粿甜的,厚粿似乎是放了某种海鲜。 广场豆花:他们的豆花是一整块一整块的,放很多红糖。很好吃。当地朋友说,每天就卖两桶,卖光就没了。我们吃的接近第二桶底。 水果冰:3-5元,现榨。比起上海来简直是白送一样的价钱。 牛肉火锅:当地牛肉很多,而且很好,所以很多人喜欢吃牛肉火锅。把牛肉放在网勺里面,在锅里面涮到半熟就捞起来吃。基本和北京涮羊肉一个思路,就是猛火滚汤快下快上。味道非常赞。当地对牛肉不同部位非常讲究,讲究到我根本认不出这些部位在哪里。反正去的话一定要吃啦。 炒冰:很有创意的想法。把现榨水果汁,放在一个制冷盘子上。随着下面大机器的高速制冷,整个水果汁就会变成一块块薄的冰片。拿一个小铲子铲啊铲的,确实很像炒菜。这样可以自己随意调和水果汁,做出不同口味的炒冰来。 总体来说,潮汕还是非常好玩的。对一个吃货而言,如果去不了台湾,就去潮汕。

又是性能问题?扯淡

Jul 2, 2014 - 1 minute read - Comments

http://www.donews.com/net/201406/2812175.shtm 为啥TMD说扯淡?扔掉支付宝,用户直接跑上来就能支撑的住了?多少用户就有多少量,不会随着用不用第三方平台减少的——除非这帮人不用电子支付改成线下付费。 如果说定时查询造成的问题。合作都合作了,查询量大不会改成回调么?查询是几次,回调是几次?这点技术上是个事么?早干嘛去了? 明显付费通就不想带支付宝玩了,以为这么搞能抢到用户。结果支付宝淡淡的来一句,没事,哥已经直接接到大部分商户上去了,用不着付费通。只有几家搞不定,哥不要了。祝你一路顺风,早死早投胎。 对了,补充一点。如果是正常公司,我觉得第一反应是限制调用速度。你丫调用过快要死死自己去。就算你拿着证据说我限制,我也可以说我们对每个商家的调用速度是有限制的没有错,你有什么问题么?——这是正常流氓。 所谓连脸皮都不要的流氓,就是不管你限不限制调用速度,我都不让你用了。非但不让你用,而且还声明,这是你的责任。 不要把TM政治问题扔到码农身上。谢绝扯淡,谢谢。

狗肉节

Jul 1, 2014 - 1 minute read - Comments

吃没吃过狗肉 吃过,还不止一次,不过自己没点过。没特别觉得好吃,也没觉得难吃——我始终觉得我的味觉不算很灵敏。有次吃河豚也是完全没吃出来,一直以为是别的。别人告诉我了,我还奇怪这东西为什么被称作天下至鲜。 如果是我点菜我会选择鸡,味道好又没有什么奇奇怪怪的麻烦。不过已经点了狗肉拿上来了,我也不会有特别的避讳。大部分的食物,只要没有违法,对健康无害,我都没什么忌讳。反倒是猪脑什么的不大敢吃——神经节太密集了往往会想到朊病毒,心理有障碍。 我觉得都已经做成食物了,就别矫情了。浪费了才是不好的事。 不吃狗肉的理由 说不吃狗肉的,往往是几个理由。 萌。 屠宰方法太残忍。 狂犬病问题。 当然,不吃猫肉的理由也大同小异。 我们首先说狂犬病。狂犬病毒加热后会迅速死亡。别说煮熟,就是加热到90度,基本也会全部失活。吃狗肉会感染狂犬病毒唯一地点,就是在狗贩子身上。可身为一个狗贩子连狂犬疫苗都不打,这纯属no zuo no die。以危害狗贩子的安全制止吃狗肉不合理。后面会说有一种和狂犬病有关的理由,阻止随意购买狗肉是合理的——当然不是吃狗肉本身。 其次是屠宰方法太残忍。那后面问一句,如果我们用一些比较文明的屠宰方式。例如单独带到隔间,一板砖拍晕,然后再下手,行不行?爱狗人士又往往会摇头,不行不行,太不文明了。我了个去,菜市场当街杀鸡杀了多少年,也没见谁有意见,轮到狗身上就太残忍? 其实说穿到底一句话,萌才是一切的根源。 狗是否特殊 我认为即使是人都不特殊。人是万物之灵这种话,基本就是骗骗自己满足人类自己的自大心理的。 之所以我拒绝认为人是一种食物,主要是出于伦理考虑——如果人可以作为食物,那么人和人相残的世界未免太残酷了。 所以你问我,狗作为一种经常和人类相伴的生物。让孩子知道狗也会被端上餐桌是否太残酷了?我觉得你说的有道理。 但是。 你可以请求别人不吃狗,但是你不能强迫别人不吃狗 关于不吃某种东西,我觉得这应当成为一个最简单的共识。我不吃/别让我吃/别让我看到你吃,这没问题。你告诉我,我也会配合你尽力避免。你要吃,我不强迫,这是底线。在此基础上,你可以劝说。对食品的偏好是每个人的事情,只要不吃人都好商量。更没必要为了这种事情,弄出种种奇怪(甚至违法)的手段来。甚至有时候,吃不吃没什么,手法惹人厌。 当然,最后我得说。这种奇奇怪怪的爱狗人士是少数。谢天谢地。多数的人只是在网络上声讨“狗狗那么可爱你还要吃它,有没有天理良心啊”。现实中他们既不吃素,也不一定会跑去做什么实际性的事情。只是简单的在网络上抒发自己的观点而已。如果我要表达一下自己的观点,告诉她我觉得牛和羊很萌能不能请你不要吃牛羊肉了—— ——你神经病吧。 虐狗逼迫爱狗者买下的事,你怎么看? 很明显,那不是吃狗肉的人干的事,这是狗贩子干的,而且很下三烂。也只有买卖狗肉不当回事的人,才能想出这种抬价的办法。 那反对吃狗肉的也许说了,没吃狗肉的人,也就没有这种事了。问题是这个逻辑,没有爱狗的人好像也成立。 至于有人说这是爱狗者找托来做秀,我只能说,没看到只能当没有。 我始终反对拿着钱来做出一些开外挂一样的解决方法——千年之前就有子贡赎人的故事了。国宝回归如此,吃狗肉也如此。他们知道有你们这群冤大头,东西就会越卖越贵了。你要是觉得,贵就可以阻止人吃狗肉了。呵呵,别忘了贵了偷狗的生意也会好。 吃狗肉和虐狗是两码事 不只是狗,包括牛羊,猪鸡。我都觉得,吃是一回事,虐待是另一回。我吃猪肉,但是如果说养猪的每天都对着猪一通抽——我觉得这个叫虐待。很奇怪对吧。宰都宰了,吃都吃了,还觉得抽一顿是虐待。 关于虐待,有一个很重要的区别是——不杀不食,不造成不必要的痛苦。我们感谢所有为了我们口腹之欲牺牲的生物,但是还是会毫不犹豫的吃掉他们。我觉得仅此而已的话,不算虐待。 农业虐心的地方在于,你对你的产品有感情,而生产他的目地就是牺牲。你养了一头可爱的小羊,每天照顾,很有感情。过了两年,一刀杀了吃肉。虐不虐心? 但这是必要的。农业中很多行为,都是很残忍但是必须的。包括阉割,密集养殖,屠宰。在整个过程中,我们提倡尽量简单无痛。但除此之外,我真的没法赞同把屠宰作为一种虐待的看法。更无法赞同的是,认为屠宰是一种虐待的同时,还在吃肉。 如果你认为,屠宰本身就是一种无法容忍的暴行,而非仅仅对狗成立。那么最起码的,请素食。 是否赞同动物保护立法 我很同意针对动物保护立法,尤其关于吃狗肉这块。主要目标到不是狗很萌——而是是否能有效控制狂犬病。 流动的狗贩,往往会偷狗,随意捕捉,野蛮宰杀。中间还有狗丢了之类的事情,往往会引起疫情转移,对于狂犬病控制不利。即使是街头上的野狗,如果做过防疫措施,能够增加免疫基数,也不应当被捕杀。为了控制这点,就不能随意在狗贩子那里购买食用狗肉。而理所当然,在街头购买饲养用犬也应当受到控制——原因相同。但是动物管理单位的捕捉甚至捕杀,应当受到保护,而不是阻挠。而城市中饲养大型犬,那是另外一个话题,此处不展开。 相比个人喜好,狂犬病控制是更加关系到民众生命和每个人的税收使用的事情。为这样的事情立法配合,我觉得是值得的。但是我想这样的说法,对爱狗者来说未必能完全赞同吧——不能随意买狗,要上牌照,动物管理单位还是能够捕杀,而且还可能有人合法的养肉用狗。如果你对这些事情感到不快,不妨反思一下。困扰你的,究竟是“只是我个人想轻松的爱狗而已”,还是“为了能让狗狗和大多数人相处的更自在”。 当然,就我个人的了解。这样的理论在农村地区是很难得到实现的。因为农村地区人多,狗也多。要捕捉-免疫-放回,没钱。控制狗贩子,没动力。所以往往是考虑的很好的动物保护立法,到了农村以后立刻变了味。往往就容易变成抓到狗贩子-罚款的生财之道。至于提供捕捉-免疫的事情,就当没听过。 让爱狗人士去农村免疫-放生?后面又会被捕捉。实话说我一直很困扰,爱狗者拦下来的贩卖狗肉的卡车,上面的狗都怎么处理了?都被领养消化掉了?还是放生了?放生后有没有再被抓? 归根到底,狗狗的问题不仅仅是狗自己而已。 不负责的养狗人比狗贩子更可恶 不服来辩。

docker的原理和类比

Jun 30, 2014 - 1 minute read - Comments

从虚拟化的种类和层级说起 cpu虚拟化:可以模拟不同CPU,例如bochs 完全虚拟化:只能模拟同样CPU,但是可以执行不同系统,例如vmware 半虚拟化:guest必须打补丁,例如Xen 硬件虚拟化:可以当作获得硬件加速的完全虚拟化 系统虚拟化:host和guest共享一样的内核,例如Openvz 语言沙盒:只能在语言的范围内使用 虚拟化的级别越偏底层,速度越慢,用户越难察觉到虚拟化的存在。 虚拟化的级别越偏上层,速度越快,用户越容易感知。 cpu虚拟化和完全虚拟化时,用户几乎可以不察觉到虚拟化的存在 半虚拟化时,guest内核必须存在补丁 系统虚拟化时,用户不能控制自己的内核 语言沙盒时,用户没有使用api的自由 docker的实现结构 docker lxc namespace: 仅沙盒隔离,不限制资源。 cgroup: 仅限制资源,不沙盒隔离。 aufs image管理 当然,还有很多细节的东西,里面就不一一列举了。例如veth。 docker不是虚拟机 docker不是虚拟机,因为lxc已经是虚拟机。如果两者功能一样,那么docker就没有存在的必要。 你可以把docker当虚拟机用,但是当虚拟机用的话,他的完备程度远远不及现在的种种虚拟机。相比之下,就会觉得很不好用。这不是docker的错,只能说被不正确的使用了。 docker是什么 docker就是环境。 docker实际上只做了一件事情——镜像管理。负责将可执行的镜像导入导出,在不同设备上迁移。 原本我们发布软件有两种方法,源码发布和二进制发布。二进制发布又有两种方案,静态链接和动态链接。最早的时候,我们发布软件都喜欢动态链接,因为小。但是随着网络和存储的升级,软件越来越喜欢静态链接,或者把动态库打包到发布里。因为系统情况越来越复杂,依赖关系一旦出错,系统就无法启动。 将这个思路推到极限,就是虚拟机发布。早些年有人发过一些Oracle的linux安装镜像,算的上是先驱。因为Oracle早些年的安装程序很难用,对系统的依赖复杂。公司做测试用装一套Oracle还不够麻烦的。相比起来,下载一个虚拟机直接跑起来就可以用就方便了很多。即使性能差一些,测试而已也不是特别在意。 docker再进了一步。不但提供一个镜像,可以在系统间方便的迁移。而且连镜像的升级都能做掉。更爽的是,升级只用传输差量数据。当然,有好处就有牺牲。 docker的镜像是只读的 其实不是,docker的镜像当然可以写入。但是写的时候有几个问题。 如果对镜像进行写入,aufs会将原始文件复制一次,再进行写入。这样性能比较低。 更直接的问题是,一旦对镜像做了写入,就无法从docker这里获得更新支持——docker不能将你的写入和上游的更新合并。因此,整个系统就退化成了一个完全的虚拟机。 所以,我个人认为,docker的镜像本身应当是只读的——如同EC2里面一样。数据的写入应当通过远程文件系统或者数据库服务来解决。 vagrant 提到镜像管理,我们可以提一下同样属于镜像管理的一个软件——vagrant。 可以将vbox的镜像打包导入导出 提供了一个cloud,允许镜像的分享/更新 为什么vagrant不如docker出名 快,系统级虚拟化使得docker的虚拟化开销降低到百分级别以下。 可以在虚拟机内使用的虚拟机,例如云主机内。 资源调度灵活,不需要将资源预先划定给不同的实例,在不同资源的机器上也不用调整参数。 成功案例 编译系统/打包系统/集成测试环境 典型的搭建一次,执行一次,销毁一次。不需要对image做更改(准确说的需要做更改,但是不需要保存)。 公司内部应用 在IaaS的比拼中,以Openvz为代表的系统化虚拟化方案几乎完败于完全虚拟化/半虚拟化系列技术。就我和朋友的讨论,这里面最主要的因素在于。完全虚拟化技术可以比较好的隔离实例和实例间的资源使用,而系统虚拟化技术更偏向于将资源充分利用。这使得系统虚拟化更容易超售。 然而,在公司内部应用中,这一缺陷就变成了优势。企业的诸多系统,只要在同一个优先级,其可用性应当是一致的。几个联动系统中,一个资源不足陷于濒死的情况下,保持其他几个系统资源充足并无意义。而且总资源是否足够应当是得到充分保证的事情,企业自己“超售”自己的资源,使得业务系统陷入运行缓慢的境地一点意义都没有。 因此,系统虚拟化可以为企业级云计算提供可以灵活调度的资源,和非常低的额外开销。 当然,云计算在企业化中原本就面临一些问题。原本提供软-硬件统一解决方案的集成商,需要如何重新组织解决方案。如何协调节约资源和高性能,高可用。云计算在企业级应用中还有很长的路要走。 短板 太新。目前成功案例还是不足,而且围绕docker的工具链还不完备。 适用范围比较窄。需求需要集中在“环境迁移”领域,而且image本身不应被写入。 生不逢时。rvm和virtualenv已经在前面了。

核聚变?

Jun 26, 2014 - 1 minute read - Comments

最近看到一篇文章極限DIY之核融合反應爐。昨天和朋友吐了不少槽,我总结一下。 真实性 首先,我不会质疑这篇文章的真实性。因为如果要评价一个实验的话,最基础的,这个实验的基础原理必须公开以供复现。他的基础原理是什么?聚变反应方程是什么?是否能够复现?文章本身,一点细节都没说,发布者也不是什么国际知名单位。这种情况下,质疑这篇文章的真实性是徒劳的——因为你都不知道从哪里入手。 先说明一点。我对核物理完全一窍不通。如果以下有错误,请指出。 按照原料为重水,没有提到氚,我推测聚变是D-D反应。D-D是经典的聚变方程,但是其反应式有两个,产物分别是32He + 10n和31H + 11p,分别放出质子和中子。但是两者的反应条件,质量损失均有不同。 由于不知道聚变原理(作者说是电场陷阱,但是不知道如何产生的,强度多大),所以这个系统的基本特性无法评价——就算不要求输出大于输入,最起码输出/输入比,反应速率是必须的。而且正常来说,做了实验,最起码测试一下质子和中子强度。对比装置对质子和中子的吸收水平,推断原本的辐射强度,倒过来计算两个反应的反应速率。这应当是一个完整实验必须做的。 有了放射强度的测定(完善的还得计算测定精度),计算出来的反应速率,就可以推算出理论输出值。配合上输入值(这个计算需要了解作者的电场陷阱原理),大概就能推算出理论输入/输出比。然后对比实际的输入/输出比,能够对装置运作的基本情况给出一个评价。 是否因为知识产权保护所以封闭细节 他又没做到输出大于输入,有什么知识产权保护的必要呢?写成paper发才是正常的做法吧。 为什么这么罗嗦 因为科学的基础必须是严谨,可复现。 很多人以为万有引力就是牛顿头上砸了一个苹果,然后感慨自己为啥没这个运气。当然有不少人脑子还比较清楚,小时候脑袋上砸了不少东西也没想出什么来,改为感慨自己为啥没这个天分。其实苹果的故事最多只能作为传说而已。 万有引力的基石,是第谷(1546-1601)的海量天文学观测数据。有了这些观测数据,开普勒(1571-1630)的行星运动定律才站的住脚。有了开普勒的行星运动定律,万有引力(牛顿,1643-1727)才能作为一种学说被提出来,并且有机会得到验证。否则要凭借想象想到,物质间实际上是具有非常微弱但是强大的引力的——对人类的想像力实在是太大的挑战了。即便有人能想到,也绝无可能说服大多数的人。甚至有机会进入实证。 当然,万有引力最具说服力的支持,是卡文迪什(1731-1810)的引力常数测试实验。卡文迪什以那个年代近乎艺术性的测量精度,将这一量精确的测定了出来——顺带一提,即便在现代,万有引力常数的精确度依然是所有物理常数里面最差的。 所以呢?我想说什么? 高精度的定量测量,才是物理学的生命。物理学家毕竟不是在玩弄数学技巧,整出一个漂亮好看的方程,就完事了。 我在感慨什么 我不知道作者是天才还是民科。但是我看到无数人在那里叫好——你在叫好之前,难道就不知道简单看一下作者讲的细节么?他又不是没贴。 如果看了一下仍然叫好,我觉得纯属一点科学精神都没有了。上来就酸“怎么可能”,“你算老几”我觉得到也不必——毕竟作者也没有公布细节,就凭作者个人能力否定成果未免鲁莽。但是我绝对不认同,仅仅因为“精神可嘉”,就无视物理学基本精神,在没有技术支持和复现前,对一项实验大加赞赏。 我也顺带吐槽一下作者的文,说这是实验文不如说这是软文。通篇到头就在讲装置怎么难做,自己怎么困难。一没说基本原理,二没计算过程,三没测试数据,四没装置的设计制造图。说国外看到类似的设计,可是reference完全看不到。这些都算了——连装置的设计目的和输入输出功率都没有。你真的是在说技术么? 下面会发生什么 如果是正常情况,大概会有同行复现。能复现的发文说OK我复现了,不能的就开始联系和质疑。 以作者的名望,大概不会有学者认真的想去复现。不知道作者有没有意思主动联系同行做复现。如果有的话,同行复现一下结果就出来。如果没有的话,大概会变成主流学界不搭理,作者感慨自己受到冷遇,然后网友们就是就是两句——这样子。 参考 核聚变 第谷·布拉赫 约翰内斯·开普勒 亨利·卡文迪什 艾萨克·牛顿

上海的出租车越来越不像话了

Jun 9, 2014 - 1 minute read - Comments

事情 5月24日,我乘一辆出租车从玉兰路杜鹃路到纪念路汶水路。上车第一时间,我报了目的地,然后脱口而出的是走外环。司机纠正了我这点——外环太绕路了。我说对对,您怎么走。他说南浦大桥。南浦大桥能走么?我说不知道,您走吧。 OK,30分钟后,我就发觉好像不对。计价器已经高达了50,而目的地还没有影。我没和司机说,我岳母家就在旁边,这两个地点我经常来返,一般都是40-50之间。 到地方一看,80。我擦。。。算了,公司有事,回头再处理。 办好事情,回头打电话给法兰红,报上车号证号,上车下车时间地点。完了回复我说,7个工作日之内给回复。我说OK。 过了几天,等等不来电话,我再去打了一次。法兰红接电话的人也很奇怪,已经转给他们了,怎么还不回复呢? 今天(6月6号),实在忍不住了,再打了一次。法兰红的人直接给了宫霄的电话。打到宫霄去,差点没把我气死。 他首先慢悠悠的说,上车你怎么和师傅说的?我说外环。他说你都要走外环了,还指责师傅绕路? 我了个去,我要去北京路不小心说了个北京,然后说不对不对。师傅真给我开北京去也合理?何况当初师傅已经说了,外环太绕,走法不对。这明显是口误还拿来说事。 然后他说,师傅这个不算绕路。你上车时让师傅随便走的,师傅按照自己的判断走的。 我当场就骂娘了。我XX你个女性直系亲属的,说了随便走就可以随便走啊。你让客人到你家随意,是不是他XXXX你个女性直系亲属你也随意啊。当晚我反向打回来,大众的车,只走了14公里。你的师傅走了23.3公里,这叫判断?是判断能多赚我多少钱么? 他又慢条斯理的说,师傅开的时候说了往南浦大桥走的啊。 我擦,我上海盲,去那里只知道一条道——大连路。还有好像内环也行(这就是口误成外环的原因)。师傅说哪里更快,我就说跟着走啊。不是这次我哪里会去查“从玉兰路杜鹃路到纪念路汶水路”的路里面“是不是走南浦大桥不合适”呢? 电话对面的沉默了一会,又说,按照师傅的判断,在那个点走大众那条路会堵的更厉害。你上车的时候也说快一点的,现在不认了? 我OO你个XX,..你个**。绕路不往市郊绕,绕到市中心去了?你说大连路隧道会堵车,杨浦大桥会堵车,我不敢说不会。你说从南浦大桥开过市中心比他们更空,我还真不信了。何况这条路一绕就是10公里,本来一个14公里的路,总共24公里你能开到25分钟以内?我TMD的老老实实走预期也就是半个小时而已。为了省5分钟(还没准),多花60%的车费?你脑残还是我脑残?而且从结果来说,更快了么?结果还是半个小时开到。 更何况,公司的同事从张江打车到同一地点,47元,半个小时多点。充分证明当时事实上就没有堵车,唯一对堵车的判断只来自于驾驶员的内心。 对面沉默了一会,又和我扯师傅当时自己的判断。我懒得和他罗嗦。“自己内心的判断”用在每个绕路案例上都是一个无法驳斥的东西——你不能指着一个人说,我知道你内心里明知道这是绕路的,You know it。既然无法驳斥,索性跟他说我会打回法兰红,就这样吧。然后挂了电话打回法兰红。 值得玩味的事在后面。法兰红的人听完整个流程,一言不发,给了我上海市运管处的电话。照理说作为管理母公司,你觉得我不对应当直接告诉我“师傅是对的”。如果你觉得我对就应该直接处理。运管处电话可能把没事的事惹出事来。给我运管处电话,基本只有两种可能: 运管处肯定会打太极,或者什么都不做。所以拿运管处当挡箭牌。 这件事我们也有难处。索性简单点,你有本事再往上面投诉。投诉出了结果,也没人有话说。但总之我们这里我没法帮你处理掉。 我打给运管处,他们说接受投诉。然后又是一通车号证号的,然后等回复。 分析 无论如何,宫霄出租车公司在管理上至少有以下几个瑕疵: 七天内不回复。没什么好多废话的。 根本没给乘客选项。在整个乘车过程中,出租车司机就没提供过“大连路隧道”和“杨浦大桥”这两个选项。如果你要用一个绕路的方案,至少要告诉乘客,可以走大连路,但是会堵。最后“大连路隧道”是我和宫霄的运管人员争论的时候出现的。 我有次曾经坐过一辆大众的车,从曹河泾回家。问说回浦东能不能更快点什么的,例如走徐浦大桥。司机马上跟我说那样会绕路,起码绕10公里。如果一趟车,乘客自己要绕过50%以上,哪怕是乘客自己要求的,也会要求乘客签单子避免责任。我当然不指望每个公司都有这个水准,但是至少说明“绕路一半以上”并不是什么常见选项,更不会是唯一选项。 其实我在坐车的时候,经常会和司机聊聊天。虽然大部分的司机都很油滑(上海话讲“老油条”),但是其中碰到的大部分人不坏。我见到过因为我身体不适,不能吹空调。大夏天关着空调开车子,开的自己一身大汗的师傅。我见到过不小心东西掉在车上,不要额外收费给我送回来的师傅。我见到更多的师傅,冷淡,油滑,事不关己高高挂起。但是基本上,大部分人都不坏。靠自己的本事吃饭,不会恶意绕路,或者拿着乘客的财物不还(要乘客出送还时的车费我觉得是合理的行规)。 但是,这一情况,在这几年,是越来越差而不是越来越好。 这一问题,我碰到一位师傅,他的分析让我觉得有几分道理。一辆车,一天24小时管理费300-400,油费300-400,一天要做到傍晚,挣的才是自己的钱。15天做一休一,才能挣到6000-7000元上下。有路道的做做私人司机,虽然只能挣个4000,但是工作强度只有三分之一不到。剩下的时间陪陪家里人,炒炒股票,上网卖点东西,日子也过的去。照他们那个强度推算,我们应该挣12000的。所以现在越来越没人要做出租车了。有本事的开开大车,有路道的当私人司机,或者做做小生意也行,只有其他什么都做不了的才做出租车。 我说所以出租车司机的素质越来越差么? 他说还不止。很多时候运管处要管,又没法管。管多了,司机不做了,运管处还要费心找人补上。出租车在上海是属于公众交通而不是私人企业,不能说不做就不做的,不做就大事件了。但是要做,又没有人,只能对一些事情眼开眼闭。对着乘客说,我们已经严肃处理了。对着司机口头警告警告算了——反正他们这辈子没那么巧刚好碰上。 他一说我顿时觉得确实是这样。07年的时候我投诉过一次拒载。当时公司运管核对了事情就和我说,要师傅打给你道歉还是怎么处理。我说还能怎么处理。他说扣师傅一天工资(好像是一天,还是多少),给我100元举报奖金。我想想算了,不是那么大的事,不结那么大的仇。师傅真给我打过来道歉了(虽然听着心不甘情不愿的)。12还是13年我投诉机场有人拒载的时候,公司运管给我打了个电话。“我们感谢您对公司的支持,如果没有您的举报,我们肯定无法发现这些败类。对于这次的事情,我们会严肃处理,以敬效尤。”听着很爽,不过注意到了没,既没说当事人的处理,举报奖金什么的也只字不提——而且关键是这个说辞很流利,我感觉这哥们的工作就是复读机。 这次,个人觉得,法兰红的运管对下属小公司也没有办法了——乘客你要来自己来吧。 建议 下面主要是给台湾朋友的建议了。我的外地朋友里面北京和台湾人比较多,如果是欧美——大概也看不懂中文吧。 不要随意打车。 如果你真的需要打车的话,先确定这不是一辆套牌车。套牌车运管是处理不了的,有什么问题自己倒霉。套牌有点像天灾,很少碰到,但是一旦碰到就是自己倒霉。你最好先看一下出租车的内装,如果不对的话就不要上车。 再确定这不是一辆小公司的车。哪些是大公司?巴士,大众,锦江,强生,海博,海虹,农工商。至少这些牌子我还叫的上来。其他公司的车子,一般也不会碰到问题。但是一旦碰到就很难处理。 注意,这不是说小公司没什么好人。我在小公司的车里面,碰到过很多很好的师傅。只是说,这些公司的投诉管理机制不给力——你得祈祷你没有用到这些机制的机会。 上海出租最重要一个特点是,属于公众交通而不是私人服务。因此有一条很特殊的规定——拒载投诉。主要是针对司机一听你这个地方,觉得不合算就不去了,你可以投诉他。 所以上车前先问师傅做不做生意。等师傅说做,上车后他问你去哪里再说。千万不要当街就把自己的目的地大声说出来。如果出租车司机没有主动询问你目的地,或者确定表明自己做你这单生意,你是不能投诉拒载的。也就是说,如果你一喊,我就去个隔壁。得一堆师傅纷纷表示不做你这个生意了——这是你自己问题,无法投诉。 而且如果你扬招车的时候,师傅当着你的面把出租车运营灯关了——也无法投诉。你自己拉开门坐进去,师傅关掉运营灯——无法投诉。你主动跑上去告诉他去哪里,他关掉运营灯——也无法投诉。 上海出租的一大奇观,就是在下午4-5点的下班高峰。你招手的时候,一堆车纷纷关掉运营灯——这是他们到了交班的时间,只能去特定的方向。如果你的方向不对他们是不会问的,省得给自己找麻烦。对了,如果上车前师傅已经说了只去哪里——也无法投诉。 另一个就是记得收好发票了。上海出租的乘车凭证就是车票,没有车票是不能投诉或者报销的。如果出现东西丢在车上也是要凭车票找人的。所以下车记得拿票。 至于东西忘在车上——抱歉不要指望。如果你有确定的证据证明是司机拿的,你可以投诉,或者卯起来告他到死。但是司机没有义务保管你的财务,或者在你下车时确定东西都拿上了。所以如果不能排除后面的乘客拿走的财务——事实上很难排除——那么几乎找不回来,而且你也不能投诉他。 哪种情况是可以比较完美的排除的?如果你的电话过去的时候,司机的第二个乘客还没有下车。这时候,还没有人离开过出租车,所以不是司机就是乘客拿了你的东西。但是比较悲剧的是,司机是没有权力搜查乘客的。所以如果乘客坚持没有看到,你还是没办法。 所以?要养成一个习惯。离开车前慢悠悠的搜一遍,确定东西都拿了,再下车。你搜的再慢,司机也不能赶你下车——你也不会真的搜上半天吧。

cgroup限定内存

Jun 6, 2014 - 1 minute read - Comments

机器配置 ubuntu 12.04 内核版本:3.11.0-20-generic ulimit的限制效果 ulimit -m 8192 当内存突破8M时,什么事情都没有发生。直到38M都没任何反应。 ulimit -v 65536 python抛出MemoryError cgroup的限制效果 echo 8388608 > memory.limit_in_bytes 大小不对,cgroup的内存量计算方法和ps/status不一致。因此限制计数需要根据具体情况调整。 内核计数 /proc/[pid]/statm size (1) total program size (same as VmSize in /proc/[pid]/status) resident (2) resident set size (same as VmRSS in /proc/[pid]/status) share (3) shared pages (i.e., backed by a file) text (4) text (code) lib (5) library (unused in Linux 2.6) data (6) data + stack dt (7) dirty pages