14年7月,无甚大事

这个月比较忙,啥都没说。堆月底做个总结吧。

空难

一个月三起,马航又来一次。我都不知道该说什么了。也许今年就应该避开马航,马英九。

马航空难就是一场悲剧,不仅对所有在空难中身亡的人而言。看到现在基本也看出来了,乌克兰政府,反抗武装,俄罗斯三个当事主体互相扯皮。调查人员进场缓慢(不知道是不是受到阻拦),现场破坏严重。将来就算调查出了结果,也完全可以抗辩说调查结果没有任何公信力。看来这个案子只能等待某国档案解密之时才能确认了——虽然我们都应当在心里确认了真相。

话说回来,确认了又能如何呢?美国不想陷的太深,欧洲有心无力,马来西亚?丫管个P事。也许今年马来西亚请巫师过来是对的,只是不应当找人,而是应当给他们自己的政府和航空去去祟。

另外两起空难暂时没啥想说的,等调查报告吧。

向所有在空难中死亡的人表达哀悼,祝他们在天国(具体地点视个人信仰)中安好。

显示器

又败家了。买了台显示器,型号VG2233-LED。优派的,22寸。最大特点是800元价位上内置了屏幕旋转,可以把屏幕转成垂直的(是的,就是一大长条)。程序员都理解这样做的价值。就算不是程序员,用来看看网页什么的,尤其是超长网页,也非常爽。

下面说说问题和需要注意的点。首先,这块屏幕是TN的(废话,这个价位难道还想用IPS么),这就造成垂直视角非常有限。而转起来后,很不幸的,就变成了左右视角。于是当你偏一点头去看的时候,会发现色彩亮度都不对了。

不过幸好,对程序员而言,这个问题并不致命。程序员既不会用这块屏去欣赏某些视频,也不会在写程序的时候左摇右晃,甚至跳一曲小苹果。

另一个细节是,你先看自己的显卡和window manager是否具备旋转屏幕的功能。虽然大多数显卡都有,但是少数(尤其是集成显卡)在旋转屏幕后性能很差。我在旋转屏幕都打开屏保,能明显看到卡顿。幸好,写程序也是没影响的。至于window manager,其实包括整个系统。我在用lxde的时候发现一个细节问题——lxpanel会把panel横跨整个虚屏幕。在旋转屏幕的情况下,另一块屏幕无法显示panel。而如果把另一块屏幕对准下沿,应用程序的title就会显示不出来。于是我只能强制panel的长度来避免这个问题。

汕头

今年去汕头玩了,具体就不写游记了,因为写不出来。如果我把游记详细的写出来的话,你们一定会以为是美食流水帐,并且质疑我报复社会。

所以我就数一下我吃的美食吧。

  • 牛肉丸:当地特产。据说要人工用大锤子把牛肉打成酱来做。机器打出来的会发硬,不好吃。所以这算是在地(因为要离养殖地近)食品加工业,而且是劳动力密集行业。我问了问能不能带点回来送人,他们说只能抽真空。要买抽真空产品还不如直接在淘宝上买呢,还不算我们回程的携带重量。
  • 鱼丸
  • 鼠壳粿,厚粿:很当地特色,鼠壳粿甜的,厚粿似乎是放了某种海鲜。
  • 广场豆花:他们的豆花是一整块一整块的,放很多红糖。很好吃。当地朋友说,每天就卖两桶,卖光就没了。我们吃的接近第二桶底。
  • 水果冰:3-5元,现榨。比起上海来简直是白送一样的价钱。
  • 牛肉火锅:当地牛肉很多,而且很好,所以很多人喜欢吃牛肉火锅。把牛肉放在网勺里面,在锅里面涮到半熟就捞起来吃。基本和北京涮羊肉一个思路,就是猛火滚汤快下快上。味道非常赞。当地对牛肉不同部位非常讲究,讲究到我根本认不出这些部位在哪里。反正去的话一定要吃啦。
  • 炒冰:很有创意的想法。把现榨水果汁,放在一个制冷盘子上。随着下面大机器的高速制冷,整个水果汁就会变成一块块薄的冰片。拿一个小铲子铲啊铲的,确实很像炒菜。这样可以自己随意调和水果汁,做出不同口味的炒冰来。

总体来说,潮汕还是非常好玩的。对一个吃货而言,如果去不了台湾,就去潮汕。

又是性能问题?扯淡

http://www.donews.com/net/201406/2812175.shtm

为啥TMD说扯淡?扔掉支付宝,用户直接跑上来就能支撑的住了?多少用户就有多少量,不会随着用不用第三方平台减少的——除非这帮人不用电子支付改成线下付费。

如果说定时查询造成的问题。合作都合作了,查询量大不会改成回调么?查询是几次,回调是几次?这点技术上是个事么?早干嘛去了?

明显付费通就不想带支付宝玩了,以为这么搞能抢到用户。结果支付宝淡淡的来一句,没事,哥已经直接接到大部分商户上去了,用不着付费通。只有几家搞不定,哥不要了。祝你一路顺风,早死早投胎。

对了,补充一点。如果是正常公司,我觉得第一反应是限制调用速度。你丫调用过快要死死自己去。就算你拿着证据说我限制,我也可以说我们对每个商家的调用速度是有限制的没有错,你有什么问题么?——这是正常流氓。

所谓连脸皮都不要的流氓,就是不管你限不限制调用速度,我都不让你用了。非但不让你用,而且还声明,这是你的责任。

不要把TM政治问题扔到码农身上。谢绝扯淡,谢谢。

狗肉节

吃没吃过狗肉

吃过,还不止一次,不过自己没点过。没特别觉得好吃,也没觉得难吃——我始终觉得我的味觉不算很灵敏。有次吃河豚也是完全没吃出来,一直以为是别的。别人告诉我了,我还奇怪这东西为什么被称作天下至鲜。

如果是我点菜我会选择鸡,味道好又没有什么奇奇怪怪的麻烦。不过已经点了狗肉拿上来了,我也不会有特别的避讳。大部分的食物,只要没有违法,对健康无害,我都没什么忌讳。反倒是猪脑什么的不大敢吃——神经节太密集了往往会想到朊病毒,心理有障碍。

我觉得都已经做成食物了,就别矫情了。浪费了才是不好的事。

不吃狗肉的理由

说不吃狗肉的,往往是几个理由。

  1. 萌。
  2. 屠宰方法太残忍。
  3. 狂犬病问题。

当然,不吃猫肉的理由也大同小异。

我们首先说狂犬病。狂犬病毒加热后会迅速死亡。别说煮熟,就是加热到90度,基本也会全部失活。吃狗肉会感染狂犬病毒唯一地点,就是在狗贩子身上。可身为一个狗贩子连狂犬疫苗都不打,这纯属no zuo no die。以危害狗贩子的安全制止吃狗肉不合理。后面会说有一种和狂犬病有关的理由,阻止随意购买狗肉是合理的——当然不是吃狗肉本身。

其次是屠宰方法太残忍。那后面问一句,如果我们用一些比较文明的屠宰方式。例如单独带到隔间,一板砖拍晕,然后再下手,行不行?爱狗人士又往往会摇头,不行不行,太不文明了。我了个去,菜市场当街杀鸡杀了多少年,也没见谁有意见,轮到狗身上就太残忍?

其实说穿到底一句话,萌才是一切的根源。

狗是否特殊

我认为即使是人都不特殊。人是万物之灵这种话,基本就是骗骗自己满足人类自己的自大心理的。

之所以我拒绝认为人是一种食物,主要是出于伦理考虑——如果人可以作为食物,那么人和人相残的世界未免太残酷了。

所以你问我,狗作为一种经常和人类相伴的生物。让孩子知道狗也会被端上餐桌是否太残酷了?我觉得你说的有道理。

但是。

你可以请求别人不吃狗,但是你不能强迫别人不吃狗

关于不吃某种东西,我觉得这应当成为一个最简单的共识。我不吃/别让我吃/别让我看到你吃,这没问题。你告诉我,我也会配合你尽力避免。你要吃,我不强迫,这是底线。在此基础上,你可以劝说。对食品的偏好是每个人的事情,只要不吃人都好商量。更没必要为了这种事情,弄出种种奇怪(甚至违法)的手段来。甚至有时候,吃不吃没什么,手法惹人厌。

当然,最后我得说。这种奇奇怪怪的爱狗人士是少数。谢天谢地。多数的人只是在网络上声讨“狗狗那么可爱你还要吃它,有没有天理良心啊”。现实中他们既不吃素,也不一定会跑去做什么实际性的事情。只是简单的在网络上抒发自己的观点而已。如果我要表达一下自己的观点,告诉她我觉得牛和羊很萌能不能请你不要吃牛羊肉了——

——你神经病吧。

虐狗逼迫爱狗者买下的事,你怎么看?

很明显,那不是吃狗肉的人干的事,这是狗贩子干的,而且很下三烂。也只有买卖狗肉不当回事的人,才能想出这种抬价的办法。

那反对吃狗肉的也许说了,没吃狗肉的人,也就没有这种事了。问题是这个逻辑,没有爱狗的人好像也成立。

至于有人说这是爱狗者找托来做秀,我只能说,没看到只能当没有。

我始终反对拿着钱来做出一些开外挂一样的解决方法——千年之前就有子贡赎人的故事了。国宝回归如此,吃狗肉也如此。他们知道有你们这群冤大头,东西就会越卖越贵了。你要是觉得,贵就可以阻止人吃狗肉了。呵呵,别忘了贵了偷狗的生意也会好。

吃狗肉和虐狗是两码事

不只是狗,包括牛羊,猪鸡。我都觉得,吃是一回事,虐待是另一回。我吃猪肉,但是如果说养猪的每天都对着猪一通抽——我觉得这个叫虐待。很奇怪对吧。宰都宰了,吃都吃了,还觉得抽一顿是虐待。

关于虐待,有一个很重要的区别是——不杀不食,不造成不必要的痛苦。我们感谢所有为了我们口腹之欲牺牲的生物,但是还是会毫不犹豫的吃掉他们。我觉得仅此而已的话,不算虐待。

农业虐心的地方在于,你对你的产品有感情,而生产他的目地就是牺牲。你养了一头可爱的小羊,每天照顾,很有感情。过了两年,一刀杀了吃肉。虐不虐心?

但这是必要的。农业中很多行为,都是很残忍但是必须的。包括阉割,密集养殖,屠宰。在整个过程中,我们提倡尽量简单无痛。但除此之外,我真的没法赞同把屠宰作为一种虐待的看法。更无法赞同的是,认为屠宰是一种虐待的同时,还在吃肉。

如果你认为,屠宰本身就是一种无法容忍的暴行,而非仅仅对狗成立。那么最起码的,请素食。

是否赞同动物保护立法

我很同意针对动物保护立法,尤其关于吃狗肉这块。主要目标到不是狗很萌——而是是否能有效控制狂犬病。

流动的狗贩,往往会偷狗,随意捕捉,野蛮宰杀。中间还有狗丢了之类的事情,往往会引起疫情转移,对于狂犬病控制不利。即使是街头上的野狗,如果做过防疫措施,能够增加免疫基数,也不应当被捕杀。为了控制这点,就不能随意在狗贩子那里购买食用狗肉。而理所当然,在街头购买饲养用犬也应当受到控制——原因相同。但是动物管理单位的捕捉甚至捕杀,应当受到保护,而不是阻挠。而城市中饲养大型犬,那是另外一个话题,此处不展开。

相比个人喜好,狂犬病控制是更加关系到民众生命和每个人的税收使用的事情。为这样的事情立法配合,我觉得是值得的。但是我想这样的说法,对爱狗者来说未必能完全赞同吧——不能随意买狗,要上牌照,动物管理单位还是能够捕杀,而且还可能有人合法的养肉用狗。如果你对这些事情感到不快,不妨反思一下。困扰你的,究竟是“只是我个人想轻松的爱狗而已”,还是“为了能让狗狗和大多数人相处的更自在”。

当然,就我个人的了解。这样的理论在农村地区是很难得到实现的。因为农村地区人多,狗也多。要捕捉-免疫-放回,没钱。控制狗贩子,没动力。所以往往是考虑的很好的动物保护立法,到了农村以后立刻变了味。往往就容易变成抓到狗贩子-罚款的生财之道。至于提供捕捉-免疫的事情,就当没听过。

让爱狗人士去农村免疫-放生?后面又会被捕捉。实话说我一直很困扰,爱狗者拦下来的贩卖狗肉的卡车,上面的狗都怎么处理了?都被领养消化掉了?还是放生了?放生后有没有再被抓?

归根到底,狗狗的问题不仅仅是狗自己而已。

不负责的养狗人比狗贩子更可恶

不服来辩。

docker的原理和类比

从虚拟化的种类和层级说起

  • 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的镜像当然可以写入。但是写的时候有几个问题。

  1. 如果对镜像进行写入,aufs会将原始文件复制一次,再进行写入。这样性能比较低。
  2. 更直接的问题是,一旦对镜像做了写入,就无法从docker这里获得更新支持——docker不能将你的写入和上游的更新合并。因此,整个系统就退化成了一个完全的虚拟机。

所以,我个人认为,docker的镜像本身应当是只读的——如同EC2里面一样。数据的写入应当通过远程文件系统或者数据库服务来解决。

vagrant

提到镜像管理,我们可以提一下同样属于镜像管理的一个软件——vagrant。

  • 可以将vbox的镜像打包导入导出
  • 提供了一个cloud,允许镜像的分享/更新

为什么vagrant不如docker出名

  • 快,系统级虚拟化使得docker的虚拟化开销降低到百分级别以下。
  • 可以在虚拟机内使用的虚拟机,例如云主机内。
  • 资源调度灵活,不需要将资源预先划定给不同的实例,在不同资源的机器上也不用调整参数。

成功案例

编译系统/打包系统/集成测试环境

典型的搭建一次,执行一次,销毁一次。不需要对image做更改(准确说的需要做更改,但是不需要保存)。

公司内部应用

在IaaS的比拼中,以Openvz为代表的系统化虚拟化方案几乎完败于完全虚拟化/半虚拟化系列技术。就我和朋友的讨论,这里面最主要的因素在于。完全虚拟化技术可以比较好的隔离实例和实例间的资源使用,而系统虚拟化技术更偏向于将资源充分利用。这使得系统虚拟化更容易超售。

然而,在公司内部应用中,这一缺陷就变成了优势。企业的诸多系统,只要在同一个优先级,其可用性应当是一致的。几个联动系统中,一个资源不足陷于濒死的情况下,保持其他几个系统资源充足并无意义。而且总资源是否足够应当是得到充分保证的事情,企业自己“超售”自己的资源,使得业务系统陷入运行缓慢的境地一点意义都没有。

因此,系统虚拟化可以为企业级云计算提供可以灵活调度的资源,和非常低的额外开销。

当然,云计算在企业化中原本就面临一些问题。原本提供软-硬件统一解决方案的集成商,需要如何重新组织解决方案。如何协调节约资源和高性能,高可用。云计算在企业级应用中还有很长的路要走。

短板

  1. 太新。目前成功案例还是不足,而且围绕docker的工具链还不完备。
  2. 适用范围比较窄。需求需要集中在“环境迁移”领域,而且image本身不应被写入。
  3. 生不逢时。rvm和virtualenv已经在前面了。

核聚变?

最近看到一篇文章極限DIY之核融合反應爐。昨天和朋友吐了不少槽,我总结一下。

真实性

首先,我不会质疑这篇文章的真实性。因为如果要评价一个实验的话,最基础的,这个实验的基础原理必须公开以供复现。他的基础原理是什么?聚变反应方程是什么?是否能够复现?文章本身,一点细节都没说,发布者也不是什么国际知名单位。这种情况下,质疑这篇文章的真实性是徒劳的——因为你都不知道从哪里入手。

先说明一点。我对核物理完全一窍不通。如果以下有错误,请指出。

按照原料为重水,没有提到氚,我推测聚变是D-D反应。D-D是经典的聚变方程,但是其反应式有两个,产物分别是32He + 10n和31H + 11p,分别放出质子和中子。但是两者的反应条件,质量损失均有不同。

由于不知道聚变原理(作者说是电场陷阱,但是不知道如何产生的,强度多大),所以这个系统的基本特性无法评价——就算不要求输出大于输入,最起码输出/输入比,反应速率是必须的。而且正常来说,做了实验,最起码测试一下质子和中子强度。对比装置对质子和中子的吸收水平,推断原本的辐射强度,倒过来计算两个反应的反应速率。这应当是一个完整实验必须做的。

有了放射强度的测定(完善的还得计算测定精度),计算出来的反应速率,就可以推算出理论输出值。配合上输入值(这个计算需要了解作者的电场陷阱原理),大概就能推算出理论输入/输出比。然后对比实际的输入/输出比,能够对装置运作的基本情况给出一个评价。

是否因为知识产权保护所以封闭细节

他又没做到输出大于输入,有什么知识产权保护的必要呢?写成paper发才是正常的做法吧。

为什么这么罗嗦

因为科学的基础必须是严谨,可复现。

很多人以为万有引力就是牛顿头上砸了一个苹果,然后感慨自己为啥没这个运气。当然有不少人脑子还比较清楚,小时候脑袋上砸了不少东西也没想出什么来,改为感慨自己为啥没这个天分。其实苹果的故事最多只能作为传说而已。

万有引力的基石,是第谷(1546-1601)的海量天文学观测数据。有了这些观测数据,开普勒(1571-1630)的行星运动定律才站的住脚。有了开普勒的行星运动定律,万有引力(牛顿,1643-1727)才能作为一种学说被提出来,并且有机会得到验证。否则要凭借想象想到,物质间实际上是具有非常微弱但是强大的引力的——对人类的想像力实在是太大的挑战了。即便有人能想到,也绝无可能说服大多数的人。甚至有机会进入实证。

当然,万有引力最具说服力的支持,是卡文迪什(1731-1810)的引力常数测试实验。卡文迪什以那个年代近乎艺术性的测量精度,将这一量精确的测定了出来——顺带一提,即便在现代,万有引力常数的精确度依然是所有物理常数里面最差的。

所以呢?我想说什么?

高精度的定量测量,才是物理学的生命。物理学家毕竟不是在玩弄数学技巧,整出一个漂亮好看的方程,就完事了。

我在感慨什么

我不知道作者是天才还是民科。但是我看到无数人在那里叫好——你在叫好之前,难道就不知道简单看一下作者讲的细节么?他又不是没贴。

如果看了一下仍然叫好,我觉得纯属一点科学精神都没有了。上来就酸“怎么可能”,“你算老几”我觉得到也不必——毕竟作者也没有公布细节,就凭作者个人能力否定成果未免鲁莽。但是我绝对不认同,仅仅因为“精神可嘉”,就无视物理学基本精神,在没有技术支持和复现前,对一项实验大加赞赏。

我也顺带吐槽一下作者的文,说这是实验文不如说这是软文。通篇到头就在讲装置怎么难做,自己怎么困难。一没说基本原理,二没计算过程,三没测试数据,四没装置的设计制造图。说国外看到类似的设计,可是reference完全看不到。这些都算了——连装置的设计目的和输入输出功率都没有。你真的是在说技术么?

下面会发生什么

如果是正常情况,大概会有同行复现。能复现的发文说OK我复现了,不能的就开始联系和质疑。

以作者的名望,大概不会有学者认真的想去复现。不知道作者有没有意思主动联系同行做复现。如果有的话,同行复现一下结果就出来。如果没有的话,大概会变成主流学界不搭理,作者感慨自己受到冷遇,然后网友们就是就是两句——这样子。

参考