Shared posts

21 Nov 04:17

大连地铁时报11.13

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.13
发信站: 水木社区 (Tue Nov 14 06:34:42 2017), 站内

一白遮百丑,一傻毁所有

晚上我爸喝多了,被几个叔叔扶回家。把我爸安顿在沙发上后,叔叔们就要走,于是我出去送了一下。送完后,我刚回来把门关了,我爸就给了我个大耳光:“这么晚才回来!”

昨晚女朋友给我打电话,问我:“在做什么?”我不敢说我在打游戏,因为她不准我玩。没聊几分钟,游戏就要开团了,我赶紧说:“宝宝,我电话要没血了,过会儿充了电给你打。”

对面楼的一个独居姑娘这几天都穿得很少出现在客厅,曼妙的身材一览无遗,令人心动。今天在楼下碰到她,我终于按捺不住,上前问道:“你家已经供暖了?”

我家狗丢了,这两天我发疯似的到处找。早上在公园遇见一个大叔,我问他有没有见过我的狗,大叔问:“是不是只金毛,还穿着黄色马甲?”我激动不已,一把抓住大叔:“对!对!你是不是看见它了?”大叔:“没!这是你第三次问我了!”

哥们昨天去相亲,对方上来就问:“家里介绍说你挺好的,你可以具体说说自己哪里挺好的吗?”哥们愣了片刻,说:“我一个人挺好的。”

昨晚喝大了,朋友让他的下属开车送我回家。到家后,我去冰箱拿出了两个石榴让他吃,小兄弟还客气地很一直说不吃不吃。我让他带走,他也没带,放在柜子上就赶紧回去了。今早我起来往柜子上一瞧,嘿,两个洋葱!

上小学时老师经常拖堂,同学们决定联名举报,我第一个签字!然后举报信上只有我的名字,和三十几个指印!

小时候家里穷,看别人家孩子吃煮鸡蛋特别馋 ,回家哭着也要吃。老妈告诉我:“小孩吃鸡蛋容易噎着,妈给你炒鸡蛋丝吃。”就这样,我愉快地吃了好几年的炒土豆丝。


神句 ONE

言承旭选择前天承认复合很聪明,如果再早点,不就要帮林志玲清空购物车了吗?

到了电商购物季,上网逛了逛,看看缺什么,看了一圈发现缺的是钱。

我姓东方,父亲希望我一生不败,所以给我取名东方老赢。

大多数人戴表不是因为时间观念好,而是想知道还有多长时间可以拖延。

上厕所尽量选择干净的马桶,因为你不知道手机什么时候会掉进去。

“篮球场上哪句话最能击垮对手?”“你的鞋是假的!”

别再追捧野味了,好吃的动物已经被人类养殖了,没养殖的肯定不好吃啊。

感谢马云,让我们在每年的光棍节忘记脱单,专心感受贫穷。

(部分笑话取自网络,如有侵权请联系删除)
--

※ 来源:·水木社区 http://m.newsmth.net·[FROM: 125.39.46.*]

16 Nov 11:39

大连地铁时报11.15

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.15
发信站: 水木社区 (Wed Nov 15 21:09:59 2017), 站内

小孩子任性,成年人认命

家有熊孩子两个,上午老婆出去让我看着,大的是十万个为什么,问这问那,小的比孙猴子还闹腾,看两个孩子比上一天班还累。快中午时,好不容易把两个小子弄睡着,老婆终于回来了。一进屋,老婆一脸关心地问我:“老公看孩子累吗?”我说:“太累了!”“那好吧,你去做饭,我来看会儿。”

相亲,女孩问:“你是做什么生意的?每月能赚多少钱?”我笑道:“我没做生意,在公司上班,月薪八千。”她:“八千工资对于单身狗来说省省还能生活,可结婚后你还要养我怎么办?”我愣了:“可我没想过要养你啊。”

昨天我在街上闲逛,看到老同学坐在劳斯莱斯里吃煎饼果子,我顿时就好羡慕,真希望有一天我也能吃得起煎饼果子。

只要舍得在健身上投入金钱,就一定会瘦下来。我有个朋友借钱买了几十万的私教课,现在每天被人追着还债,一个月瘦了50斤。

昨天我在给一家公司的女老总送快递,那家公司前台告诉我老总这段时间都不在深圳,要去北京待一段时间。我问:“要去北京拓展业务吗?”前台说:“不是,她买了很多好看的大衣,这边穿不了。”

别看有些人在人前有猫有狗,一副人生赢家的样子,其实他们背后还有车有房有存款,想出去旅游就出去旅游呢。

每天我和女朋友一起坐地铁下班。不知何时开始,地铁口总有个帅哥倚在跑车上对她眉目传情,女友先是无视,但帅哥和跑车每天准时出现,渐渐她脸上写满期待,对我越来越冷淡。直到那天,帅哥捧着红玫瑰问她:“离开他好吗?”“当然!”她很兴奋。他转向我:“她不爱你了,做我男朋友吧!”我接过了花束……

“双11”过了,在这个剁手的季节,我却并不想指责我那买买买的女友,而是感动至极。她总共买了24件东西,一共花了40365元,其中23件是给我买的!不说了,我现在去看看她那4万块的包长啥样。



笑出马甲线

@一切、随缘
小区楼下,一对住在这里的外地夫妻在吵架,说的都是方言,大家听不懂,但仍然有不少人围着关注。那男的不耐烦地吼:“你们看什么啊!听得懂吗就在那议论!”一个大哥怯怯地说:“我们就看个意境……”

@豆皮寿司
“这里有几种石头,你认得出哪个是雨花石,哪个是萤石,哪个是黑曜石,哪个是石榴石,哪个是月光石,哪个是玛瑙石吗?”“我怎么会知道!”“那你还真是六亲不认啊。”唐僧对孙悟空说。

@东土大唐三俗和尚
16 Nov 11:36

大连地铁时报11.07

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.07
发信站: 水木社区 (Wed Nov 8 06:24:10 2017), 站内

看不穿,是你清奇的脑洞
有一次,我带着3岁的女儿去银行存钱,晚上,女儿冲到刚进门的老婆身边,带着哭声说:“妈妈,怎么办啊!爸爸把很多钱都给那个阿姨了!”瞬间,老婆眼神透着杀气地看着我……

“或许现在就是一个透支的世界吧,透支身体去熬夜,透支钱去买东西,透支感情去爱,疯狂过后,却再也无法还原最初的样子。”“少废话,欠我的钱到底还不还?”

有钱人的脑回路果然与众不同。我和一个姐们吃东西,她是富二代,家里条件蛮好的,自己还买股票。她跟我说她去一个大公司当前台了,月薪几千,边说边微笑,开心之情溢于言表。我怀疑她家里是不是出啥事了,但是一看她依然开着豪车,似乎也没到山穷水尽的地步。我转念一想,她可能事业心起来了,女人就是要自强自立!我刚想夸她时,大姐自顾自地说:“我名牌包和衣服太多了,我想多一些人欣赏到它们。”

很久以前,我在家无聊地拿望远镜看外面,突然发现画面被分成一格一格的,像像素一样。当时我真的慌了,大脑一阵眩晕,不知所措地想自己该不会活在假的世界里吧……然后发现是因为纱窗没开。

为了方便和女友在一起,我们在快捷酒店办了张会员卡,用女友名字开的卡,留的是我的手机号。因为我工作忙,最近很少和女友去了,昨天我接到酒店的电话,说我们的卡升级成白金卡了,要核对信息。看来经济不景气,酒店也不好做啊,像我这样不常住酒店的都成了他们的重要客人了。

上小学的表弟和同学打架,老师让他回去叫家长。表弟硬气地说:“不用,我打得过他。”老师板着脸说:“必须叫家长来学校!和你打架的XXX已经回去叫他爸了。”表弟犹豫了一下,依然硬气地说:“两个我也打得过。”

在公交车上听见两个大妈在讨论生二胎的事。一个大妈说:“生二胎没啥用,孩子多了太累人。”另一个大妈说:“必须得生二胎!你看看武大郎,如果不是他妈妈生了武松,后来谁给他报仇啊?”

儿子3岁生日那天,趁他午睡,我买了条小狗回来,关笼子里放在床头柜上,还留了张纸条:宝贝生日快乐——爸爸。后来我出去买点东西,老婆来电话说儿子醒来后哭了,抓着笼子嚷:“爸爸,你怎么变成狗了!”



神句 ONE

我喜欢过的女生都有一个共同点,她们都跟我说:“你死心吧,我不会喜欢你的。”

谁能想到,我爸和我妈他俩的儿子,居然都是我!

世上最大的谎言就是旺铺转让,你有旺铺你舍得转让?

16 Nov 11:33

大连地铁时报11.05

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.05
发信站: 水木社区 (Mon Nov 6 06:09:17 2017), 站内

惊喜变惊吓,只要一句话

我家楼上住了一对小夫妻,经常为一些琐事大晚上吵吵闹闹,影响我休息。大前天晚上,楼上的妻子骂丈夫外出不锁门,导致家里丢了600块钱。前天晚上俩人又吵架,丈夫骂妻子车库门没关,车轱辘被人偷走两个。昨天晚上,他们又相互指责,说家里的电视被偷了是对方的责任。真的很烦,吵得我觉都睡不成了,以后再也不去他们家偷东西了。

陪老婆回娘家吃饭,我聊起了打篮球的话题,说自己怎样过人、投篮……丈母娘对老丈人说:“和你年轻时一样哈。”我说:“爸,您以前也爱打篮球?”老丈人:“我以前也和你一样,吃饭时话多。”

自从健身之后,我的饮食习惯就变了。以前吃美食想都不想就吃,现在要先看一看热量表,如果热量太高,我就含着眼泪吃。

以前我给一个美女当过备胎,她经常和我微信聊天,偶尔约我出来喝咖啡感慨一下人生,但从不跟我进一步发展。后来她说要结婚了,不能再和我联系,但她觉得我人不错,要把我介绍给她表妹。就这样,在她的撮合下,我和她表妹一见如故相识相知,最终成了她表妹的备胎。

本来在单位偷懒的时候,我还是有点愧疚的。但自从新的部门经理训诫我们说:“上班玩手机、看视频的时候想想你们的工资!”我偷起懒来就心安理得多了。

在柜台试口红,听见导购向路人女孩推荐眼霜:“什么?你还只用保湿眼霜?我跟你讲,女人过了25岁就要抗皱了,我23岁开始用这款眼精华,现在都27岁了,你看我眼角有皱纹吗?”女孩:“有啊。”

昨天我听说邻居家的老大娘和老大爷要闹离婚,我就纳闷了,都一把年纪了,怎么还闹离婚呢?后来才知道,前几天晚上停电,老大爷和老大娘找蜡烛,后来老大娘递给老大爷一根,老大爷点着了,结果响了。

我教我侄子做数学题,教了半天,他还是一窍不通。我没有放弃,而是找了几道同类型的数学题,启发侄子:“这几道题,都有一个相同点,你仔细看看,找出相同点就让你休息!”我侄子看了许久恍然大悟:“噢!这个相同点就是我都想不出来。”



神句 ONE

吾日三省吾身:不买岂不是更划算?

“为什么你总是喜欢看帅哥?”“我有男颜之瘾。”

趁好看的时候多照照镜子,毕竟这种错觉不是每天都有。

“‘双11’”时最该打折的是什么?”“自己的手。”

越长大越怀念以前和发小蹲在地上玩泥巴的日子,那时我蹲下去一点儿也不费劲。

16 Nov 03:08

大连地铁时报11.14

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.14
发信站: 水木社区 (Wed Nov 15 06:32:08 2017), 站内

那些年,我们见过的高级黑

我们寝室在宿舍开黑玩LOL。刚开局没多久,一个室友对象就打电话了,室友不接,继续玩,手机继续响,室友还是不接……来来回回5分钟。最后,室友被对面单杀两次后终于心态爆炸,双手狠狠向砸键盘,嘴里狂飙脏话,猛地一起身椅子差点被他带翻。我们没说话,都默默看着他,只见这货接起电话就是一句:“你在干嘛呀,我刚才刷牙去啦!”

为了活跃气氛,我每晚在饭桌上都会讲段子,但从来没人笑。我以为是因为我的段子不好笑,后来才知道,是因为我每天都一个人吃饭。

结婚那天,老公来迎亲,就在他把我抱出家门的时候,我妈哭了。我眼泪也止不住流了下来,回去抱住她说:“妈,我也舍不得你啊!”我妈哽咽着说:“终于把你嫁出去了……”

有一天,小猪佩奇哭着对妈妈说:“小朋友都说我长得像吹风机。”猪妈妈心疼地说:“乖,下次说话时离妈妈远一点,别把我头发吹乱了。”

闲来无事,刚刚看了世界财富排名,我是第6524571292名,相比昨天下降了3000万名,可能是昨晚花了两块五买啤酒的原因,以后要节约了!

我妈是个一辈子都没下过厨房的人,她做过的最接近“下厨”的一件事,就是往我的伤口上撒盐。

最近脱发有点严重,于是上个月托朋友帮我从德国带一个牌子的防脱洗发水。结果朋友太忙,昨天才发微信给我说他终于有空了,问我要几瓶,我说不用了。他说:“你在国内也能找到这个洗发水?”我说:“那倒不是,我就是已经用不着洗发水了。”

我6岁那年就离家出走了,在外面漂泊了10几年。半年前,我借了2万小额贷款,嘿,你还别说,不仅钱不用还了,他们还帮我把家人找到了。


神句 ONE

去电影院,一个妈妈带了三个小朋友,电影里的小兔子死了,兄妹三人抱头痛哭。

把快乐分享给了错的人,就成了显摆。

如果你真能看得出男朋友有没有潜力,直接做风投好了,还谈什么恋爱啊。

仔细想想,我上学的时候,学生之间有冲突,都是按照分数来划分责任。


笑出马甲线

@侯門
刚订婚那会儿,老婆把我拉进群,里面有老丈人、丈母娘、她和小姨子。当时丈母娘说:“欢迎,以后咱五个是一家人了。”第二天,他们四个又另外建了一个群。

@十个红指甲
把干净衣服放衣柜里了,脏衣服塞洗衣机里了,不太干净又不很脏的衣服也都统一随手扔在椅子上了,如此井井有条的生活习惯在我妈眼里怎么就成了没收拾呢?

@虹酒☆
15 Nov 03:58

Bash 脚本 set 命令教程

服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节。

set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题。本文介绍它的基本用法,让你可以更安心地使用 Bash 脚本。

一、简介

我们知道,Bash 执行脚本的时候,会创建一个新的 Shell。


$ bash script.sh

上面代码中,script.sh是在一个新的 Shell 里面执行。这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数。

set命令用来修改 Shell 环境的运行参数,也就是可以定制环境。一共有十几个参数可以定制,官方手册有完整清单,本文介绍其中最常用的四个。

顺便提一下,如果命令行下不带任何参数,直接运行set,会显示所有的环境变量和 Shell 函数。


$ set

二、set -u

执行脚本的时候,如果遇到不存在的变量,Bash 默认忽略它。


#!/usr/bin/env bash

echo $a
echo bar

上面代码中,$a是一个不存在的变量。执行结果如下。


$ bash script.sh

bar

可以看到,echo $a输出了一个空行,Bash 忽略了不存在的$a,然后继续执行echo bar。大多数情况下,这不是开发者想要的行为,遇到变量不存在,脚本应该报错,而不是一声不响地往下执行。

set -u就用来改变这种行为。脚本在头部加上它,遇到不存在的变量就会报错,并停止执行。


#!/usr/bin/env bash
set -u

echo $a
echo bar

运行结果如下。


$ bash script.sh
bash: script.sh:行4: a: 未绑定的变量

可以看到,脚本报错了,并且不再执行后面的语句。

-u还有另一种写法-o nounset,两者是等价的。


set -o nounset

三、set -x

默认情况下,脚本执行后,屏幕只显示运行结果,没有其他内容。如果多个命令连续执行,它们的运行结果就会连续输出。有时会分不清,某一段内容是什么命令产生的。

set -x用来在运行结果之前,先输出执行的那一行命令。


#!/usr/bin/env bash
set -x

echo bar

执行上面的脚本,结果如下。


$ bash script.sh
+ echo bar
bar

可以看到,执行echo bar之前,该命令会先打印出来,行首以+表示。这对于调试复杂的脚本是很有用的。

-x还有另一种写法-o xtrace


set -o xtrace

四、Bash 的错误处理

如果脚本里面有运行失败的命令(返回值非0),Bash 默认会继续执行后面的命令。


#!/usr/bin/env bash

foo
echo bar

上面脚本中,foo是一个不存在的命令,执行时会报错。但是,Bash 会忽略这个错误,继续往下执行。


$ bash script.sh
script.sh:行3: foo: 未找到命令
bar

可以看到,Bash 只是显示有错误,并没有终止执行。

这种行为很不利于脚本安全和除错。实际开发中,如果某个命令失败,往往需要脚本停止执行,防止错误累积。这时,一般采用下面的写法。


command || exit 1

上面的写法表示只要command有非零返回值,脚本就会停止执行。

如果停止执行之前需要完成多个操作,就要采用下面三种写法。


# 写法一
command || { echo "command failed"; exit 1; }

# 写法二
if ! command; then echo "command failed"; exit 1; fi

# 写法三
command
if [ "$?" -ne 0 ]; then echo "command failed"; exit 1; fi

另外,除了停止执行,还有一种情况。如果两个命令有继承关系,只有第一个命令成功了,才能继续执行第二个命令,那么就要采用下面的写法。


command1 && command2

五、 set -e

上面这些写法多少有些麻烦,容易疏忽。set -e从根本上解决了这个问题,它使得脚本只要发生错误,就终止执行。


#!/usr/bin/env bash
set -e

foo
echo bar

执行结果如下。


$ bash script.sh
script.sh:行4: foo: 未找到命令

可以看到,第4行执行失败以后,脚本就终止执行了。

set -e根据返回值来判断,一个命令是否运行失败。但是,某些命令的非零返回值可能不表示失败,或者开发者希望在命令失败的情况下,脚本继续执行下去。这时可以暂时关闭set -e,该命令执行结束后,再重新打开set -e


set +e
command1
command2
set -e

上面代码中,set +e表示关闭-e选项,set -e表示重新打开-e选项。

还有一种方法是使用command || true,使得该命令即使执行失败,脚本也不会终止执行。


#!/bin/bash
set -e

foo || true
echo bar

上面代码中,true使得这一行语句总是会执行成功,后面的echo bar会执行。

-e还有另一种写法-o errexit


set -o errexit

六、set -o pipefail

set -e有一个例外情况,就是不适用于管道命令。

所谓管道命令,就是多个子命令通过管道运算符(|)组合成为一个大的命令。Bash 会把最后一个子命令的返回值,作为整个命令的返回值。也就是说,只要最后一个子命令不失败,管道命令总是会执行成功,因此它后面命令依然会执行,set -e就失效了。

请看下面这个例子。


#!/usr/bin/env bash
set -e

foo | echo a
echo bar

执行结果如下。


$ bash script.sh
a
script.sh:行4: foo: 未找到命令
bar

上面代码中,foo是一个不存在的命令,但是foo | echo a这个管道命令会执行成功,导致后面的echo bar会继续执行。

set -o pipefail用来解决这种情况,只要一个子命令失败,整个管道命令就失败,脚本就会终止执行。


#!/usr/bin/env bash
set -eo pipefail

foo | echo a
echo bar

运行后,结果如下。


$ bash script.sh
a
script.sh:行4: foo: 未找到命令

可以看到,echo bar没有执行。

七、总结

set命令的上面这四个参数,一般都放在一起使用。


# 写法一
set -euxo pipefail

# 写法二
set -eux
set -o pipefail

这两种写法建议放在所有 Bash 脚本的头部。

另一种办法是在执行 Bash 脚本的时候,从命令行传入这些参数。


$ bash -euxo pipefail script.sh

八、参考链接

(完)

文档信息

14 Nov 11:54

大连地铁时报11.12

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.12
发信站: 水木社区 (Mon Nov 13 06:41:23 2017), 站内

我这条命,全靠买买买撑着

快到“双11”的时候,看到老婆的淘宝购物车里满满的东西,我灵机一动,把银行卡里的钱都转到了老妈的卡上。老婆如果要问起,我就说老妈急着用钱,过阵子再把钱转回来。转完钱后,我正暗自得意,老妈打电话给我,她在电话里激动地说:“哎呀,还是儿子孝顺,我正愁‘双11’你爸不给钱买东西呢!”

昨晚吃饭时,旁边坐了一对十分耿直的相亲男女,女孩:“那我直接问了哈,你现在每月能挣多少?”男孩:“我工资6000多,每月跟同事打麻将还能赢1000,很稳定。”

不要觉得在“双11”帮老婆清空购物车就好像过末日,你怎么不想想,要是不帮老婆清空购物车,可能就是你的祭日了。

下班后,我叫了一个快车,司机师傅打电话过来问我:“您在路边吗?有什么明显特征?”我说:“我手里拿了个iPhoneX,256G的!”

哥哥嫂子吵架了,我们都去劝。嫂子擤了下哭到不通气的鼻子,抹抹眼泪,看着窗外说:“要不是‘双11’还有几个快递在路上,我真想死了算了!”

专家指出:女人只要经常花钱,烦恼就会减少百分之80,情商和智商都会提高。我觉得这个专家很靠谱,但钱从哪来呢,专家没说。

如今的“双11”已经变味儿了,失去了传统节日的内涵。希望大家能不忘初心,不要因为买买东西就忘了自己还是单身这个事实。

牛仔裤可以说是最耐穿的裤子了,新的好看,穿旧了穿破了更好看。哪怕贵一点,但可以穿好多年,平均下来也很划算。我就因为这一点,才买了超多牛仔裤,以为能穿到老。可万万没想到,才第二年,我就变胖了不能穿了。牛仔裤,不曾输给沧桑,却败给了腰围。



神句 ONE

接下来这段时间,麻烦大家走路的时候注意脚下,别踩了我要吃的土。

“兄弟,我出车祸了,急需一笔钱。”“肇事司机是谁?什么车?”“我老婆,购物车。”

世界上最痛苦的三角恋:我爱食物,脂肪爱我。

社会调查数据显示越加班越单身, 越单身的人越会被安排加班。

“你是什么星座啊?”“金牛座,你是什么座的?”“我是肉做的。”

别看我表面上风风光光,其实背地里袜子已经掉到脚底了。

“你今天有点怪。”“哪里怪?”“怪好看的。”

每个成功男人的背后,都有一个女人,想要他的钱。

(部分笑话取自网络,如有侵权请联系删除)
--

※ 来源:·水木社区 http://m.newsmth.net·[FROM: 123.151.77.*]

07 Nov 08:11

大连地铁时报11.06

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.06
发信站: 水木社区 (Tue Nov 7 07:09:29 2017), 站内

没想到世间竟有这种操作!

有次我用微信转账转错了人,于是我开始刷屏,给他发个300多个表情,心想他看到几百条信息都是表情,应该就不会一条一条返回去看了。结果我如愿以偿,第二天,钱自动退回来了!

早期的Siri还没有那么智能。有一次晚上定闹钟,我说:“Siri,请叫我6点起床。”第二天,闹钟非但没响,还发现我手机把我的名字改成了“6点起床”。

女朋友跟我说,她爸喜欢铁观音,我找钢厂的朋友连夜给她爸浇了一个两米多高的,几十个人给她爸送家去了,我就想知道,我这么尽心尽力,凭啥她爸把我赶出来?

周末去餐厅吃饭,我正准备点餐,一个美女走过来腼腆地说:“那个,你看,今天情侣套餐优惠只要120元,单人套餐没有优惠要80元,可是我一个人,身上只带了60元,你也是一个人,可不可以……”我开心地说:“你是想我们一起拼个情侣套餐?”美女摇摇头:“可不可以借我20块钱?”

我突然有个大胆的想法:重新报名去读大学,4000元的学费和1000元的住宿费必然少于一年在外面的房租,然后我每天不去上课出去工作,最棒的是还有好多漂亮的女同学!这主意确实不错!

晚上跟媳妇玩石头剪刀布,输的要给赢的洗脚。我出剪刀她出布,然后她就说我输了。我问她为什么,她反问我:“5是不是比2大?”

一男同学喜欢坐在他前面的女生,想搭讪,可又不知怎么说,于是就用最原始的方法,借东西。“美女,你有橡皮吗?借我使使。”女生回头,把橡皮借给他。不一会儿,小刀、尺子等等也全借了。男生又想借,女生猛地回头:“你到底想干吗?”男生终于鼓起勇气,问她:“你有男朋友吗?”女生娇羞地回了一句:“干吗呀?”男生下意识地说:“借我使使。”

我们这的点心店招到学徒,第一件事一定是老板请客。老板把店里的各种点心一样不漏都拿出来,让学徒尽情吃,边吃边劝:“这个好,多吃点儿!那个贵,一定要尝尝!”要不了一顿饭,就能让学徒吃伤了,看见点心就泛酸反胃,再也不打偷吃的主意。这个故事告诉我们:细水长流才能吃得更多。



神句 ONE

有志者事竟成。创业失败100多次后,我终于成功地学会了安慰自己。

我们好多人就是像是路牌,站在路边给迷茫的人指路,自己却去不了想去的地方。

谈恋爱应该处处让着男朋友:让他做饭、让他洗碗、让他洗衣、让他赚钱。

能让我“废寝”的事还有几件,但能让我“忘食”的事几乎没有了。

04 Nov 06:21

大连地铁时报11.02

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报11.02
发信站: 水木社区 (Thu Nov 2 20:39:51 2017), 站内

清晨喝鸡汤,上班心不慌


有些年轻人可以P自拍照,但是不能太过分,不然别人看到真人之后不仅仅觉得你丑,还会觉得你虚伪。

不是我跟你们吹牛,我5年前考的驾照,上个礼拜才买车,这期间我一次车都没开过。别人都以为我忘记了交通规则,忘记了如何开车,然而我用事实证明了,开车也需要一种天分。闲话少说,出售一款2017年的英朗,刚刚开了20公里,驾照吊销了。

分期买东西其实很可怕。比如买一个喜欢的东西,每个月还那么一点钱,让我有种根本不用花钱就能得到它的错觉。

其实真正爱钱、把钱排在第一位的人并不多。有些天天喊穷的人,一下班便要放飞自我,说到工作就愁眉苦脸,他们喜欢懒,要远远胜过喜欢钱。

接触的60后、70后多了,会发现他们身上普遍有一种80后、90后没有的淡定。那种气定神闲、宠辱不惊,非大风大浪之后不能有,在人群中,60后和70后颇有定海神针的作用。他们也乐于和年轻人分享各种人生、职场的经验,丝毫不担心后生们会复制他们的成功。不过这一切的奥秘,用3个字就可以总结:买房早。

每天吃燕窝的女孩皮肤好,不是因为燕窝有多神,而是因为有钱。不用搬砖,心情好气色自然好,就连内分泌都正常,皮肤能不好吗?

你整天抱怨,说房贷压得你喘不过气来。但人生在世,凡事都得往好处想,你有房贷可还,起码证明你有房,而那些连房贷都没得还的人,很可能是全款买的。

有时想想还是以前好。来电话时,“啪”的一声翻盖打开,充满仪式感,谈了多少亿的项目大声讲出来,路人侧耳倾听。现在不行了,无论自己的世界是天塌了还是圆满了,都只是默默对着手机打字,外观上一点儿看不出来。


?

笑出马甲线


@easy

我一个朋友平时就喜欢做小程序,如今做了一年多,终于挣钱了,应该能有上千万……因为他家在北京丰台的房子要拆迁了。

@P

地铁上,我给一个白发苍苍的人让座。他一转头,露出了一张30多岁的脸,显然这是一个养生有方的程序员。

@糯米坨坨

昨晚散步,我牵着妈妈的手在大街上走,我摸着她手上厚厚的茧,心里一阵阵心酸。我问妈妈:“妈,你手上的茧是哪来的?”我妈淡淡地说了一句:“打麻将磨的。”



段子手荟萃


女人真的很奇怪,她们总嚷嚷着自己体内有湿气,吃红豆薏米,却能在浴室里呆上两个小时,而且还会涂上各种保湿霜。百度贴吧

04 Nov 06:18

牛b

by chandra
发信人: chandra (家添新丁), 信区: Joke
标 题: 牛b
发信站: 水木社区 (Thu Nov 2 19:36:32 2017), 站内

今天吃完饭,上小学的女儿问我,宇宙大爆炸之前是什么,
我一激动来了句:你很牛b啊,开始思考怎么高深的问题了!
我一看说错话了,就赶紧解释:爸爸是说你很厉害,问的问题很高深
结果女儿很不高兴的转过头跟老婆告状说:爸爸骗人,别以为我不知道newbie是什么
意思,newbie是很弱的意思。

--

※ 来源:·水木社区 newsmth.net·[FROM: 121.223.186.*]
04 Nov 06:18

地铁笑话(我是业余的)

by no1michelle
发信人: no1michelle (米米米), 信区: Joke
标 题: 地铁笑话(我是业余的)
发信站: 水木社区 (Thu Nov 2 07:55:37 2017), 站内

为你的机智疯狂打call

昨天开车,前面岔路突然出来一辆车,我赶紧往两边看了看,左边是一群大爷,右边是一个卖茶叶蛋的大娘,和几个去跳广场舞的阿姨,简直不给我活路啊!于是我一咬牙,撞上了前面的宝马。交警和司机大哥听了我的描述后沉默了,宝马司机大哥拿出烟,手指颤抖地点着了,狠狠地吸了一口对我说:“大妹子,合着你刚才根本就没想过踩刹车是吗?”

我晚上喜欢和女朋友在学校篮球场上手拉手散步。我1米85左右,我女朋友也就1米55吧,大晚上的,可能光线不太好,昨天一个男同学远远看见我,随即打招呼说:“哟,这么晚还出来打开水啊?”

女儿总说没小朋友陪她玩,我就逗她:“要不妈妈再生一个陪你玩?你是喜欢弟弟还是妹妹?”女儿想了会儿,反问我:“爸爸妈妈喜欢男孩还是女孩?”我回答:“当然是女孩呀!”女儿赶紧说:“那生个弟弟陪我玩吧,这样又有人陪我玩,你们又不会喜欢他,真好!”

“干IT太苦了,数据是越存越多,预算是越来越少,好基友是越来越多,女朋友是越来越少。想换一行怎么办?”“敲一下回车。”

儿子上初中,前几天跟我说:“很多同学抄我作业 ,抄一次5块钱!”我赶紧教育他不能给别人抄作业,抄作业没用,叫他同学好好听课。这熊孩子来了句:“让他们抄既能赚钱,中考的时候还能少几个竞争对手,为什么不让他们抄?”孩子你想得真长远啊……

我和一同事出差,上火车后,同事发现别人坐了他的位置,于是同事走过去说:“大哥,我不认识字, 麻烦你帮我看一下我的票在哪个位置?”那位大哥说:“兄弟,你这是站票,站哪儿都行!”

都说艺术源于生活,小时候我看见很多动画片里都有个变身用的宝贝,于是一直在寻找属于自己的变身宝贝。现在,我终于找到了,它就是修图工具。

以前的小学生有多单纯呢?这么说吧,我上小学时,有一次语文老师布置作业,布置完又多说了一句:“请大家回家着手写作。”所有人都听成了左手写作,却不敢有任何异议。第二天,语文老师收到了一次全班同学字迹最可怕的作业。




笑出马甲线

@浏阳人
我前两天去看电影,到早了,在商场逛了一圈还有不少时间,于是就花了80多元抓娃娃。最后,我帮娃娃机里的所有娃娃翻了个身……

@gtamjg
记得刚上大学那年,我一进校门就看到西餐厅。我心想,大学就是好,还有专门的西餐厅,直到去寝室时又看到了东餐厅,我才晓得是自己想多了。

@莫西比干人
25 Oct 05:11

关于Facebook 的 React 专利许可证

by 陈皓

随着Apache、百度、Wordpress都在和Facebook的React.js以及其专利许可证划清界限,似乎大家又在讨论Facebook的这个BSD+PATENT的许可证问题了。这让我想起了之前在Medium读过的一篇文章——《React, Facebook, and the Revocable Patent License, Why It’s a Paper》,我觉得那篇文章写的不错,而且还是一个会编程的律师写的,所以有必要把这篇文章传播到中文社区这边来。注意,我不会全部翻译,我只是用我的语言来负责搬运内容和观点,我只想通过这篇文章让大家了解一下这个世界以及专利相关的知识,这样可以避免你看到某乎的“怎么看待XXX”这类的问题时人云亦云,能有自己的独立思考和自我判断。;-)

这篇文章的作者叫Dennis Walsh,他自称是亚历桑那和加利福尼亚州的律师,主要针对版权法和专利诉论的法律领域。但是这个律师不一样,他更很喜欢商业和软件多一些。现在他用React/GraphQL/Elixir在写一个汽车代理销售相关的软件,而且已经发布到第2版了。

首先,作者表明,专利法经常被人误解,因为其实充满了各种晦涩难懂的法律术语,所以,作者用个例子来讲述专利的一个原则 —— 专利并不是授于让你制造或开发的权利,而是授予你可以排他的权利。(事实上似乎也是这样,申请专利很多时候都不是为了制作相关的产品,而是为了防止别人使用类似的技术制作相关的产品)

如果有公司X为铅笔申请了专利,而另一家公司Y为把用于铅笔的橡皮擦申请了专利。那么,公司X可以阻止公司Y来生产铅笔,而对带橡皮擦的铅笔没办法,但是公司Y的专利可以让公司X不能生产带有橡皮擦的铅笔。

所以,公司Y的橡皮擦专利又被广泛地叫作“Blocking Patent”。公司Y不能说他发明了铅笔,因为这是公司X的专利,但是,他们可以让公司X无法对铅笔做出某些改进。

于是,因为这种 Blocking Patent 存在,对于开源的公司是不利的,因为根据上面的那个例子来说,开源公司就是公司X,他们做了一个基础的软件,而公司Y在上面做了些改进,并注册成了专利,从而导致开源的公司X无法对它基础开源软件作出被公司Y专利阻止的改进,开源的公司X希望能够自由地使用公司Y的橡皮擦专利,因为毕竟是它发明了铅笔并放弃了铅笔的专利。

于是就出来了“专利反击条款”(Patent Retaliation Clauses)。一般来说有两种专利条款,一种是弱条款,一种是强条款。

Weak Patent Retaliation Clauses – 这种条款声明,如果许可证持有者用某个专利来打击许可证颁布者,那么专利就视为终止。用人话来表达就是,公司X做了一个开源铅笔,而公司Y注册了橡皮檫专利。此时,公司X做了一支带像皮擦的铅笔,而公司Y马上对公司X提起专利侵权诉讼。那么,公司Y就失去了对底层铅笔的专利控制。(正如前面所说的,公司Y的橡皮擦专利因为在起诉公司X的开源铅笔,而失去了对开源铅笔的专利排他权利)

Strong Patent Retailiation Clauses – 这种条款声明比“弱条款”要的更多。具体来说就是,任何专利声明终结许可证,而不管这个专利有没有和你基础的软件有关系。用人话来说就是,公司Y使用他们的热气球专利来起诉公司X,那么公司Y就失去了他们对铅笔的专利限制。

我个人理解起来,这两种条款看上去是防御性质的。

Facebook的React的Patent License如下:

The license granted hereunder will terminate, automatically and without notice,if you (or any of your subsidiaries, corporate affiliates or agents) initiatedirectly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporateaffiliates, (ii) against any party if such Patent Assertion arises in whole orin part from any software, technology, product or service of Facebook or any ofits subsidiaries or corporate affiliates, or (iii) against any party relating to the Software. Notwithstanding the foregoing, if Facebook or any of itssubsidiaries or corporate affiliates files a lawsuit alleging patentinfringement against you in the first instance, and you respond by filing apatent infringement counterclaim in that lawsuit against that party that isunrelated to the Software, the license granted hereunder will not terminateunder section (i) of this paragraph due to such counterclaim.

这些条款中和基础软件没有任何关系,所以,这个条款是“强专利反击条款”

在后面,本文的作者又解解释了,为什么React的“强专利反击条款”就跟没有似的。他在文中针对一些歇斯底里的言论,如:“Facebook不用害怕专利诉讼了,而且他可以随时偷袭你家的专利仓库”,也作出了一些解释来分析这个事。

Contractural Liability – 意思是说,专利方面的东西只会影响专利上的事,而不会影响和专利无关的事,React底层协议是BSD-3许可证还是会被保留。换句话说,React的“强专利反击条款”只生效于专利层面,而不会对非常专利的软件使用产生问题,如果和专利无关,React还是走BSD-3的许可协议。

Copyright Liability – 这个和Contractural Liablitity 一样。作者说,如果有人有特别的案例或是有说服力的论据来说明Facebook的这个条款会作用于非专利的地方,那么,请告诉他。

Patent Liability – 专利的责任和损害是两件事,非专业人士总是会把其搞混。

第一个问题是Liability, 要搞清这个事,得搞清“Patent’s Claims”,而不是这个技术的技术规格说明,技术规格说明和权力主张是两码事。作者说,现在的很多专利都是一些想法,很多投机份子随便一拍脑袋就发明出一个想法,然后就去注册专利了。但是可以被用来法律执行的只有“Patent’s Claims”(专利的权利主张),而不是那些想法。这些权利主张相当相当的晦涩难读,而且是会故意被模糊掉的,因为,当你清楚的定义了你的发明是什么,那么,就可以清楚的定义出来什么不是你的发明。比如:一个铅笔专利权利主张里说,“这一个用石墨和木头组合起来的写字工具”,那么,只要我不用木头和石墨来做组合,而是用塑料来做组合,那么我就不是专利侵权。所以,一般来说,专利主张是会更为通用一些,比如,“这是一个用于涂画表面的装置,其包括:与涂画端相连的握持端”。作者这里给了一个苹果公司的滑动解锁专利的示例。可以感受一下产品规格说明和专利权利主张完全是两码事。

专利这些事,在法律界里是非常非常困难作出评估的。所以,这个社会每年都会给律师们几十亿美金来一遍又一遍地回答这些问题,而且律师还经常回答错了。而对于美国的法律,对于专利诉讼会有一个叫Markman hearing的审前听证会(马克曼听证会),自从1996年美国最高法的“马克曼诉威斯幽仪器公司案”这个听证会就变成了一个惯例,美国联邦法院用这个听证会来向决定专利权利主张的解释,而且,上诉法院还经常性的推翻审判法院的裁决。(对于美国法律来说,一般是法官认证法律,陪审团认定事实,然而,对于专利而言,1996年的那个案件认为专利术语是一个需要法官决定的法律问题,而不是陪审团决定的事实问题。关于马克曼听证会的事,可以参看本文未尾的附录)

所以,要决定Facebook的专利责任,我们需要评估Facebook的专利及其权利主张,而不是技术规格说明。具体来说,要明确Facebook对于React这个底层技术的专利权利主张是什么?但是作者搜了一下,发现什么也没有找到。也就是说,对于USPTO(美国专利商标局)或法院来说,他们没办法对Facebook的这样没有为React申请专利的方式来执行任何和专利的诉讼,也就是说,Facebook的这个React License的条款,美国政府是无法在法律上支持的。

第二个问题是专利损害。就算是Facebook可以评估出来一个合法可执行的专利来保护React,对于专利损害也是很有问题的。作者说他到目前还没有发现一个开源软件被专利侵权的事,就算有这样的案例,也不会是这里说的这个事。作者觉得在这个事上操作起来就是一个笑话。

另外,作者认为,React 专利许可证这个事就是个纸老虎。因为,一方面,这个专利不像电信通讯里的那些专利,你拿不掉。作者认为要从你的代码中把React去掉虽然难,但是也不是什么很难的事,另外,要打这样的专利官司,一般来说,在美国至少要花100-200万美金的费用才能发起诉讼,而要胜诉则需要需要200多万到2000万美金的费用,你觉得你要花多钱才能把React从你的代码库中剔除?肯定比这钱少。

作者还认为,Facebook玩这个事虽然出发点不错,但是感觉并不聪明,从目前的情况看下来,就像他想咬你一口,但却没有牙。

后面,作者还说了一下,转成别的框架会不会有问题?比如:你用Preact/Vue或是你自研的东西?作者说,未必,如果Facebook真的为React注册了专利,比如:React里的组件技术、虚拟DOM渲染技术等等。那么,你用Preact/Vue或是带这样技术的自研的框架,那么,从你使用的第一天就在侵犯Facebook的专利权了。然而,使用React反而不会有这么大的风险,因为Facebook让你免费的用React。作者说,用别的框架的法律风险比用其它替代品的风险更高。

后面,作者也更新了一篇文章 《Using GraphQL? Why Facebook Now Owns You》,意思是,用React可能还好,但是用GraphQL就有问题了。因为找到了GraphQL的专利—— “Graph Query Logic”

后来我查了一下,我发现,React也有个相关的专利—— “Efficient event delegation in browser scripts ”,看上去和虚拟DOM渲染有关。Holy Shit!

好了,用还是不用React我也不知道,总之,这个世界比较复杂,我只是想借这篇文章来学习一下法律上的相关东西,欢迎听到大家的观点。

最后,请允许我调侃一下来结束本文——“不用担心React的许可证问题,因为前端不是一年半就用新的框架重写一次么?”哈哈。

更新:Facebook官方于20017年9月23日在其官方blog上发贴《Relicensing React, Jest, Flow, and Immutable.js》决定取消之前的带专利的许可证。

延伸阅读

马克曼听证会 – Markman Hearing

马克曼听证会的一些背景知识,下面的文字来源于《“马克曼听证”制度的由来及启示

与美国专利诉讼的悠长历史相比,1996年才经美国最高法院确立的“马克曼听证”(Markman Hearing,也称为Claim Construction,即权利要求书的解释)无疑是一项年轻的制度。但由于几乎所有的专利侵权诉讼中都会遇到涉案专利权利要求书的解释这一核心问题,且因“马克曼听证”结果往往清楚地预示了案件结果,经“马克曼听证”获得有利结论的一方一旦据此向法庭提起不审即判的动议,专利侵权诉讼往往可就此快速了结,因此该制度的确立成为美国专利诉讼历史上的一件大事。

“马克曼听证”制度的由来

“马克曼听证”制度确立之前,在专利侵权诉讼中的权利要求书解释,通常交由陪审团在对案件事实进行裁决时一并做出,且并不会在诉讼文件上单独就陪审团这一问题的判断进行记录。1991年,马克曼(Markman)先生因认为其拥有的专利号为RE33054的“干洗衣物贮存及追踪控制装置”专利权被Westview公司所侵犯,遂向宾夕法尼亚州东区联邦地方法院提起了专利侵权诉讼。

该专利是用扫描的方式,将客户的衣物编号扫描后输入电脑中做分类标示,并在衣物干洗过程中追踪衣物位置,干洗完成后自动将衣物放回客户固定的存贮位置。被告的产品则是同时运用扫描器和电脑两种方式,将客户干洗衣物的资料存入电脑并显示费用、日期等相关信息。本案陪审团的裁决认为被告装置构成对原告专利权利的侵犯,但该地方法院认为系争专利与被告装置在功能实施上并不一致,遂推翻陪审团的裁决,判决被告不构成侵权。

马克曼不服,于1995年向联邦上诉法院提起上诉,但其上诉理由仅为联邦地方法院错误地解释了陪审团关于专利权利要求书解释中某个词语的涵义。联邦上诉法院在审理该案时,将案件的核心问题定为两个:一是原告对于请求项解释有无权利请求陪审团裁决;二是联邦地方法院是否正确地解释了“Inventory”一词。该院多数法官经审理后认为,权利要求书范围的解释与确定,属于法律问题而非事实问题,因而属于法院权限,而不应交由陪审团决定,且此前将此问题交由陪审团确定并不妥当。同时,由于认为原告专利与被告装置存在实质功能上的差异,联邦上诉法院亦不认为被告构成专利侵权。少数持不同意见的该院法官主要是质疑这一结论违反了美国第七宪法修正案(即所有根据美国法律进行的普通法诉讼,只要争议金额超过20美元,即有要求陪审团审判的权利)。

马克曼不服,向最高法院提出上诉。1996年4月23日,美国最高法院就马克曼诉Westview器械公司案(Markman v. Westview Instruments, Inc. 517 U.S. 370 (1996))做出终审裁决,裁决认定:权利要求书的解释是联邦地区法院法官应当处理的法律问题,而不是应当由陪审团来认定的事实问题,尽管在解释权利要求书的过程中可能会包含一些对于事实问题的解释,且这样做并不违反第七修正案赋予给陪审团的权利。这一裁决标志着“马克曼听证”制度的正式确立。

“马克曼听证”制度的不足

该案判决是美国专利诉讼史上的一个重大转折。“马克曼听证”成为法官专门用于解释专利权利要求的一个经常性听证程序,用以解决专利侵权诉讼的核心问题。由于该听证并非普遍适用,因此,十几年来,联邦民事诉讼规则并未正式对其有任何规定,而是给予法院绝对的自由裁量权。但是,何时可以进行“马克曼听证”?如何进行?是否有必要进行?类似问题在一定程度上困扰了审理专利侵权案件较多的法院。

2001年,加州北区联邦地区法院率先制定了供本法院使用的专利审判专属规则(Patent Local Rules),其中第四部分即为权利要求书的解释程序(Claim Construction Proceddings),对“马克曼听证”的时间、流程、限制及当事人的义务均进行了规定。此后,各州纷纷效仿。目前,乔治亚州北区联邦法院、得克萨斯州东区联邦法院、得克萨斯州南区联邦法院、宾夕法尼亚州西区联邦法院等都制订了书面的“马克曼听证”程序指南。近年来,不断有新的案例在解释与细化着“马克曼听证”,如2006年的Wilson Sporting Goods Co.诉Hillerich & Bradsby Co.案,2005年的Phillips诉AWH Corp.案,2008年的Howmedica Osteonics Corp.诉Wright Medical Technology, Inc.案,这些司法实践大大拓展与丰富了“马克曼听证”使用的实体和程序规则,使之日渐成为美国专利诉讼中一个复杂、完备的司法程序。以至于竟然有人开发了模拟“马克曼听证”程序,只要你愿意,可以下载并训练,以熟悉和确保有真正的权利要求书解释时不会出现不利于自己的问题。

但是,该听证带来的问题也逐渐受到重视。有人质疑说该程序导致专利诉讼费用增加,因为“马克曼听证”通常会单独进行,且程序复杂,因此导致当事人花费大量的时间与精力,更为重要的是,由于40%至60%的联邦地区法院案件会在联邦巡回上诉法院被推翻,因此,花费巨大的“马克曼听证”似乎价值有限。同时,权利要求书的解释要求是不多不少,忠实于技术发明思想与发明事实,但由于地区法院分散,法官的相关技术知识不十分专业,将权利要求书解释这样的问题交给他们,难免会带来一些无法克服的问题。

“马克曼听证”制度的启示

我国民事诉讼中并无陪审团制度,案件的事实问题与法律问题均由法官审理与确定。在专利侵权诉讼中,对于案件中涉及到的技术问题可以通过专家鉴定等方式解决,但并不因此免除法官审理案件的义务,即法律问题的判断归于法官,事实的法律属性判断仍然归于法官。同时,权利要求书的解释在我国的专利侵权诉讼中并不是一个单独的程序,而是合并在案件审理过程中。因此,仅就我国的司法审判而言,“马克曼听证”制度并无直接的借鉴意义。

但是,对于那些已经走出和正在走出国门的企业来说,了解与掌握这一重要的专利诉讼程序却是极其重要的。通领科技集团的积极尝试充分证明了这一点,而且随着这一程序的不断成熟,美国国际贸易法院(ITC)也开始在审理时适用“马克曼听证”制度。所以,知道“马克曼听证”意味着什么,确保所提交的用于解释权利要求的文件确实充分,学会利用“马克曼听证”,无论是对于破解美国的专利诉讼威胁,还是为未来准备有效的法律武器,无疑都非常重要。(知识产权报 作者 魏玮)

 

(全文完)


关注CoolShell微信公众账号和微信小程序

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 寻找遗失儿童。 ===——
18 Oct 07:26

大连地铁时报10.8

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报10.8
发信站: 水木社区 (Sun Oct 8 19:40:00 2017), 站内

我的小长假,大概是假的吧
?

橘子一上市,就到了考验全家演技的时候了。小长假的一个晚上,全家坐在沙发上看电视,我妈若无其事地剥了个橘子,吃了一瓣然后递给我,我玩手机时顺手接过来扒了一瓣吃,我去!但我面上波澜不惊地递给爸爸,他吃后看了我一眼,又面无表情地递给我哥,然后我哥哥吃了后被酸得五官扭曲……成年人的世界就是这么可怕!


假期我去存钱,提了个塑料袋,里面全是钱。其实钱不多,就9000块,上面铺了3000块百元大钞,剩下的全是面额10块的。我一到银行,大堂经理看了我一眼瞬间热情起来,不用排队,直接让我去VIP室,又是倒茶又是递名片……直到我把钱拿出来那一瞬间,哎,真尴尬。


国庆长假也是婚礼高峰。外面的鞭炮声一响,我爸爸就在一旁喟然长叹:“女儿你听,那是什么?那是幸福团圆!真是好听的声音啊,真为这对新人开心啊,真为他们的父母快乐啊!”我在一边无言以对,只能缓缓鼓掌。


放假回家,我妈问我:“国庆假你咋不出去玩啊?”我:“这不想陪你们吗,而且满城都是外地游客,尽给我们添堵。”结果我妈说:“那你也该出门去给人家添堵啊,呆家里给你爹妈添堵算什么事儿?”


假期我回家心切,坐了一天的车,终于赶在饭点到了家。我一回家,我妈赶紧去下面,满满一大碗,有我爱吃的花生米、腌菜,还特意煎了个荷包蛋。因为我爸还没回家,我妈要等他一起吃,于是我就狼吞虎咽先吃了起来。刚吃完,我爸回来了,我妈从厨房里端出一锅人参炖鸡。


过节前,公司给我们发了1500元的手机代金券。我又加了几百块,买了一部智能手机,自己没舍得用,准备回去孝敬老妈!我把新手机拿给老妈后,得意地等着老妈夸奖我,结果她摆弄一会儿,把手机递给我说:“这好手机你自己用吧,我用你老爸给我买的就行,才3000多!”


放假,同事问我打算去哪玩,我说;“回归自然,找个农家院,享受新鲜的空气、纯朴的民风,体会日出而作、日落而息的原生态生活。”同事听了一脸羡慕。呵呵,我就不告诉他,我得回老家收几亩花生……


其实国庆节才是找对象的好日子。你若未嫁,他若未娶,赶紧上高速!都堵着呢,慢慢挑,从车型看财力、从车风看人品、从加塞看脾气、从憋尿时间看健康程度。



神句 ONE
?

“如何做到出淤泥而不染?”“污过淤泥就行了。”

这个中秋节我竟然没收到群发祝福,不禁感慨社交环境真是越来越好了。

18 Oct 07:21

换头术

1、

我读过一本医学畅销书《最好的告别》,作者是美国医生葛文德。

他的一个观点,令我印象深刻。他说,医学的进步改变了人们对于死亡的看法。人们不再把死亡当作不可避免的自然结果,而是归因于某种技术失败。某个治疗步骤出错了,或者技术还不够好,所以病人死了。

越来越多的人相信,死亡的原因是技术缺陷,而不是预料之中的事。死亡证明书的诊断结论,不会写死于老年,总是写着某种最终的近似原因----例如呼吸衰竭,或者心搏停止。

既然死亡是技术失败,而技术问题总可以用更好的技术解决,所以人们逐渐形成一种观念:衰老和死亡只有在反常的情况下才会发生,正常情况下是可以治疗和延迟的。

新闻媒体经常炫耀某个97岁的老人跑马拉松的故事,仿佛类似事例不是生物学奇迹,而是对所有人的合理期待。然后呢?当我们的身体不能满足这种幻觉时,我们就觉得好像需要为此感到惭愧 。

2、

我一直无法忘怀这个观点,技术是否可以阻止死亡?如果技术变得无比先进,人类是否真能将死亡推迟得足够久,活到200岁呢?

我越来越觉得,这是很有可能的。未来人类的寿命也许非常长,远超过自然的生理极限。

延长寿命的关键是什么?我认为主要就是一点:克服器官老化和衰竭,方法就是器官移植。目前,器官移植的成功率正变得越来越高,越来越多的器官可以移植。肺癌就换肺,肝癌就换肝,冠心病就换心,都有办法救回来。

台北市长柯文哲曾经是台大医院的外科权威,在一次演讲中,讲过两个他亲手处理的病例。一个女孩九天没有心跳,全靠体外循环维持生命,最后还是撑到心脏移植,活了过来;另一个病例更厉害,心脏由于严重的细菌感染都烂了,只好拿掉,没心脏撑了16天,心脏移植以后也活了下来。

随着手术技术的成熟、抗排异药物的完善、人造器官的出现,可以想象,未来的器官移植终将像拔牙那样简单易行、安全可靠。

3、

目前为止,只有一个器官,从来没有人尝试过移植,那就是脑袋。

医学上,死亡的定义就是脑死亡。也就是说,如果大脑死了,就算身体的其他部分还活着(心脏还在跳动),这个人也是死了。反过来说,如果其他部分坏死了,但是大脑还有意识,那么这个人就是还活着。

大部分人死的时候,大脑的功能其实都是好的,思维依然敏捷,就是身体的其他部分不行了,导致大脑养分供不上,于是先陷入昏迷,然后再死亡。

如果头部移植可以成功,那么人的寿命就会有本质的提高。躯干不行了,脑袋就移植到另一个躯干上,于是就可以接着活。

4、

头部移植的难度无疑是极高的,血管和神经都要正确连接。一个人的大脑如何指挥另一具身体,没有人知道能不能实现。但是,技术是那么地不可思议,我觉得没有理由怀疑可能性,未来是一定可以做到头部移植。

事实上,1970年就有人尝试,一只猴子的脑袋移植到另一只猴子身上。手术后猴子活了三天,被认为实验成功。

迄今为止,人的大脑移植还从来没有实验过。有一位意大利神经科医生 Sergio Canavero 宣称2017年底前,就要完成第一例头部移植手术。他还宣称,已经在一条狗身上实验成功,将脊髓神经跟大脑连接起来,让这条瘫痪的狗重新恢复了行动能力。

他还找到了一位俄国志愿者,此人患有退化性疾病,不能行走,不能照料自己,类似英国物理学家霍金的情况,因此愿意割下自己的脑袋,让医生安装在另一具躯体上。

Canavero 医生声称,手术的第一步将是冰冻大脑和身体,阻止脑细胞死亡。然后切开脖子,将关键的动脉和静脉将连接到管子上。在进行移植之前将切断患者的脊椎。当肌肉和血液供给成功连接之后,病人将昏迷一个月时间来限制新移植头颅的活动,同时将通过电刺激让脊椎新连接得到强化。这位野心勃勃的医生相信,物理疗法将让接受头部移植手术的病人在一年内下床走路。

医学界普遍不相信这个实验,认为这不过是另一场伪科学的闹剧。但是,没有一个科学家说,头部移植是绝对不可能的。

5、

展望未来,几乎可以肯定,人类将不再是纯自然的产物,很可能一部分器官和肢体是自然的,另一部分是人工合成材料。这既是为了替换坏掉的器官,也可能是为了追求更强的功能,比如安装电动的碳纤维假肢,老年人就可以健步如飞,登高山如履平地。

美国发明家、《奇点迫近》的作者、谷歌公司工程总监雷蒙德·库兹维尔(Raymond Kurzweil)说过一句著名的话。

"虽然我像别人一样热爱自己的身体,但是如果我能依靠硅基材料活上200岁,我会毫不犹豫地放弃肉体。"

未来,器官移植和换头术一旦成熟,人的寿命可能会翻倍增加。那时,只要保住脑袋就可以了,其他部分就不太重要了,因为可以换。动画《Futurama》里面,人甚至连躯体都不需要了,就是一个头安装在底座上那样活着。

到了那个地步,人与机器就将合为一体:机器给了人更长的寿命,人给了机器灵魂。

(说明:本文选自我正在写的新书《未来世界的幸存者》,点击这里免费阅读全书。)

(完)

文档信息

18 Oct 07:16

开源许可证教程

作为一个开发者,如果你打算开源自己的代码,千万不要忘记,选择一种开源许可证(license)。

许多开发者对开源许可证了解很少,不清楚有哪些许可证,应该怎么选择。本文介绍开源许可证的基本知识,主要参考了 OpenSource.com (12)。

一、什么是开源许可证

开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。

版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。

二、开源许可证的种类

目前,国际公认的开源许可证共有80多种。它们的共同特征是,都允许用户免费地使用、修改、共享源码,但是都有各自的使用条件。

如果一种开源许可证没有任何使用条件,连保留作者信息都不需要,那么就等同于放弃版权了。这时,软件可以直接声明进入"公共领域"(public domain)。

根据使用条件的不同,开源许可证分成两大类。

  • 宽松式(permissive)许可证
  • Copyleft 许可证

三、宽松式许可证

3.1 特点

宽松式许可证(permissive license)是最基本的类型,对用户几乎没有限制。用户可以修改代码后闭源。

它有三个基本特点。

(1)没有使用限制

用户可以使用代码,做任何想做的事情。

(2)没有担保

不保证代码质量,用户自担风险。

(3)披露要求(notice requirement)

用户必须披露原始作者。

3.2 常见许可证

常见的宽松式许可证有四种。它们都允许用户任意使用代码,区别在于要求用户遵守的条件不同。

(1)BSD(二条款版)

分发软件时,必须保留原始的许可证声明。

(2) BSD(三条款版)

分发软件时,必须保留原始的许可证声明。不得使用原始作者的名字为软件促销。

(3)MIT

分发软件时,必须保留原始的许可证声明,与 BSD(二条款版)基本一致。

(4)Apache 2

分发软件时,必须保留原始的许可证声明。凡是修改过的文件,必须向用户说明该文件修改过;没有修改过的文件,必须保持许可证不变。

四、Copyleft 许可证

4.1 Copyleft 的含义

Copyleft 是理查德·斯托曼发明的一个词,作为 Copyright (版权)的反义词。

Copyright 直译是"复制权",这是版权制度的核心,意为不经许可,用户无权复制。作为反义词,Copyleft 的含义是不经许可,用户可以随意复制。

但是,它带有前提条件,比宽松式许可证的限制要多。

  • 如果分发二进制格式,必须提供源码
  • 修改后的源码,必须与修改前保持许可证一致
  • 不得在原始许可证以外,附加其他限制

上面三个条件的核心就是:修改后的 Copyleft 代码不得闭源。

4.2 常见许可证

常见的 Copyleft 许可证也有四种(对用户的限制从最强到最弱排序)。

(1)Affero GPL (AGPL)

如果云服务(即 SAAS)用到的代码是该许可证,那么云服务的代码也必须开源。

(2)GPL

如果项目包含了 GPL 许可证的代码,那么整个项目都必须使用 GPL 许可证。

(3)LGPL

如果项目采用动态链接调用该许可证的库,项目可以不用开源。

(4)Mozilla(MPL)

只要该许可证的代码在单独的文件中,新增的其他文件可以不用开源。

五、常见问题

本节回答一些开源许可证的常见问题。

5.1 什么叫分发(distribution)?

除了 Affero GPL (AGPL) ,其他许可证都规定只有在"分发"时,才需要遵守许可证。换言之,如果不"分发",就不需要遵守。

简单说,分发就是指将版权作品从一个人转移到另一个人。这意味着,如果你是自己使用,不提供给他人,就没有分发。另外,这里的"人"也指"法人",因此如果使用方是公司,且只在公司内部使用,也不需要遵守许可证。

云服务(SaaS)是否构成"分发"呢?答案是不构成。所以你使用开源软件提供云服务,不必提供源码。但是,Affero GPL (AGPL) 许可证除外,它规定云服务也必须提供源码。

5.2 开源软件的专利如何处理?

某些许可证(Apache 2 和 GPL v3)包含明确的条款,授予用户许可,使用软件所包含的所有专利。

另一些许可证(BSD、MIT 和 GPL v2)根本没提到专利。但是一般认为,它们默认给予用户专利许可,不构成侵犯专利。

总得来说,除非有明确的"保留专利"的条款,使用开源软件都不会构成侵犯专利。

5.3 什么是披露要求?

所有的开源许可证都带有"披露要求"(notice requirement),即要求软件的分发者必须向用户披露,软件里面有开源代码。

一般来说,你只要在软件里面提供完整的原始许可证文本,并且披露原始作者,就满足了"披露要求"。

5.4 GPL 病毒是真的吗?

GPL 许可证规定,只要你的项目包含了 GPL 代码,整个项目就都变成了 GPL。有人把这种传染性比喻成"GPL 病毒"。

很多公司希望避开这个条款,既使用 GPL 软件,又不把自己的专有代码开源。理论上,这是做不到的。因为 GPL 的设计目的,就是为了防止出现这种情况。

但是实际上,不遵守 GPL,最坏情况就是被起诉。如果你向法院表示无法履行 GPL 的条件,法官只会判决你停止使用 GPL 代码(法律上叫做"停止侵害"),而不会强制要求你将源码开源,因为《版权法》里面的"违约救济"没有提到违约者必须开源,只提到可以停止侵害和赔偿损失。

(完)

文档信息

27 Sep 03:19

大连地铁时报9.25

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.25
发信站: 水木社区 (Mon Sep 25 19:53:23 2017), 站内

智商感人,笑果拔群
?

哥们在他岳父的汽修厂上班。前段时间,哥们开一辆跑车出厂,油门踩猛了撞得一塌糊涂,后来大费周章才摆平这事。哥们想引咎辞职,他岳父说:“自家人说什么辞职呢,在这干到退休再走吧,早走一天你都赔不完。”

闺蜜:“昨天我被老师喊去学校了。”我:“怎么了?女儿又惹事了?”闺蜜:“她骗老师说昨晚家里进了小偷,把她作业擦了!”

我哥快结婚了,叫我过去帮他写请柬。我写了半天总觉得哪里不对劲,检查后又没什么毛病。写了快40张的时候,嫂子看了看,说:“你还是写你哥的名字吧,咱两不大可能了。”

闺蜜腿受伤了,我去医院看她,她两眼发红地说:“找男人要看清楚点,像我老公这样的,千万不能要。”我一惊,连忙问:“腿是他打的?”闺蜜恨恨地说:“今天他居然敢躲,我一脚踹桌子腿上了。”

我小时候有一次,偷了家里两块钱买吃的,在小卖部被我爸碰个正着。一顿暴揍后,老爸问我:“钱都锁在抽屉里,你怎么偷的?”我只好如实回答:“我看见妈妈把钥匙藏在皮箱子底下了。”第二天,我妈把我又是一顿胖揍:“胆子越来越肥了啊,敢一次偷20块!”

晚上10点多,从楼上传来一个女人的咆哮声:“什么关系!啊?什么关系!说!到底什么关系?”我那颗八卦的心疯狂地跳动起来,趴到窗台上支起耳朵认真地听着下文。女人继续气愤地喊道:“是互为相反数啊!”我默默地关上了窗户。

最近公司经营不景气,搞得大家疑神疑鬼一惊一乍的。公司内网页面显示“正在载入”,好几个人都抱怨说看成了“正在裁人”。

同事告白失败,是彻底的失败。妹子表示就算全世界就剩一个他男人,也不会喜欢他。同事伤心了一整天,我们都劝不了他。老板知道后直接火了,对同事说:“你是不是傻!一天啥活没干,想滚犊子是不?智商也有问题,世上要是就剩你一个男的,那不是她选你,是你选她!”

神句 ONE
?

玩任何游戏都可以不开背景音乐,唯独斗地主不行。

其实人生没有苦尽甘来,只有苦不尽甘偶尔来。

我喜欢把前任和现任的名字都纹在身上,这就是我没有纹身的原因。

老板:“你想象力怎么那么不丰富?”我:“穷限制了我的想象力。”

每日三省吾身,发现都是别人错了。

老天为你关了窗又关了门,代表他要为你开空调了。

没有收拾残局的能力,请不要放纵善变的情绪。

自从我加了同事微信,就回归了QQ空间。
--

26 Sep 03:46

大连地铁时报9.24

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.24
发信站: 水木社区 (Sun Sep 24 22:41:28 2017), 站内

亲戚那么多,总有坑爹的
?

我在医院打点滴,因为无聊就拿着iPad看电影。不一会儿,有个护士姐姐坐我旁边津津有味地盯着屏幕看,我也没太注意。十几分钟后,只见这姑娘默默起身,把我只剩五分之一的吊瓶调节器动了一下,然后很淡定地继续坐下哈哈大笑,于是我又扎了半个小时。

有个讨厌的同事跟我借单反,我说坏了。然后她提出借卡片机,我说坏了。她又提出借iPad,我说也坏了。她很激动地质问道:“你怎么什么东西都是坏的!”我说:“因为男人没有一个好东西。”

刚上初中那会,我老被一个校霸欺负,忍无可忍我就和他约架。那一次,对方来了三四十个人,其中还有十多个混子,而我就独自一个人……那一战之后,祭奠了我在学校的地位,他们永远忘不了我家那二十多条狗。

心机是什么?是我憋了一夏天也没怎么露腿,然后在初秋的时候开始穿裙子,现在满大街能比我白的不多了。

初中班主任治早恋很有一手,她不批评不谈心不请家长不棒打鸳鸯,就把俩人安排成同桌,并且跟他们说好要坐到毕业。刚开始,小情侣们当然都开心得要死,整天粘粘糊糊卿卿我我,但日久见人心,基本不到半年就扛不住了,最后无一例外哭着求着要调开,然后班主任一脸冷漠地说:“你们给我扛到毕业……”

昨天打王者荣耀,一个小学生开局就骂另一个小学生,因为打字不过瘾,就开了语音,骂了十多分钟,另一个小学生最后只说了一句:“嘿嘿,反弹!”骂人的小学生竟然哭了……

爸妈吵架,冷战了两天。昨天中午老爸给我两百块钱,说是从来没给过我零花钱,补偿一下。我毫不犹豫地就把钱花光了。晚上我妈一进家,我爸就赶过去吼:“还管不管你儿子了!学会从家里偷钱了,你桌子上的钱都被他花了!”然后他们合伙打了我一顿,和好了。

人的寿命果然与所在地域关系甚大,就说今天早上做煎饼果子的师傅吧,40多岁了看上去还很健康,就他这手艺要搁在天津,早就被打死了。


神句 ONE
?

数学这东西,是三分靠天赋,七分靠努力。剩下的九十分就真的没办法了。

我昨天买了一张彩票,今天却找不到了,有一种与500万擦肩而过的感觉。

刷朋友圈时,发现好多人的iPhone8都到了,为什么我的还没到?是因为我没买吗?

“每天吃那么多,你真的想瘦吗?”“享受啊。”

女孩闹脾气,肯定是你做错了什么。不见得是刚发生的,或许是一年前甚至更久。

你们知不知道秋分是什么意思?是从此夜长梦多。

26 Sep 03:45

如何读懂火焰图?

软件的性能分析,往往需要查看 CPU 耗时,了解瓶颈在哪里。

火焰图(flame graph)是性能分析的利器。本文介绍它的基本用法。

一、perf 命令

让我们从 perf 命令(performance 的缩写)讲起,它是 Linux 系统原生提供的性能分析工具,会返回 CPU 正在执行的函数名以及调用栈(stack)。

通常,它的执行频率是 99Hz(每秒99次),如果99次都返回同一个函数名,那就说明 CPU 这一秒钟都在执行同一个函数,可能存在性能问题。


$ sudo perf record -F 99 -p 13204 -g -- sleep 30

上面的代码中,perf record表示记录,-F 99表示每秒99次,-p 13204是进程号,即对哪个进程进行分析,-g表示记录调用栈,sleep 30则是持续30秒。

运行后会产生一个庞大的文本文件。如果一台服务器有16个 CPU,每秒抽样99次,持续30秒,就得到 47,520 个调用栈,长达几十万甚至上百万行。

为了便于阅读,perf record命令可以统计每个调用栈出现的百分比,然后从高到低排列。


$ sudo perf report -n --stdio

这个结果还是不易读,所以才有了火焰图。

二、火焰图的含义

火焰图是基于 perf 结果产生的 SVG 图片,用来展示 CPU 的调用栈。

y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。

x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。

火焰图就是看顶层的哪个函数占据的宽度最大。只要有"平顶"(plateaus),就表示该函数可能存在性能问题。

颜色没有特殊含义,因为火焰图表示的是 CPU 的繁忙程度,所以一般选择暖色调。

三、互动性

火焰图是 SVG 图片,可以与用户互动。

(1)鼠标悬浮

火焰的每一层都会标注函数名,鼠标悬浮时会显示完整的函数名、抽样抽中的次数、占据总抽样次数的百分比。下面是一个例子。


mysqld'JOIN::exec (272,959 samples, 78.34 percent)

(2)点击放大

在某一层点击,火焰图会水平放大,该层会占据所有宽度,显示详细信息。

左上角会同时显示"Reset Zoom",点击该链接,图片就会恢复原样。

(3)搜索

按下 Ctrl + F 会显示一个搜索框,用户可以输入关键词或正则表达式,所有符合条件的函数名会高亮显示。

四、火焰图示例

下面是一个简化的火焰图例子。

首先,CPU 抽样得到了三个调用栈。


func_c 
func_b 
func_a 
start_thread 

func_d 
func_a 
start_thread 

func_d 
func_a 
start_thread

上面代码中,start_thread是启动线程,调用了func_a。后者又调用了func_bfunc_d,而func_b又调用了func_c

经过合并处理后,得到了下面的结果,即存在两个调用栈,第一个调用栈抽中1次,第二个抽中2次。


start_thread;func_a;func_b;func_c 1 
start_thread;func_a;func_d 2

有了这个调用栈统计,火焰图工具就能生成 SVG 图片。

上面图片中,最顶层的函数g()占用 CPU 时间最多。d()的宽度最大,但是它直接耗用 CPU 的部分很少。b()c()没有直接消耗 CPU。因此,如果要调查性能问题,首先应该调查g(),其次是i()

另外,从图中可知a()有两个分支b()h(),这表明a()里面可能有一个条件语句,而b()分支消耗的 CPU 大大高于h()

五、局限

两种情况下,无法画出火焰图,需要修正系统行为。

(1)调用栈不完整

当调用栈过深时,某些系统只返回前面的一部分(比如前10层)。

(2)函数名缺失

有些函数没有名字,编译器只用内存地址来表示(比如匿名函数)。

六、Node 应用的火焰图

Node 应用的火焰图就是对 Node 进程进行性能抽样,与其他应用的操作是一样的。


$ perf record -F 99 -p `pgrep -n node` -g -- sleep 30

详细的操作可以看这篇文章

七、浏览器的火焰图

Chrome 浏览器可以生成页面脚本的火焰图,用来进行 CPU 分析。

打开开发者工具,切换到 Performance 面板。然后,点击"录制"按钮,开始记录数据。这时,可以在页面进行各种操作,然后停止"录制"。

这时,开发者工具会显示一个时间轴。它的下方就是火焰图。

浏览器的火焰图与标准火焰图有两点差异:它是倒置的(即调用栈最顶端的函数在最下方);x 轴是时间轴,而不是抽样次数。

八、参考链接

(完)

文档信息

22 Sep 14:01

大连地铁时报9.21

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.21
发信站: 水木社区 (Thu Sep 21 22:49:13 2017), 站内

亲戚那么多,总有坑爹的
?

昨天我下楼买东西,结果看到邻居家的孩子在他爸的车上写东西。我很好奇,就问他:“你干嘛呢?”那小家伙可怜地看着我说:“我爸揍我了,你别告诉他是我写的。”我走近一看,车门上用小石子写着几个大字:老爸是坏蛋!晚上,隔壁孩子的哭声响彻整个单元。

快下班时,同事老张接了个电话,说是有家族聚餐。一个小时后,我看见他在朋友圈里发了六个字:大意了!是相亲!

我堂哥考上了重点大学,我爸让上初中的我去跟他学。第一天晚上,我有点困,要求只写一道题,写完就放我走。堂哥为人爽快,一口答应,他说错一道就要补做两道,我也爽快地答应了。夜深了,我做完剩下的一百多道题就可以回家了,千万别再错了……

我上的是医科大学,有一年期末考试,我带病坚持去了。我爸不放心,在教室门口观望,结果我老师不监考了,跑出去和我爸聊天,聊完了说:“放心好了,一屋子的医生,不会出事的。”

玩英雄联盟时认识了个同城的哥们,最近经常一起出来玩,每次我打电话叫他他马上就能到。后来我问他:“你不是在XX公司(我们当地一家大企业)上班么,怎么出来的?”他说:“我请假比较容易。”我说:“怎么请假的?教教我。”那哥们说:“我就说,爸,我出去下。”

中医真的蛮惨的。打开电脑,99%网友在骂你伪科学,关了电脑回到生活,所有的亲戚朋友,哪怕邻居,都恨不能把手伸出来让你把把脉。

儿子上小学二年级,学校布置作业让做一个水果拼盘。其实家长都知道,这种手工课作业不可能让小朋友独立完成,为了不给孩子丢脸,家长都会亲自上阵。我也拜托我在某星级酒店做厨师的发小帮忙雕刻个胡萝卜像,还说为了像小学生做的,最好雕得粗糙一些。结果全校评比的时候,我看到了一座半人高的冰雕凤凰和水果刻的百鸟朝凤,被冷动车运了过来……

记得小的时候,老师要我们交资料费,老妈给我的钱被我弄丢了。我告诉老妈以后,她非说是被我买东西吃了,还揍了我一顿。过了大概一个礼拜,钱在我床头找到了,结果我妈又说我不长脑子,要打打长点记性,就又揍了我一顿。


神句 ONE
?

上个月我们吃了治疗精神分裂的药,现在我一个人好孤单。

“怎么会有男生追女孩追到一半不追的?”“你倒是给个进度条啊。”

我一直在想一个问题:算命到底算文科还是理科呢?

情不知所起,一往而深;钱不知所去,一贫如洗。

19 Sep 01:53

大连地铁时报9.17

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.17
发信站: 水木社区 (Sun Sep 17 22:11:11 2017), 站内

笑不出来,因为主角是我
?

逛街的时候内急,于是我去了公共厕所,谁知居然忘了带纸。我听见声音隔壁有人,于是敲了敲旁边的厕所,说:“隔壁哥们,能给点纸吗?我忘记带了。”等了10多秒,听到一妹子尴尬的声音:“大哥,咱俩谁进错厕所了?”

我早上坐公交,看到一个少妇带着小男孩上车,我果断让座。少妇对男孩说:“快谢谢美女。”小男孩呆萌地左右环顾一眼,然后走到旁边一个美女面前,犹犹豫豫地说:“谢谢!”

我跟老公吵架了,家里的狗狗帮我去咬老公的腿。气消了以后,是感觉自己确实有错,想跟老公道歉,但不好意思开口,就写了个纸条:我错了,请原谅。我让狗狗把纸条叼给老公,我在后面偷看,只见老公接过纸条,深情地抚摸着狗狗的头,说:“在这个家里,还是你理解我啊!”

周末,我在外婆家玩,突然想吃榴莲却又懒得出去买,于是拿起外婆的手机学着外婆的口气给老妈发了条微信:“闺女,妈想吃榴莲了,你回来记得带一个。”发完我就喜滋滋地等着老妈买榴莲回来。可没一会儿,我自己的电话响了,只见老妈给我发来一条似曾相识的微信:“闺女,妈想吃榴莲了,你回来记得带一个……”

我毕业找工作,碰到一个不错的机会,是做降噪处理的。跟我妈商量时,我说我不太想去,虽然待遇不错。但是噪音对身体的危害很大。结果老妈白了我一眼:“没钱对身体的危害更大。”

抵御周一抑郁症的最好药方是,周六周日加两天班。这样周一只不过是“又一个普通的工作日”而已了。

生病了,家人不在身边,只好独自办住院。护士填表格时抬头问我:“病号呢?”我一脸懵懂地翻着手里的一堆单子和卡,紧张地问:“什么……什么号?”结果护士像看弱智一样地看着我,瞬间有种绝世的孤独。

记得高三那年,我和哥们几个在澡堂洗澡。洗澡中途停热水了,还停电,几个人顿时无聊,就打起了水仗。突然,我有点尿急,就在黑暗中默默解决,结果我旁边的哥们大喊:“哇,来热水啦!”后来我每次提起这件事,都激动地想从轮椅上站起来。


笑出马甲线
?

@王小神奇
我同事是一个200多斤的山东大汉。昨天他说要开始跟我一起减肥,结果今天自己做了蔬菜沙拉带来,我打开一看:大葱!

@陈三嵗i
聚会上,我给朋友们讲段子。当我讲到“那一刻她面如死灰”时,一位福建的朋友打断了我,他不懂为什么一个女人的脸可以像一辆自行车。

@光消失的地方
17 Sep 01:48

大连地铁时报9.14

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.14
发信站: 水木社区 (Thu Sep 14 20:50:31 2017), 站内

那些时间教会我们的……
?

我见过一对极品夫妻,结婚后吃干玩净,贷款买车买房,用负资产的方式拴住对方,两人的债还到60岁也还不完。谁要是想拆散他们得做好背几十年债的心里准备,什么海誓山盟都弱爆了。

公司所在的大厦进行消防演练,我顺便把老板的猫咪抱了下去,同事都拍照笑我。第二天,公司开会,老板跟财务说下个月给我涨500块工资。

和儿子一起吃饭,他看我老吃鱼头,就问我:“你是不是特别爱吃鱼头?”我放下筷子对他说:“这是你爷爷给我做的榜样。小时候咱家穷,只有过年才吃鱼,你爷爷就只吃鱼头,把鱼肉都给我。现在咱们的生活条件虽然好了,但优良传统不能忘啊!”儿子想了想又问:“那时候你们吃的也是剁椒鱼头吗?”

有一天,一对男女在聚会上相识,聊得非常投机。临别前,男人留下电话号码,说:“如果多年以后你仍未嫁人,请打电话告诉我。”多年后,女人仍未找到合适的对象,想起那次难忘的聚会,便找出那个男人的号码拨了出去。接着,电话那头传来一个声音:“您好!这里是XX婚姻介绍所,请问您需要什么帮助?”

有人穿地摊货,却戴七八万的手表;有人还用iPhone4没换,但吉普森的电吉他买了签名款。不要拿你的价值观去丈量别人的实力,你觉得牛的东西,也许人家真没兴趣,就像我,现在正在喝白水,你就真以为我没钱吗?没错,我就是没钱。

我曾经看过地方台的一个电子香烟广告,熟悉的电视购物套路,旁白义正辞严地描述那款电子烟多么多么好,有几句让我印象深刻:本产品的烟弹里保留了能让人神清气爽的烟碱,不含焦油尼古丁等有害物质。那时候我还是信任电视的年纪,就把这个当成知识记了下来。上初中后,有了电脑和互联网,我上去一搜:尼古丁,俗称烟碱。

我一个朋友,20岁那年爷爷去世,据说去世的爷爷最大的遗憾是没有看到孙子谈恋爱结婚。如今四年过去了,这位朋友已经前前后后给他爷爷烧了5个女朋友的照片了。

“我小时侯不爱吃菜,后来我妈给我把肉和菜乱炖在一起,我就爱吃菜了。”“嗯,我小时也不爱吃菜。”“你妈也给你做乱炖了?”“我妈把我乱打一顿,我也爱吃了。”


神句 ONE
?

今天老婆说我突然听话了很多,让她想发脾气摔手机都找不到借口。

“老公我嗓子疼。”“啊,那怎么办?你想吃点什么?”“我想买个包润润嗓子。”

妹子们,别吵吵买iPhoneX了,这是面部解锁啊,深夜想玩手机还得起来化妆!

14 Sep 23:58

大连地铁时报9.13

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.13
发信站: 水木社区 (Wed Sep 13 20:37:22 2017), 站内

我们仙女就这个脾气
?

回老家,坐长途大客,中途上来个大妈坐在我旁边了,然后就管售票员要方便袋,说晕车要吐。司机大哥调皮地来了句:“没事,换个首歌就好了。”然后车里响起了《最炫民族风》,果然,大妈方便袋也没拿,一路都没吐。

和初中同学闲聊,说到当年风靡一时的小浣熊水浒卡,我们几个都羡慕其中一个男生的运气好,无论多么稀缺的卡,他都有三四张,手里新卡也总是源源不断。后来他披露了当年的内幕:因为长得帅,所以班级里暗恋他的女同学们私下玩命吃干脆面,获得的卡都偷偷给他,而我等样貌平凡之辈只能靠自己一袋一袋拼搏……非常扎心。

我妈最近更年期,心情特别不好。前几天她把我掉在地上的头发全都捡起来,然后扔在了我的猫身上,并恶狠狠地说:“让你也尝尝粘一身别人毛的滋味!”

跟朋友唱歌,朋友点了歌问我:“《丑八怪》一起唱吗?”我心爱的女生先回答:“他不会唱。”看到她竟然这么了解我,我感动得差点哭了。结果她接着说:“但是他可以演啊!”

我平时发一些无病呻吟的朋友圈,就是为了告诉大家:不要以为妹子只要长得漂亮就一帆风顺了,我也是有很多烦恼的!

和女朋友异地恋,冬天时我准备给她买一个围巾,打电话问她要什么颜色的,结果女朋友说:“我不要围巾,从来没戴过,你省点钱吧。”当时我一阵感动。过了两天,女朋友打电话问我:“我围巾到哪了?咋还没到?”

开学没多久,妈妈就打电话说她想我了。我问她:“你还记得我在家的时候,坐在电脑前不动,吃午饭才站起来,喊我帮忙也不理你,超过3天咱俩必吵架吗?”我妈说:“记得。”我又问:“那你还想我回来吗?”我妈说:“不想了。”

当年,我让我妈给我买iPhone4,我妈说:“买iPhone4?我还给你买iPhone8呢!”等了这么多年,终于到了我妈兑现承诺的时候了!


神句 ONE
?

江南皮革厂是全世界最大的企业,因为它倒闭那么多年还有卖不完的货。

希望各位土豪都去买新iPhone,这样我和你们的贫富差距就可以缩小8000元了。

对喜欢的女生告白说想和她在一起,没料到她毫不犹豫答应了,说:“下辈子吧。”

外卖App真是划时代的发明,解决了以前我去饭店一个人点好几个菜的尴尬。

每次在火车站听到广播提示“严禁携带易燃易爆物品上车”时,我都想把女友扔了。

军训最痛苦的,不是晒、不是累,而是不能带手机,每天走那么多步却无法炫耀。

14 Sep 04:15

大连地铁时报9.12

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.12
发信站: 水木社区 (Tue Sep 12 20:58:19 2017), 站内

智商一下线,形象全不见
?

我们高中时,经常有老师在夜里抽查学生谈恋爱。有一次,一个老师逮到一对情侣,就问:“你们什么关系?”男学生:“兄妹。”老师:“什么兄妹啊?”男生:“俩爹不一个娘!”老师:“哦,那你们走吧!”

昨天我用滴滴打车,竟然来了辆顶配的宝马X6!我问司机:“开这么好的车还来跑滴滴,你也不差这几块钱,什么原因呀?”司机说:“我就喜欢看你们这些穷人羡慕的样子。”我目瞪口呆:“哦,这样啊,我也就喜欢使唤你们有钱人,前面左拐一下。”

别人的周末:全国到处飞,各种电音节,夜店蹦迪,风尘仆仆,一个个跟名媛一样。你的周末:宅在家里不出门,灰头土脸煲剧,疯狂叫外卖,零食水果一起点,各种暴饮暴食,熬夜玩手机、打游戏……你说你把日子过成这样,跟在天堂有什么区别?

晚上加班中突然停电,大伙都起哄要回家,经理说:“不准走,马上来电!”我只好抱着手机玩了会儿。不知道过了多久,终于来电了,我大喊:“来电了!”然后环顾四周,空荡荡的办公室只有我一人,就连经理也都走了!

当年我摆地摊时,我旁边摆摊的是一个女大学生,她不靠家里供学费,就靠自己摆摊赚生活费的事迹深深地吸引了我。渐渐地,我们的感情不断发展,就差捅破那层窗户纸了……直到有一天,她头上缠着纱布来摆摊,然后她跟我哭诉她男朋友打她、拿她的钱去挥霍的事情。我听了感觉特别难受,这么好的人竟然会遇人不淑!老天爷真是瞎了眼!我实在控制不住自己的情绪,反手给了她一耳光,愤怒地说:“无耻!你都有男朋友了,还要接受我的追求!你想脚踏两条船啊?”

我上高中那会儿,网瘾特别大。我们学校旁边碰巧有一个网吧,有一次,我们哥几个去上网,到前台充钱的时候,看见一个牌子,写着:充100送100!,活动只有三天。哥几个当时就激动了,每人都充了200块,还让鼓动别的同学来充钱,第四天网吧关门了。

现在有的人稍微取得一点成绩就沾沾自喜、觉得自己特别能耐。我不一样,我什么都不做也觉得自己特别能耐。

婚礼前一天,她给他发消息:我什么样子你都见过,包括我没穿衣服的样子,然而你却见不到我穿婚纱的样子了,明晚亲手脱下我婚纱的人竟然不是你……他回:给我打十万块钱,不然我就截图发给你老公。

神句 ONE
?

不会说话的人都有一个共同点:话多。

和同事比赛憋气,我输了。我只能坚持两分钟,而他到现在还没上来呢。

13 Sep 01:12

卡辛斯基的警告

1、

1978年5月25日,美国西北大学的工程教授巴克利·克利斯(Buckley Crist),收到了邮政局退回的一个包裹。

这个包裹寄往芝加哥大学,但是收件人"查无此人"。克利斯教授不记得寄过它,可是发件人却写着自己的名字。他叫来了学校的保安。保安打开了包裹,里面是一颗炸弹,立刻爆炸了。保安身受重伤。

此后的18年,这样的案件一再发生。凶手一共寄出了16枚邮件炸弹,共炸死3人,炸伤23人。袭击对象主要是大学的理工科教授,所以凶手被称为"大学炸弹客"(Unabomber)。

FBI 想尽办法要抓住凶手。十几年的调查中,动用了500名特工,误抓了200多名嫌疑犯,查访上万民众,接了2万多通检举电话,花费500万美元,但是一无所获。凶手非常小心,没有留下任何线索。这个案件成了 FBI 历史上最昂贵的调查之一。

2、

1995年4月,凶手又一次作案,一次性寄出了四样东西:两个邮件炸弹,炸死了加州林业协会的总裁吉卜特·莫里,炸断了耶鲁大学计算机科学教授大卫·加勒特的几根手指;一封警告信,警告1993年诺贝尔奖获得者遗传学家理查·罗伯特和菲利普·夏普,要求他们立刻停止基因研究;一篇发给《纽约时报》的长达3.5万字的文章,承诺如果美国主流媒体一字不改地全文刊登,他就将永久停止炸弹袭击。

FBI 局长和美国司法部长最终同意刊登这篇文章。1995年9月19日,它发表在当天的《纽约时报》和《华盛顿邮报》上,题目叫做《论工业社会及其未来》(Industrial Society and Its Future)。

读者惊讶地发现,这居然是一篇充满思辨的哲学论文,作者明显受过学术训练。论文声称,工业革命带来的是人类的灾难,技术使人类丧失自由,最终将导致社会的动荡甚至毁灭,人们应该摧毁现代工业体系。这就是凶手为什么袭击大学教授的原因,因为他们推动了技术的发展。

更让人吃惊的是,这篇论文很有说服力。许多人开始认真思考作者的观点,主流的知识分子杂志(比如《大西洋》、《纽约人》)专文讨论它。那位被炸断手指的耶鲁大学教授大卫·加勒特承认,文章的推断不无道理,工业文明时代,人类的未来,也许真的险恶重重。Java 语言的发明人计算机学家 Bill Joy 则说,他对文章预言的未来深感困扰。艺术家更是深受影响, 后来的许多小说和电影(比如《黑客帝国》),都能看到这篇论文的影子。

3、

论文发表以后,FBI 收到一条线索:有人举报,该文的写作风格和论点,很像出自他的弟弟泰德·卡辛斯基(Ted Kaczynski)之手。

1996年4月3日,卡辛斯基在蒙大拿州被逮捕,他住在远离人群的荒野之中,自己搭建了一个小木屋,里面堆满了炸弹原料。至此,邮包炸弹案宣告破案。

卡辛斯基的人生很不寻常。他生于1942年,从小就具有超人的数学天才, 16岁被哈佛大学数学系录取。

1962年进入密歇根大学攻读数学博士,只用了几个月就拿到了博士学位。指导教授说他的博士论文十分深奥,全美只有十几个人能看懂。25岁时,他被加州大学柏克莱分校聘为助理教授,是该校史上最年轻的教授。

卡辛斯基在柏克莱只待了不到2年,就辞职了,没有任何理由。他从此脱离学术界,过上了离群索居的生活,1971年,在父母的资助下,他在蒙大拿州一个偏僻的山区盖了一间小木屋,搬到那里去住了。屋子里没有电灯、电话、自来水。平日里他吃自己种的菜、猎捕的食物,晚上点蜡烛看书,砍柴做饭取暖。1978年,他在那里寄出了第一个邮件炸弹,攻击目标是在图书馆里面随机选择的。

被捕后,卡辛斯基拒绝了律师为其辩护。1998年,被判处终身监禁,不得保释。

4、

《论工业社会及其未来》这篇论文值得细细阅读,它对人类现状和未来的分析描述,是非常震撼的。

关于人类的现状,作者的第一句话就是:"工业文明带给人类的是极大的灾难。"

"工业文明极大地增加了发达国家的人口预期寿命,但也破坏了社会的稳定性,令生活空虚无谓,剥夺了人类的尊严,导致了心理疾病的扩散,还严重地破坏了自然界。"

新技术的最大问题,就是剥夺人类的自由。"自由与技术进步不相容,技术越进步,自由越后退。"

"新技术改变社会,最后人们会发现,自己将被强制去使用它。比如,自从有了汽车,城市的布局发生了很大改变,大多数人的住宅已经不在工作场所、购物区和娱乐区的步行距离之内,他们不得不依赖汽车。人们不再拥有不使用新技术的自由了。"

一项新技术诞生后,不太可能被拒绝使用,因为"每一项新技术单独考虑都是可取的",然后人类就会依赖它。

"电力、下水道、无线电话......一个人怎么能反对这些东西呢?怎么能反对数不清的技术进步呢?所有的新技术汇总到一起,就创造出了这样一个世界。在这个世界中,普通人的命运不再掌握在他自己手中,而是掌握在政客、公司主管、技术人员和官僚手中。以遗传工程为例。很少人会反对消灭某种遗传病的基因技术,但是大量的基因修改,会使人变成一种人工设计制造的产品,而不是自然的创造物。"

设想一下,如果基因技术变得成熟和普及,那么政府将不得不管制这种技术,因为万一被滥用,后果不堪设想。这样的话,个人就没有选择,只能接受政府管制,其程度将是前所未有,因为政府将可以管到你的基因结构。

工业社会要想正常运作,必须遵循一整套严格的规则,这导致"现代人都被一张规则之网所笼罩,在所有重要方面,个人的行为都必须服从这些规则。"这导致所有人在本质上都高度类似。

"今天,在技术发达地区,人们的生活方式十分相像。芝加哥的一个基督教银行职员,东京的一个佛教银行职员,莫斯科的一个共产党银行职员,他们彼此之间的日常生活十分相像,而他们的生活与1000年以前人们的生活却非常不同。这就是技术进步的结果......"

最终,"技术完全控制地球上的一切,人类自由基本上将不复存在,因为个人无法对抗用超级技术武装起来的大型组织。只有极少数人握有真正的权力,但甚至就连他们的自由也是十分有限的,因为他们的行为也是受到管制的。"

5、

关于人类的未来,卡辛斯基假设 "计算机科学家成功地开发出了智能机器,这些机器无论做什么事都比人类强。在这种情况下,大概所有工作都会由巨大的、高度组织化的机器系统去做,而不再需要任何人类的努力。"

这时可能会有两种情况发生。"一种是允许机器在没有人类监督的情况下,自已做出所有的决策,另一种是人类保留对于机器的控制。"

"如果我们允许机器自己做出所有的决策,人类的命运那时就全凭机器发落了。人们也许会反驳,人类决不会愚蠢到把全部权力都交给机器。但我们既不是说人类会有意将权力交给机器,也不是说机器会存心夺权。我们实际上说的是,人类可能会轻易地让自己沦落到一个完全依赖机器的位置,沦落到不能做出任何实际选择,只能接受机器的所有决策的地步。随着社会及其面临的问题变得越来越复杂,而机器变得越来越聪明,人们会让机器替他们做更多的决策。仅仅是因为机器做出的决策会比人的决策带来更好的结果。最后,维持体系运行所必需的决策已变得如此之复杂。以至于人类已无能力明智地进行决策。在这一阶段,机器实质上已处于控制地位。人们已不能把机器关上,因为我们已如此地依赖于机器,关上它们就等于是自杀。"

就算人们想尽办法,保留对机器的控制权,结果也会很糟。

"另一方面,也可能人类还能保持对机器的控制。在这种情况下,一般人也许可以控制自己的私人机器,如他的汽车或计算机,但对于大型机器系统的控制权将落入一小群精英之手----就像今天一样。由于技术的改进,精英对于大众的控制能力将会极大提高,因为人不再必需工作,大众就成为了多余的人,成为了体系的无用负担。如果精英集团失去了怜悯心,他们完全可以决定灭绝人类大众。如果他们有些人情味,他们也可以使用宣传或其他心理学或生物学技术降低出生率,直至人类大众自行消亡,让这个世界由精英们独占。"

"或者,如果精英集团是由软心肠的自由派人士组成的,他们将注意保证每个人的生理需求都得到满足,每一个孩子都在心理十分健康的条件下被抚养成人,每一个人都有一项有益于健康的癖好来打发日子,每一个可能会变得不满的人都会接受治疗以治愈其'疾病'。当然,生活是如此没有目的,以致于人们都不得不经过生物学的或心理学的改造,以去除他们的权力欲,或使他们的权力欲'升华'为无害的癖好。这些经过改造的人们也许能在这样一个社会中生活得平和愉快,但他们决不会自由。他们将被贬低到家畜的地位。"

6、

退一步说,如果前面的假设不成立,人工智能没有取得成功,人的工作还是必要的,但是"即使这种情况,机器也将承担越来越多的简单工作,而低能力的工人将越来越过剩(正如我们所见,这种事已经发生了。许多人很难或根本找不到工作,因为他们由于智力或心理原因,而不能达到体系所需要的训练水平)。"

"对于那些找到工作的人,就业的要求会越来越高。他们将需要越来越多的训练,越来越强的能力,他们将不得不越来越可靠、越来越规矩、越来越驯服,因为他们将越来越像巨型有机体的细胞。他们的任务将越来越专门化,因而他们的工作在某种意义上也将越来越脱离真实世界,仅集中于现实的一块小碎片。体系将使用一切可以使用的心理学或生物学手段来设计制造人类,使之驯顺,使之具有体系要求的能力。"

机器接管了大部分具有真正重要性的工作以后,留给人类的(或者说普通人有能力从事的)都是一些相对不那么重要的工作。

"例如有人建议,大力发展服务业可以给人类提供工作机会。这样人们就可以把时间花在互相擦皮鞋上面,可以用出租车带着彼此到处瞎转,互相为对方做手工艺品,互相给对方端盘子等等。人类如果最终以这样的方式结局,那对于我们来说也实在是太可怜了,而且我们怀疑有多少人会觉得这样的无意义的忙碌等同于充实的生活。他们会去寻找危险的其他渲泄途径(毒品、犯罪、邪教、仇恨群体等),除非他们经过生物学或心理学的设计改造后适应了这种生活方式。"

7、

卡辛斯基的结论就是,未来要么人类无法幸存下来,要么个人空前地依赖大型组织,空前地"社会化",人类的生理和心理是设计和改造的结果,而不是自然的产物。

唯一的解决方法就是放弃科学技术,"把这个腐朽的体系整个扔进垃圾堆,并勇敢地承受其后果。"

"我们希望已经说服了读者,体系无法通过改革来调和自由与技术。唯一的出路是摒弃整个工业-技术休系。这意味着革命,不一定是武装起义,但肯定是激烈而根本的社会性质变化。"

卡辛斯基认为,这个体系是由技术人员为了自己的利益和声望在推动前进。"体系需要科学家、数学家与工程师,否则就无法正常运作。"因此他选择这些人作为袭击目标。这样做当然是邪恶的,但是他对于人类命运的警告却理应受到重视。

卡辛斯基反复提及,引入新技术一定要慎而又慎。

"一项新技术被引入社会时,将会引发一长串其他变化,这些变化之中的大部分是不可预见的。历史经验告诉我们,技术进步给社会带来新问题的速度,远比它解决旧问题的速度要快。技术已将人类带入了一条无法轻易逃脱的死胡同。"

技术会有我们难以预测的长期后果。比如,抗生素的目的是消灭细菌,但是大量使用后却产生了难以杀死的超级细菌,人们不得不限制抗生素的使用;再比如,医疗技术提高了人类的寿命,但也因此导致了地球的人口激增、社会老龄化、生育率下降等重大的社会变化,这些恐怕都不是技术的发明者能想到的。如果新技术(比如机器人技术、基因工程、纳米技术)被恐怖主义组织掌握,后果就更可怕。如果不是真人,而是机器人在街头发动恐怖袭击,那会是怎样的情景?

距离《论工业社会及其未来》的发表,已经过去了20多年,互联网和人工智能都变成了现实,基因技术开始萌芽。人类对于新技术的入迷简直到了无以复加的地步,恨不得越多越好,一项新技术还在实验室中,人们就开始计划如何尽快形成生产力,占领尽可能多的市场。卡辛斯基的预言似乎一步步正在变成现实,人类正毫不在意地亲手加速自己的毁灭。

(说明:本文选自我正在写的新书《未来世界的幸存者》,点击这里免费阅读全书。)

(正文完)

======================================================

《论工业社会及其未来》原文摘录

工业革命极大增加了城市规模和城市人口比例,而人群聚集会增加压力与攻击性。

技术变革导致现代社会的变化十分迅速,因此整个社会不存在稳定的框架和价值观。

有些人急于拯救自由却不愿牺牲技术带来的所谓好处,他们会提出天真的新式社会构想来调和自由与技术。

所有人都理所当然地认为,每一个人都必需向技术的需要低头,而且理由十分充分:如果人的需求被摆在了优先于技术需要的地位,就会出现经济问题、失业、短缺甚至更糟。在我们的社会当中,"精神健康"的概念主要被定义为在多大程度一个人能够根据体系的需要行事并且不会流露出承受精神压力的迹象。

经济体系所能容纳的企业数是有限的,我们大多数人只有成为别人的雇员才可以生存。

工业-技术体系可能幸存也可能崩溃。假如该体系幸存下来,可能最终将会降低生理与心理的痛苦水平,但在此之前必须经历一段漫长而痛苦的调整期,而且人类与众多其他生命体也将付出惨重代价,永远沦为社会机器上的齿轮。更有甚者,假如这个体系幸存下来,将会导致不可避免的后果:没有任何方法能够改革或改进这一体系,使之不至于剥夺人的尊严与自主。

假如这一体系崩溃,结果依旧会十分痛苦。但是体系规模越大,崩溃造成的结果就越可怕。因此假如真要崩溃的话最好赶早不赶迟。

所以我们主张发动针对工业体系的革命。这场革命可能使用或不使用暴力,可能突然完成也可能在几十年时间里相对循序渐进地进行。我们无法预测这一点。但是我们的确为那些憎恨工业体系的人们勾勒了一套十分宽泛的方法,从而为反对这一特定社会形式的革命铺平道路。这不是一场政治革命。革命目标并非推翻政府,而是颠覆现存社会的经济与技术基础。

一般来说科学家都是这样。可能其中也有少数例外,但总体而言他们的动机既不是好奇也不是造福人类,而是完成权力过程的需要。其他动机对于许多科学家来说也有作用,例如金钱与地位。

科学技术也构成了群体权力运动,许多科学家都通过认同这一运动来满足自己的权力需求。

因此科学盲目地前进,不考虑人类种族的真正福祉或任何其他标准,仅仅服从科学家以及提供研究资金的政府官员与企业高管的心理需求。

体系需要科学家、数学家与工程师,否则就无法正常运作。

遗传工程的伦理规范事实上将成为管制人类遗传构造的手段。一部分人(多半是上层阶级)将决定如此这般的遗传工程合乎"道德",如此这般的做法则不道德,因而他们将在实际上将自己的价值观强加于整个人口的遗传构造。即使伦理规范是以完全民主的方式选择出来的,多数族裔也会将他们自己的价值观强加于那些很可能对于如何 "道德地"运用遗传工程另有看法的少数族裔。真正能够保护自由的伦理规范只能是一条,那就是禁止任何人类遗传工程。而我们可以十分有把握地说,这一点恰恰不可能在技术社会中得到实现。任何将遗传工程贬低成配角的规范都不可能维持下去,因为生物技术的巨大力量所产生的诱惑是无法抗拒的。特别是在大多数人看来,大量生物技术的应用显然且肯定是有益的(可以根除身体与精神疾病,赋予人们当今世界所需要的能力)。基因技术必将不可避免地得到大规模应用,但应用方式只能与工业-技术体系的需求相一致。

技术之所以是如此强有力的社会力量的另一个理由是,在给定社会的条件下技术进步只会不可逆地朝一个方向前进。只要某项技术发明被引进,人们就往往会对其产生依赖,除非它被某种更先进的发明所取代。人们不仅仅作为个人依赖这项新技术。甚至体系作为一个整体都会依赖它。(例如请想像一下,如果没有了计算机,今天的体系会怎么样)因此,体系只能朝向更加技术化的方向移动。在不至于颠覆整个技术体系的前提下,技术将会不断地逼迫自由后退。

技术的进步十分迅速并在许多方面威胁自由(拥挤、规章制度、个人对于大型组织越发严重的依赖、宣传与其他心理学技术、遗传工程、通过监视设备和计算机侵犯隐私,等等),阻挡任何一项对于自由的威胁都需要一场单独的社会斗争。那些想要保卫自由的人会被无数的新攻势及其发展速度所压倒,他们会变得微不足道并停止抵抗。分别反击这些威胁是无效的。只有把技术体系作为一个整体来反击才有成功的希望,但这就是革命而不是改革了。

人们倾向于想当然地认为,由于革命带来的变化比改革大,所以革命也就比改革更难发动。实际上,在某些条件下革命比改革容易得多。这是因为一场革命运动能够激发出人们极大的献身热情,而一场改革运动却不能。一场革命运动许诺一下子解决所有问题并创造整个新世界;它提供人民为之甘冒风险、甘作牺牲的理想。由于这些理由,推翻整个技术体系要比对技术的某一部分----如遗传工程的应用发展----进行有效、持久的限制容易得多。在适当的条件下,许许多多的人会热情地献身于推翻工业技术体系的革命。正如我们提到的那样,寻求限制技术的某些方面的改革者是为了避免不良后果而工作。然而,革命者是为了获得强力的报偿----实现其革命理想----而工作,因此他们比改革者更努力且更执著。

现代社会不是去改变那些使人们抑郁的条件,而是给人们抗抑郁药。

但另一方面,请假设今后几十年的压力超出了体系的承受能力。如果体系崩溃,可能会有一个混乱时期,"动乱年代",就像在过去各个时代历史所记载的那样。不可能预见动乱年代最后会产生什么结果。但无论如何人类会被赋予一个新机会。最大的危险是工业化社会很可能在崩溃后不几年就开始重组其自身,肯定会有许多人(特别是权力饥渴型的人们)急于重新开动工厂。

工业体系将人类贬低到了被奴役的状态,而憎恨这种被奴役状态的人则面临两个任务。第一,我们必须增强体系内的社会紧张态势,以加快其崩溃或把它弱化到足够程度,使得反对体系的革命成为可能。第二,当体系充分弱化时,我们必须发展并宣传一种反对技术和工业社会的意识形态。当工业社会崩溃时,这种意识形态将有助于保证其残余被粉碎到无法修复的地步,这样体系就无法重组。工厂将被捣毁,技术书籍将被烧掉,等等。

工业体系的崩溃不会纯粹是革命行动的结果,它不会那么难以抵御革命的攻击,除非它自身内部的发展问题导致了极为严重的困难。因此如果体系崩溃,那么它或是自发崩溃,或是部分自发、部分由革命者促发的崩溃。如果崩溃是突如其来的,许多人都会死去,因为世界人口已如此过分膨胀,离开了先进技术就无法养活自己。甚至即使崩溃足够缓慢,人口的减少可以主要通过出生率的降低而不是死亡率的提高而实现,非工业化的过程也多半是极度混乱和极度痛苦的。幻想通过平稳控制的有序方式逐步废除技术是天真的,特别是要考虑到技术爱好者们的负隅顽抗。那么,致力于体系的崩溃是否因此就十分残酷呢?也许是,也许不是。首先,除非体系本来就已经陷入了深重的困难,无论如何都很可能最终自行崩溃,否者单靠革命者是不可能强行使其崩溃的。而且体系发展得规模越大,崩溃的后果就越严重。因此加速体系崩溃的革命者或许反倒控制了灾难的规模。

其次,我们必须权衡斗争与死亡和丧失自由与尊严这两方面的得失。对于我们之中的许多人来说,自由与尊严比长寿和避免肉体痛苦更重要。再者,我们早晚会死,死于为生存或为某一事业而战,强于活得空虚而无目的。

第三,体系的存续所带来的痛苦并不一定就比体系崩溃所带来的痛苦更少。在全世界范围内,体系已经招致、并且正在招致的巨大痛苦曾使人类千百年与他人以及环境和睦相处的古代文化被与其解接触的工业社会所摧毁。其结果就是全方位的经济、环境、社会和心理问题。工业社会的侵扰所产生的影响之一,就是传统的人口控制在全球范围内一下子失去了平衡,因而产生了人口爆炸及其所有连带后果。接着就是心理疾病席卷了整个所谓"幸运"的西方社会。没有人知道臭氧层耗尽、温室效应及其他现在还不能预测的环境问题最终会为这个世界带来怎样的后果。而且就像核扩散已经显示的那样,我们无法防止新技术落入独裁者和不负责任的第三世界国家手中。愿意猜猜伊位克或北朝鲜将用遗传工程来干什么吗?

"嗨!"技术爱好者们会说,"科学能解决所有这些问题!我们将征服饥荒、消灭心理病痛,让每一个人都健康而快乐!"是的,是的。他们200年前就是这么说的。人们曾指望工业社会能够消灭贫穷,使每一个人都快乐,等等。实际结果却不是那么回事。技术爱好者对社会问题的理解简直是无可救药地天真(或自欺欺人)。他们没有意识到(或故意视而不见)这样一个事实:当巨大的变化,即使是看上去有利的变化,被引入一个社会时,将会引发一长串其他变化,这些变化之中的大都分是不可预见的其结果则是社会的混乱。因此,技术爱好者们在试图消灭贫穷和疾病,设计制造驯顺、快乐的人格等等时,很可能会创造出比现在还糟糕的社会体系。例如,科学家们吹嘘说他们能够创造出新的、经遗传工程改造的粮食植物以消灭饥荒。然而,这将会允许人口无限膨胀下去,而众所周知,拥挤会导致紧张和攻击性的增强。这仅仅是技术会导致的可预见问题中的一个例子。我们强调指出,历史经验告诉我们,技术进步给社会带来新问题的速度远比它解决旧问题的速度要快。因此技术爱好者们要经过一个漫长的试错时期才能够为他们的美丽新世界排除掉所有的故障(假设他们最终能做到的话)。而与此同时所产生的痛苦将会如此巨大,以至于体系生存下去所带来的痛苦不见得就比体系崩溃更少。技术己将人类带入了一条无法轻易逃脱的死胡同。

更好的办法是把这个腐朽的体系整个扔进垃圾堆,并勇敢地承受其后果。

现在的两个主要任务是在工业社会中促进社会紧张与不稳定,以及宣传一种反对技术和工业体系的意识形态。当体系变得足够紧张和不稳定时,一场反对技术的革命就有机会发动了。这一模式将十分类似于法国和俄国革命。在两国各自革命之前的几十年里,法国和俄国社会都显示出了越来越多的紧张与脆弱迹象。同时,提供一个与旧世界完全不同的新世界愿景的意识形态发展了起来。以俄国的情况为例,革命者积极从事于破坏旧秩序的工作。然后当旧体系面临着足够的额外紧张时(法国是财政危机,俄国是军事失败),它就会被革命一扫而光。我们预想的就是这样的道路。

大多数革命都有两个目标,一个目标是摧毁一个旧社会,另一个目标是建立革命者想像的新社会。法国和俄国的革命者没有能够成功地建立他们所梦想的新社会(这是十分幸运的事),但她们非常成功地摧毁了既存社会。

然而,一种意识形态如想争取到热情支持,除了负面理想外必须还有正面理想,决不能只破不立。我们的正面理想是自然,即野生自然,按照其本来面目运行的地球,不依赖于人类管理、摆脱人类干涉和控制的地球生灵。我们的野生自然也包括人类本性,即不受有组织社会管制、自主运行的个人,成为偶然性或自由意志或上帝(由你的宗教或哲学观念)的产物。

一个社会的经济与技术结构在决定一般人的生活方式方面远比政治结构更加重要。

我们不应主张无力或消极,我们应主张打破工业体系的权力,而这将大大增加个人和小群体的权力和自由。

(据称)贯穿整个历史,技术都是进步的,从未退步过,因此技术退步是不可能的。但这并非事实。对于"进步"的热情是现代社会形态的特殊现象,在大约十七世纪之前并不存在。

(完)

文档信息

12 Sep 15:41

大连地铁时报9.11

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.11
发信站: 水木社区 (Mon Sep 11 21:34:37 2017), 站内

外貌协会八宗罪
?

几天前,公司一个美女用裁纸刀时划伤了手指,几个男同事围着关心,有的去买创可贴,有的帮忙打饭。昨天我膝盖撞到桌子腿了,疼得我蹲了下来,一个男同事过来说:“麻烦让让。”

我认识的一个小妹妹,18岁,去做了全脸提拉。我说:“你还是个少女,皮肤那么紧,根本没有提拉的必要,做这个干什么?”她说:“姐姐,我只是有钱而已。”

在外面吃饭,邻桌的胖妹盯着面前的菜娇嗔道:“呜呜呜,好多肥肉啊!”她对面的男朋友冷笑着说:“呵呵,我还以为是饭菜见到你之后会说话了。”

生活真的很艰难。我出去吃个饭,旁边那桌有三个人在直播。吓得我一直不敢抬头,因为出门没化妆。

男生如果说你丑,那意思是你长得还可以。说你漂亮那就是真的漂亮,因为如果你真的很丑,男生是不会跟你讲话的。

我和女友谈了5年恋爱,最后还是没成,她嫌我家穷人丑。于是我奋发图强,坚持不懈地努力。如今我在市区有了两套房子,开着二十几万的车,也有了一份稳定的工作。而前女友还是和以前差不多,也没能找到有钱的对象。我不是炫耀自己有多厉害,只想告诉大家:拆迁真的可以改变命运。

和五六年没见面的师兄一起吃饭,正当我端详打量他时,他先发制人地说了句:“你胖了。”执黑先行,令人万箭穿心。

亲戚介绍了一个妹子给我。昨天我和她初次见面,约在咖啡厅,她长得不是我喜欢的类型,但我又不好意思说。我们聊了一个上午,然后一起去逛超市,她对我说,她喜欢成熟的男人。我一听,机会来了,立马蹬着购物车“啦啦啦”地在空荡荡的走道玩,留下她目瞪口呆的身影。

笑出马甲线
?

@F.F.Chopin
我们系有一个有点社交恐惧症的老师,在校园里一碰见眼熟的学生就摸出手机假装打电话,完全不给我们问“老师好”的机会。

@外国网友
老板来上班时,开了一辆崭新的兰博基尼。我说:“哇,老板!这车好炫酷啊!”老板微笑着回答说:“如果你努力工作,并且全身心投入其中、力求卓越,那么我明年还会再有一辆。”

@林愈静
我女儿每次打开作业后,都会唉声叹气,喝点水,随便翻翻书,找任何机会和人搭话。她一定希望只要打开的时间足够长,作业就会自己完成,我非常理解,因为我到这个年纪了也还经常这么幻想。

神句 ONE
?

今年教师节没什么能送给老师的,只好把学过的知识还回去了。

“女生什么瞬间最美丽?”“算了,不买了”

11 Sep 08:26

asm.js 和 Emscripten 入门教程

Web 技术突飞猛进,但是有一个领域一直无法突破 ---- 游戏。

游戏的性能要求非常高,一些大型游戏连 PC 跑起来都很吃力,更不要提在浏览器的沙盒模型里跑了!但是,尽管很困难,许多开发者始终没放弃,希望让浏览器运行 3D 游戏。

2012年,Mozilla 的工程师 Alon Zakai 在研究 LLVM 编译器时突发奇想:许多 3D 游戏都是用 C / C++ 语言写的,如果能将 C / C++ 语言编译成 JavaScript 代码,它们不就能在浏览器里运行了吗?众所周知,JavaScript 的基本语法与 C 语言高度相似。

于是,他开始研究怎么才能实现这个目标,为此专门做了一个编译器项目 Emscripten。这个编译器可以将 C / C++ 代码编译成 JS 代码,但不是普通的 JS,而是一种叫做 asm.js 的 JavaScript 变体。

本文就将介绍 asm.js 和 Emscripten 的基本用法,介绍如何将 C / C++ 转成 JS。

一、asm.js 的简介

1.1 原理

C / C++ 编译成 JS 有两个最大的困难。

  • C / C++ 是静态类型语言,而 JS 是动态类型语言。
  • C / C++ 是手动内存管理,而 JS 依靠垃圾回收机制。

asm.js 就是为了解决这两个问题而设计的:它的变量一律都是静态类型,并且取消垃圾回收机制。除了这两点,它与 JavaScript 并无差异,也就是说,asm.js 是 JavaScript 的一个严格的子集,只能使用后者的一部分语法。

一旦 JavaScript 引擎发现运行的是 asm.js,就知道这是经过优化的代码,可以跳过语法分析这一步,直接转成汇编语言。另外,浏览器还会调用 WebGL 通过 GPU 执行 asm.js,即 asm.js 的执行引擎与普通的 JavaScript 脚本不同。这些都是 asm.js 运行较快的原因。据称,asm.js 在浏览器里的运行速度,大约是原生代码的50%左右。

下面就依次介绍 asm.js 的两大语法特点。

1.2 静态类型的变量

asm.js 只提供两种数据类型

  • 32位带符号整数
  • 64位带符号浮点数

其他数据类型,比如字符串、布尔值或者对象,asm.js 一概不提供。它们都是以数值的形式存在,保存在内存中,通过 TypedArray 调用。

如果变量的类型要在运行时确定,asm.js 就要求事先声明类型,并且不得改变,这样就节省了类型判断的时间。

asm.js 的类型声明有固定写法,变量 | 0表示整数,+变量表示浮点数。


var a = 1;

var x = a | 0;  // x 是32位整数
var y = +a;  // y 是64位浮点数

上面代码中,变量x声明为整数,y声明为浮点数。支持 asm.js 的引擎一看到x = a | 0,就知道x是整数,然后采用 asm.js 的机制处理。如果引擎不支持 asm.js 也没关系,这段代码照样可以运行,最后得到的还是同样的结果。

再看下面的例子。


// 写法一
var first = 5;
var second = first;

// 写法二
var first = 5;
var second = first | 0;

上面代码中,写法一是普通的 JavaScript,变量second只有在运行时才能知道类型,这样就很慢了,写法二是 asm.js,second在声明时就知道是整数,速度就提高了。

函数的参数和返回值,都要用这种方式指定类型。


function add(x, y) {
  x = x | 0;
  y = y | 0;
  return (x + y) | 0;
}

上面代码中,除了参数xy需要声明类型,函数的返回值也需要声明类型。

1.3 垃圾回收机制

asm.js 没有垃圾回收机制,所有内存操作都由程序员自己控制。asm.js 通过 TypedArray 直接读写内存。

下面就是直接读写内存的例子。


var buffer = new ArrayBuffer(32768);
var HEAP8 = new Int8Array(buffer);
function compiledCode(ptr) {
  HEAP[ptr] = 12;
  return HEAP[ptr + 4];
}  

如果涉及到指针,也是一样处理。


size_t strlen(char *ptr) {
  char *curr = ptr;
  while (*curr != 0) {
    curr++;
  }
  return (curr - ptr);
}

上面的代码编译成 asm.js,就是下面这样。


function strlen(ptr) {
  ptr = ptr|0;
  var curr = 0;
  curr = ptr;
  while (MEM8[curr]|0 != 0) {
    curr = (curr + 1)|0;
  }
  return (curr - ptr)|0;
}

1.4 asm.js 与 WebAssembly 的异同

如果你对 JS 比较了解,可能知道还有一种叫做 WebAssembly 的技术,也能将 C / C++ 转成 JS 引擎可以运行的代码。那么它与 asm.js 有何区别呢?

回答是,两者的功能基本一致,就是转出来的代码不一样:asm.js 是文本,WebAssembly 是二进制字节码,因此运行速度更快、体积更小。从长远来看,WebAssembly 的前景更光明。

但是,这并不意味着 asm.js 肯定会被淘汰,因为它有两个优点:首先,它是文本,人类可读,比较直观;其次,所有浏览器都支持 asm.js,不会有兼容性问题。

二、 Emscripten 编译器

2.1 Emscripten 简介

虽然 asm.js 可以手写,但是它从来就是编译器的目标语言,要通过编译产生。目前,生成 asm.js 的主要工具是 Emscripten

Emscripten 的底层是 LLVM 编译器,理论上任何可以生成 LLVM IR(Intermediate Representation)的语言,都可以编译生成 asm.js。 但是实际上,Emscripten 几乎只用于将 C / C++ 代码编译生成 asm.js。


C/C++ ⇒ LLVM ==> LLVM IR ⇒ Emscripten ⇒ asm.js

2.2 Emscripten 的安装

Emscripten 的安装可以根据官方文档。由于依赖较多,安装起来比较麻烦,我发现更方便的方法是安装 SDK

你可以按照下面的步骤操作。


$ git clone https://github.com/juj/emsdk.git
$ cd emsdk
$ ./emsdk install --build=Release sdk-incoming-64bit binaryen-master-64bit
$ ./emsdk activate --build=Release sdk-incoming-64bit binaryen-master-64bit
$ source ./emsdk_env.sh

注意,最后一行非常重要。每次重新登陆或者新建 Shell 窗口,都要执行一次这行命令source ./emsdk_env.sh

2.3 Hello World

首先,新建一个最简单的 C++ 程序hello.cc


#include <iostream>

int main() {
  std::cout << "Hello World!" << std::endl;
}

然后,将这个程序转成 asm.js。


$ emcc hello.cc
$ node a.out.js
Hello World!

上面代码中,emcc命令用于编译源码,默认生成a.out.js。使用 Node 执行a.out.js,就会在命令行输出 Hello World。

注意,asm.js 默认自动执行main函数。

emcc是 Emscripten 的编译命令。它的用法非常简单。


# 生成 a.out.js
$ emcc hello.c

# 生成 hello.js
$ emcc hello.c -o hello.js

# 生成 hello.html 和 hello.js
$ emcc hello.c -o hello.html

三、Emscripten 语法

3.1 C/C++ 调用 JavaScript

Emscripten 允许 C / C++ 代码直接调用 JavaScript。

新建一个文件example1.cc,写入下面的代码。


#include <emscripten.h>

int main() {
  EM_ASM({ alert('Hello World!'); });
}

EM_ASM是一个宏,会调用嵌入的 JavaScript 代码。注意,JavaScript 代码要写在大括号里面。

然后,将这个程序编译成 asm.js。


$ emcc example1.cc -o example1.html

浏览器打开example1.html,就会跳出对话框Hello World!

3.2 C/C++ 与 JavaScript 的通信

Emscripten 允许 C / C++ 代码与 JavaScript 通信。

新建一个文件example2.cc,写入下面的代码。


#include <emscripten.h>
#include <iostream>

int main() {
  int val1 = 21;
  int val2 = EM_ASM_INT({ return $0 * 2; }, val1);

  std::cout << "val2 == " << val2 << std::endl;
}

上面代码中,EM_ASM_INT表示 JavaScript 代码返回的是一个整数,它的参数里面的$0表示第一个参数,$1表示第二个参数,以此类推。EM_ASM_INT的其他参数会按照顺序,传入 JavaScript 表达式。

然后,将这个程序编译成 asm.js。


$ emcc example2.cc -o example2.html

浏览器打开网页example2.html,会显示val2 == 42

3.3 EM_ASM 宏系列

Emscripten 提供以下宏。

  • EM_ASM:调用 JS 代码,没有参数,也没有返回值。
  • EMASMARGS:调用 JS 代码,可以有任意个参数,但是没有返回值。
  • EMASMINT:调用 JS 代码,可以有任意个参数,返回一个整数。
  • EMASMDOUBLE:调用 JS 代码,可以有任意个参数,返回一个双精度浮点数。
  • EMASMINT_V:调用 JS 代码,没有参数,返回一个整数。
  • EMASMDOUBLE_V:调用 JS 代码,没有参数,返回一个双精度浮点数。

下面是一个EM_ASM_ARGS的例子。新建文件example3.cc,写入下面的代码。


#include <emscripten.h>
#include <string>

void Alert(const std::string & msg) {
  EM_ASM_ARGS({
    var msg = Pointer_stringify($0);
    alert(msg);
  }, msg.c_str());
}

int main() {
  Alert("Hello from C++!");
}

上面代码中,我们将一个字符串传入 JS 代码。由于没有返回值,所以使用EM_ASM_ARGS。另外,我们都知道,在 C / C++ 里面,字符串是一个字符数组,所以要调用Pointer_stringify()方法将字符数组转成 JS 的字符串。

接着,将这个程序转成 asm.js。


$ emcc example3.cc -o example3.html

浏览器打开example3.html,会跳出对话框"Hello from C++!"。

3.4 JavaScript 调用 C / C++ 代码

JS 代码也可以调用 C / C++ 代码。新建一个文件example4.cc,写入下面的代码。


#include <emscripten.h>

extern "C" {
  double SquareVal(double val) {
    return val * val;
  }
}

int main() {
  EM_ASM({
    SquareVal = Module.cwrap('SquareVal', 'number', ['number']);
    var x = 12.5;
    alert('Computing: ' + x + ' * ' + x + ' = ' + SquareVal(x));
  });
}

上面代码中,EM_ASM执行 JS 代码,里面有一个 C 语言函数SquareVal。这个函数必须放在extern "C"代码块之中定义,而且 JS 代码还要用Module.cwrap()方法引入这个函数。

Module.cwrap()接受三个参数,含义如下。

  • C 函数的名称,放在引号之中。
  • C 函数返回值的类型。如果没有返回值,可以把类型写成null
  • 函数参数类型的数组。

除了Module.cwrap(),还有一个Module.ccall()方法,可以在 JS 代码之中调用 C 函数。


var result = Module.ccall('int_sqrt', // C 函数的名称
  'number', // 返回值的类型
  ['number'], // 参数类型的数组
  [28] // 参数数组
); 

回到前面的示例,现在将example4.cc编译成 asm.js。


$  emcc -s EXPORTED_FUNCTIONS="['_SquareVal', '_main']" example4.cc -o example4.html

注意,编译命令里面要用-s EXPORTED_FUNCTIONS参数给出输出的函数名数组,而且函数名前面加下划线。本例只输出两个 C 函数,所以要写成['_SquareVal', '_main']

浏览器打开example4.html,就会看到弹出的对话框里面显示下面的内容。


Computing: 12.5 * 12.5 = 156.25 

3.5 C 函数输出为 JavaScript 模块

另一种情况是输出 C 函数,供网页里面的 JavaScript 脚本调用。 新建一个文件example5.cc,写入下面的代码。


extern "C" {
  double SquareVal(double val) {
    return val * val;
  }
}

上面代码中,SquareVal是一个 C 函数,放在extern "C"代码块里面,就可以对外输出。

然后,编译这个函数。


$ emcc -s EXPORTED_FUNCTIONS="['_SquareVal']" example5.cc -o example5.js

上面代码中,-s EXPORTED_FUNCTIONS参数告诉编译器,代码里面需要输出的函数名。函数名前面要加下划线。

接着,写一个网页,加载刚刚生成的example5.js


<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<body>
<h1>Test File</h1>
<script type="text/javascript" src="example5.js"></script>
<script>
  SquareVal = Module.cwrap('SquareVal', 'number', ['number']);
  document.write("result == " + SquareVal(10));
</script>
</body>

浏览器打开这个网页,就可以看到result == 100了。

3.6 Node 调用 C 函数

如果执行环境不是浏览器,而是 Node,那么调用 C 函数就更方便了。新建一个文件example6.c,写入下面的代码。


#include <stdio.h>
#include <emscripten.h>

void sayHi() {
  printf("Hi!\n");
}

int daysInWeek() {
  return 7;
}

然后,将这个脚本编译成 asm.js。


$ emcc -s EXPORTED_FUNCTIONS="['_sayHi', '_daysInWeek']" example6.c -o example6.js

接着,写一个 Node 脚本test.js


var em_module = require('./api_example.js');

em_module._sayHi();
em_module.ccall("sayHi");
console.log(em_module._daysInWeek());

上面代码中,Node 脚本调用 C 函数有两种方法,一种是使用下划线函数名调用em_module._sayHi(),另一种使用ccall方法调用em_module.ccall("sayHi")

运行这个脚本,就可以看到命令行的输出。


$ node test.js
Hi!
Hi!
7

四、用途

asm.js 不仅能让浏览器运行 3D 游戏,还可以运行各种服务器软件,比如 LuaRubySQLite。 这意味着很多工具和算法,都可以使用现成的代码,不用重新写一遍。

另外,由于 asm.js 的运行速度较快,所以一些计算密集型的操作(比如计算 Hash)可以使用 C / C++ 实现,再在 JS 中调用它们。

真实的转码实例可以看一下 gzlib 的编译,参考它的 Makefile 怎么写。

五、参考链接

(完)

文档信息

11 Sep 08:18

大连地铁时报9.6

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.6
发信站: 水木社区 (Thu Sep 7 05:32:04 2017), 站内

段里看人生,一笑知百味
?

我老婆特别细腻贴心。昨晚我喝多了,晕晕乎乎进错了门,原本住在301,结果走进了302。没想到老婆正等在302给我开门,她说:“就知道你喝多了会走错门,我特意在隔壁等你回来。”老婆对我是真爱啊。

珍惜眼前人,喜欢他就粘着他,千万不要让他溜走。有些人,天天在一起还好,只要有一段时间不见你,他就会发现你变胖了。

以前我想不通为什么有人会穷游,后来想通了,反正在家里也是穷,不如去外面穷,还能看风景,说不定还能捡到钱。

他是学霸班长,我是经常被老师批评的学渣。后来我们毕业了,经过在社会上的几年闯荡,现在,我坐在办公桌旁,曾经的学霸则乖乖地候在门外,看我的脸色行事。我都懒得看他一眼,不耐烦地说:“请出示你的停车证,本小区不许外来车辆进入!”只听见学霸不屑地说:“这里的住户找我谈一笔大生意,耽搁了你负责得起吗?”然后扬长而去。他车上的扩音器还悠长地喊着:“回收旧彩电、冰箱、空调、洗衣机、电饭煲、高压锅……”

我相亲的女孩说,她交往对象只在乎感觉,不在乎对方有没有钱,只要跟对方在一起时不会让自己的生活水平下降就可以了。然后这个女孩的生活水平要求至少每个月买一个3万的包、每年6次国外旅游……我捋了几次才把她的择偶标准捋清楚了。

我们公司老板新招了一批年轻的女程序员,工资很低。老板把难题都分配给女程序员,她们因为不明白就会去求助男程序员,男程序员为了表现自己,于是纷纷通宵搞定。老板套路很深啊!

晚自习时,班主任的手表忘在班里了,结果下课来拿的时候发现不见了。班主任语重心长地对我们说:“诚信是做人的基本准则。作为一个高中人,你不觉得羞耻吗?”没有人搭理他。他又说:“如果我直接搜出来,那么对你的声誉会有毁灭性的影响,我会用一种体面的办法解决这个问题。现在熄灯5分钟,大家挨个从讲台上走过,那个人把手表放在我包里,这事就算了。”5分钟后,班主任打开包,不但没有表,里面的钱也没了。

学车时,教练让我们练习倒车入库。一个妹子倒车的时候一脚油门,车就蹿出去了,车后面正好有个驾校的狗窝,直接撞塌了,狗食盆都压瘪了……后来只要她一上车,驾校的狗就自己叼着盆子跑得远远的,然后用哀怨的小眼神看着她。

神句 ONE
?

听说很多五星酒店都不换床单,哈哈哈,好险,幸亏我没钱住!

身边的朋友开始理性消费了,多半是因为动了结婚的心。

11 Sep 08:17

大连地铁时报9.5

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报9.5
发信站: 水木社区 (Tue Sep 5 23:09:05 2017), 站内

老爸老妈,我该不会是捡来的吧?
?

我初中时的班主任是个老太太,很慈祥。每次开班会,她都跟我说:“明天家长会叫你妈妈来!”终于有一次,我忍不住问:“为什么不叫我爸来?”结果老师说:“你爸初中也是我教的!我已经不想再说他了!”

二孩政策放开后,我一直想再要个孩子,就和媳妇商量。结果媳妇特别体贴,郑重地对我说:“谁给你生你找谁去吧!”媳妇这么大度,真是我的福气。

昨天,我碰到一个碰瓷的老太太,她硬说是我撞的。我急了,拿出手机说:“爸,给我150万,我要撞死一个老太太。”那老太太一下就起来了,说:“骑自行车你还装高富帅!”还打了我一巴掌。于是我从容地躺下了……

放假在家,老妈总说让我出去玩,别整天睡觉、玩电脑。其实我想说:只有两个人才叫玩,一个人那叫瞎转悠。

儿子上小学,不到一个星期就跟同桌干了一仗,矛盾的起源是两人争论一天三顿饭还是一天两顿饭,各执一词互不相让。后来知道真相的儿子含着泪对着我跟媳妇说:“六年了,六年啊!我活了六年才知道这世界上还有一顿饭叫‘早餐’!”

火锅真是一项伟大的发明,我们应该鼓励年轻人多吃火锅。像我很多朋友平时爸妈再怎么劝也不愿意吃青菜,但在吃火锅的时候他们竟然会主动点青菜吃,这就不能不说是火锅的魔力了。

开学了,我送弟弟去上学,遇到一群记者,采访我们当年上大学时行李箱里都装了啥。我回想了一下,感觉老心酸了,别人上学都是大包小包,装着各种衣服、特产、爸妈亲手做的小吃,唯独就我装了一行李箱的钱。

我们家对门的邻居,今年刚结婚。前几天,他父母过来催他生小孩,他说现在不想生,生了会后悔。结果他爸说:“生孩子怎么会后悔,我们当年也是结婚了马上生你,你看后悔了吗?”儿子说:“别催了,再催我这辈子都不生!”他爸说:“孽子啊!真后悔生了你这么个孽子。”

神句 ONE
?

家庭和谐三大原则:不想干活就嘴甜;不是你花钱别管;有事好商量!

把头发梳成大人模样,换一身帅气西装。描写的是大学生毕业后去卖房的情形。

以前班里两个叫李策的,一男一女,为了方便区分,我们把男的叫男厕,女的叫女厕。

工作能带给你快乐吗?不能,只有工资能。

“玩游戏时遇到过什么好玩的ID?”“遇到过一对,一个叫知污猪,一个叫特污兔。”

自从我用了智能移动电话之后,我的智能、移动和电话都在减少。

11 Sep 08:17

大连地铁时报8.31

by nzhth
发信人: nzhth (n站同号), 信区: Joke
标 题: 大连地铁时报8.31
发信站: 水木社区 (Thu Aug 31 20:31:43 2017), 站内

一不小心,就活成了段子
?

昨晚我吃完麻辣烫要走,服务员过来准备数签子算账。他看了看桌子,又看了看我,诧异地问:“你,进来两个多小时,就吃了一串?”我没有正面回答,只是指了指桌子上的签子。他无奈地说:“好吧,一共是8毛钱。”“不用找了!”我递给他1块钱,拎着我刚编的竹篮子走了出去。

同事:“我老婆怀孕后口味越来越刁了。”我:“不是据说怀孕后吃东西没味道吗?你就多照顾她呗。”同事:“是,我也知道,我不是不照顾她,可她说要吃葡萄味儿的提子。” 我……

朋友们,人在修图这件事上真的不能懒啊。一次不开美颜,那么之前人生中的美颜都白开了;一次懒得修照片,那么之前人生中所有P照片的时间都浪费了,太可怕了!

婚姻让人学会忠诚、学会自制、学会服从与支配,它能够培养你的责任心、公平观等一系列假如你单身就完全不需要的品质。

情人节,我自己吃晚饭,一个漂亮的女孩捧着一把花向我走来,甜笑着说:“买支花吧!”我无奈地摇摇头:“我用不着……”她带着同情的表情点点头,走远了。我心想,老子比花好看,买什么花。

我有一个室友特别邋遢。有一次,我看他一双袜子穿很久还不换,就忍不住说他:“你该换袜子了。”他来了一句:“我买了五双一样的。”我将信将疑,后来我发现他没骗我,只是另外四双袜子都是崭新的……

只见老头拿出一枚铜钱,放在油口,又舀起一瓢油,将油缓缓倒出来。那油宛若一条细线,穿过铜钱的孔洞而入,精准无误,钱上不沾半滴。少年看到这里,刚要说话,老头紧跟着说道:“呵,没什么,不过手熟罢了。”少年却火冒三丈:“你们加油站还有没有动作快点的人啦!”

听说很多长相平平的夫妻,因为怀孕期间看了很多漂亮宝宝,孩子长得很好看。有人说怀孕期间接触什么,孩子就会长得像什么。接触丑的东西,孩子就丑,接触美的东西,孩子就美。真希望我的孩子早点出生,我好想看看长得像Excel表的孩子究竟是啥样。


神句 ONE
?

只有在请假扣钱的时候,我才会觉得自己薪水高。

我喜欢交朋友,总会碰到那种“我把她当朋友她却想跟我谈恋爱”的女孩吧。

锻炼对身体有好处,饭后走一走,路边又吃九十九。

真正想送你东西的人,不会问你要不要,有人问你要不要的时候,最好拒绝。

现在很多人动不动就大谈中年危机,仿佛青年时很成功一样。

我们要学会说“不”,因为说“不”的时候嘴会嘟起来,好可爱。

11 Sep 08:12

[原创]彪悍的人生不需要理由(小情人笑话三则)

by siguofengyun
发信人: siguofengyun (四国风云), 信区: Joke
标 题: [原创]彪悍的人生不需要理由(小情人笑话三则)
发信站: 水木社区 (Mon Aug 28 10:14:19 2017), 站内

2010年七夕,第一次收到小情人的约会信号,从此,我过上了水深火热的生活。
周末三则事例为证:
一、 周六带着她去看电影,在后排脱了鞋脚乱蹬,我大声呵斥:谁在后面乱动,把车搞脏了?一个理智气壮的声音回答:我!无语……反击:谁搞脏的谁出钱洗车!回答:我没钱!继续反击:你过年回老家拜年不是攒了好多钱吗,就用那个钱洗!回答:那个不是钱,那是我的回忆!诧异……被戳中软肋,完败!
二、 看完电影回家一起玩游戏,我是观众,她表演唱歌,结果唱着唱着自己笑得不行,遂规定她如果唱歌期间自己笑岔就要被观众赶下台,两次被赶下台后,觉得没面子,开始反击:我觉得这个规定不合理,我规定可以一边笑一边唱!我回答:那你自己制定规则,自己表演,又当裁判又当运动员,这样可以吗?霸气回应:可以!无语……大声回应:凭什么?更霸气回答:因为我就是这样的女人!被戳中笑点,再次完败!
三、 马上九月份要开学了,嫌弃幼儿园的书包太幼稚,周日和她老妈一起刷淘宝,没一会我就收到付款短信,随意问了句:这么快就选好付款了呀?一个兴奋的声音回答:对啊,我选的这个书包最漂亮了,不好意思啊,用了你的私房钱。我笑得无语,就装可怜打趣她:哎呀,老爸好不容易攒点私房钱,就这样被你用掉了!她还不高兴了,快速跑过来叉着腰大声问:那是我上学重要还是你的私房钱重要?你说?你说?再次无语…….只能垂头丧气的回答:你上学重要,买吧买吧!被KO!

--
※ 修改:·siguofengyun 于 Aug 28 10:15:39 2017 修改本文·[FROM: 110.53.191.*]
※ 来源:·水木社区 http://www.newsmth.net·[FROM: 110.53.191.*]