八哥之神【20】

“佛塔里肯定有一个老头等稣好多年,即将传输百年功力给稣,然后稣立马变成武林高手,把这些撒币和尚打成猪头。”一想到这,稣忍不住在一团漆黑中笑起来。

“笑脸郎,你都被关起来了,还笑得这么开心?”楼上传来一个老太婆沧桑但浑厚的声音。

“额?怎么是女的?”稣内心震惊,急忙问:“佛门清净地,怎么会有女人?难道你是保洁阿姨?”

“不是!贫尼乃本寺创始人,殷离。”

“殷离?难道你就是《天龙八部》里的那位殷离?”

“什么《天龙八部》?你说的是金庸的小说吗?”

“是的,你是古代人?”

“笑脸郎,你搞错了,殷离是《倚天屠龙记》的人物,那不是我,但我确实是古代人,按照当今公历,我出生时间是 1333 年。”

“妖,老妖……婆,你要吓死稣啊!不要开灯!稣不敢看。”

“这里没有灯,上来一层,我这边有些自然亮光。”

“别吓稣,几百岁的人得多恐怖?”

“呵呵,笑脸郎你还真信?都不怀疑我瞎编的?”

“信,你这声音没有几百年功力怎么可能这么恐怖,稣快耳鸣了。而且本寺神秘兮兮,创始人一定不简单。”

“傻小子,这佛塔其实是个歌舞厅,我用功放设备和你说话的,你上来吧!”

“卧槽……你是年轻的美女!殷离?1333 年?”

“是的,没有身份证。”

“要不是刚刚见鬼,稣差点就不信了……说出你的故事,稣很仰慕你,洗耳恭听。”

识界量子地狱

陈博士说:“圣小开骗我自杀,但我并没有回到现实。”

谷绵:“你自杀时的状态码不对,所以无法回到现实,不过性别恢复了,你现在可以选择转世。”

“哪里不对啦,妹纸?”

“性别错误,跳转程序检查状态不对,就拒绝超脱。”

“这不是坑我吗?”

“这个八哥,我们会在下个版本修复。作为补偿,你转世后可以获得 1000 年寿命,我将帮你送回识界主线 1333 年。”

“喂?你玩我呢?公报私仇吗?那么早的时间,啥科技都没有,多无聊啊!”

“我只是个程序,有意见等你超脱后找周老师反馈。再见!”

佛塔神秘四层

“我 23 岁遇到一个叫周易的人后就不再衰老,后来拜少林寺四大法王为师,学了武功和佛法,就到此创建本寺,并一直在佛塔里修行。”

“真无聊!你说的那个周易,好像是稣的大学老师呀!稣刚刚在塔外还很 buggy 地看到他,这到底是怎么回事?”

“你记得陈博士吗?”

“陈博士?难道是……那个秘书年轻漂亮的梗?”

“我就是陈博士。上次是你骗我自杀,结果因为识界设计有 bug,我并没回到现实,这次我等你几百年,我们可以一起超脱了!”

“等等,稣骗你自杀?然后你还真就自杀了?这不可能,稣不是这种人,好死不如赖活。”

“事实就是这样,我思考人生 663 年,加上周易冒出来提醒几次,才都明白的。”

“还是不可能,你肯定先做了啥对不起稣的事情,稣才会骗你,而且这个骗术也太强,稣不认为自己有这能耐!”

“你这小子有完没完?”,殷离姐姐暴打了稣……

只吃硬不吃软的稣,这下遇到克星了,痛苦地问:“好吧,你淫了,额啊!那么……回到现实是指离开寺庙,回到软件园,继续上无聊的班?”

“不是,那个并非现实,我们都在识界里,死后还有更现实的世界。”

“哦,别!稣已经工作好多年,有点存款,加上叔公给的 406 万,现在有 520 万存款,所以稣还不想死!”

“现实世界里,你可是千万富翁,比这区区 520 万多很多,还有特殊身份,比当码农有前途,你还是死了算了吧!”

“天呐,你这寺庙还有专业劝人去死的服务,稣的三观被你们毁光光了。”

“呵呵,那就在此多耗几天,我料你定会想死。”

“不想,不想,稣不想。刚被你打一顿,更不想死了……稣要练功报仇!”

“省省,我这几百年的功力,你是无法企及的。而且你还没搞清楚自己的人物设定吗?”

“嗯?你知道什么天机?”

“你这辈子只会被女人打,不可能打得过女人,尤其是我这样的高手!”

“哦……但稣可以增强防御能力吧。”

“就会嘴硬。给你点时间消化,这里没吃的,你要睡觉就上奇数层,这里有 19 层,奇数层都是暗黑无光,偶数层有点自然光,但到晚上都是一样暗。”

“好的,姐姐,你是想饿死稣,明白!”

“拿着。”殷离递给稣一个盒子。

“这是啥?”

“里面是含致幻剂的蜡烛和火柴,你快饿死的时候就点它,可以帮你超脱。”

八哥之神【番外篇3】

听说鲁豫要来采访稣

1. 李怡和吴情是同一个人吗?

不是。性格有点相似,取名自“利益无情”。李怡对应的是大学同学的故事,男主不是作者本人,因为很相关,就一起写了。吴情是作者梦里的人物,演员是作者高中同学。

2. 为什么出现美柚这种现实中的公司?会不会泄露隐私?

  • 什么是现实?能吃吗?
  • 美柚是“美国柚子开发商”的缩写,这是一家区块链技术公司。
  • 全是做梦,甚至偶尔是梦中梦。啪啪啪也是做梦……千万别当真。

3. 出现许效舜有什么特别含义吗?

这问题作者也想不通,因为日常生活中根本没有相关事物,莫名其妙就梦见……

4. 释德灵究竟是何方神圣?

原名段郑灵,父姓段,母姓郑,德国土豪,真的娶了三个老婆。不过是在作者梦里……

5. 八哥到底是什么意思?

这是作者被问得最多的问题……八哥就是 bug,意思是:撩。

  • Can I bug you?
  • I already fell for someone, so please do not bug me anymore.

翻译:

  • 我可以撩你吗?
  • 我已经心有所属,所以请不要再撩我。

6. 为什么好多女角只出现一小会就消失?

  • 春梦易醒,匆匆过客。
  • 抓不出爱情的我,总是眼睁睁看她溜走……人生就是百年孤寂,大部分时间都在挣扎,谈恋爱哪有那么容易,不是人不对,就是时间不对,还是洗洗睡。
  • 那一夜,冷风小雨,空旷的广场,还飘着一只小海豚,耶问自己在干嘛?稣小心翼翼地回答:一路风雨参禅,即使美人在侧,稣一心向佛,阿弥陀佛……

7. 为什么不描述一下女角的容貌?

梦里黑乎乎的,分辨率也比较低,反正都是不同类型的美女,各位观众喜欢哪款自己套,毕竟作者请不起这么多女演员……

8. 哪位女角最漂亮?

目前出现过的是谷绵最漂亮,不过还有秦阳(女)和若干校花未出场呢!

云游戏开发指南【1】

实用参考

  1. 云游戏的架构设计和技术实现

    https://blog.csdn.net/RA681t58CJxsgCkJ31/article/details/79226317

  2. GamingAnywhere

    http://www.gaminganywhere.org

  3. OBS Studio

    https://github.com/obsproject/obs-studio

服务器架构

  • NVIDIA Grid 显卡

  • Windows 8 - 10,最好别用 7。

  • Sandbox 方案

一份授权 Windows 系统大约可以运行 40~50 个游戏实例。

音频

  • 服务器上设置 48000Hz 采样率;

  • 编码器采用 Opus,48000Hz,128kpbs

    1. 音频编码的延迟:需要一个 frame 才能编码,而等待一个 frame 需要时间。比如,48000Hz 的 samplerate 编码到 1024 samples/frame 的 AAC,一个 frame 需要的采集时间是 1000 * 1024 / 48000 = 21.3ms,这个只是采集的理论时间,应用程序的采集间隔还可能增大这个采集延迟,然后还有编码、传输、解码、播放延迟。

      Opus 的 frame size 默认是 960,相比 1024 的 AAC 理论上可以减少一点点延迟,1000 * 960 / 48000 = 20ms。

      Opus 的 frame size 还可以更小,比如 120,但不建议使用,因为 Windows 一次采集 480 samples,frame_size = 120 时,一次采集包含 4 frames,所以延迟和 frame_size = 480 其实是一样的。另外,live555 最小发送单位是 packet,而不是 frame,并且实现上 packet 要等待 960 samples 时长。

      128kpbs 的 Opus 音质几乎已经顶天了,人耳很难分辨,比 mp3 好太多了,网络上流行的高音质 mp3 都是 320kpbs 的。

    2. Opus 是开源并免费的,AAC 好的编解码器都是收费的。

流传输协议

  • RTSP

  • live555

    http://www.live555.com/

    UMU 之前用 live555 2017.07.18 版本时,发现它对 Opus 支持不好,需要改进,当前版本未测。

八哥之神【19】

听静夜之钟声,唤醒梦中之梦;观澄潭之月影,窥见身外之身。

男人天性追求强大的力量,在见证稣的感知和分析能力后,耶希望能融合这种能力,以使自己更强大。又经历一梦,耶终于变成稣。稣决定不断变强,掌握命运!

然而,融合要消耗很多能量,还需时间消化,一大早的钟声令稣恼火,很想找人打一顿。没错,就是上次想测试的弗智,抓起来打!

“弗智同学,咱们来练练?”

“练?居士何意呀?”

“武功!来比划比划!”

“阿弥陀佛,小僧没见居士练过武,怕误伤居士。”

“没事,稣刚在梦里学了一套西洋拳,你就陪稣测试一下吧!”

“哦?可以吧!居士请出手,小僧不出手,用步法应对就是。”

“卧阔,好大的口气!看稣把你打成猪头!”

咦?怎么打不到……

“再快点!出手太慢是打不到小僧的。”

“不可能啊!躲这么快,你特么拍《黑客帝国》呀?”

“小僧就像一个电子,同时身处多处。”

“量子邪说都来了……难道稣还没醒?”

“你打不到我,你打不到我。”

“没道理,稣已经在观测你了,所以你的位置是确定的。”

“居士要打到小僧时,小僧的位置才是确定的!”

“这个不好玩,咱们换个玩法,你先静止,稣打你,看你是死是活!”

“哈!看小僧的硬气功。”

“握了个叉,打死你!”

“嗯!出拳太远,打到时力道已经不足。”

“哦?那你说要怎么打?”

“寸劲!哇哒,你懂吗?李小龙!”

“没想到你这么专业!看来稣打不过你!”

“小意思,过奖过奖,小僧乃弗字辈第一高手!”

“卧槽……你淫了!”

稣转身要走,不料又是熟悉的背后偷袭。

弗智左手挽住稣的胸,右手拳头在背脊和腰部碾了几下,“居士长期坐着,腰背都不好,需要捣腾一番!”

“呃啊……”稣被整得热汗直流,十分酸爽。看来武术并非稣的领域,还是再试试其它技能吧……

人生原是傀儡,只要把柄在手,一线不乱,卷舒自由,行止在我,一毫不受他人捉掇,便超此场中矣。

“阿弥陀佛,稣还是写代码吧!”说完,心想:“每个月赚几万,再加上叔公给的 406 万,买个车买个房,应该可以娶个老婆吧!”

这时失恋的唐泰九、孟浩多过来叫稣:“居士,住持有请,后山佛塔等候。”

稣整理衣衫,淡定一番,便一念惊觉,直登佛塔。却遇到个陌生人!

“住持呢?”

“我就是。”

“你是住持?那释德灵呢?”

“我就是。”

“你整容了?照着哪个明星整的?怎么有点眼熟。”

“一月三身。”

“别扯了……声音还是一样的,那你还有一张稣没见过的脸?干脆一次见完。”

“我扯!”住持表演变脸,变回上次看到的。

“哇!难道你是四川人?”

“我再扯!”

“嗯?你是周易!”

“然也!”

“周老师,为什么是你?”

“小开,现在老师走后门附身住持,进来救你,你快点醒过来!记住这局醒来的方法是滚下山。”

“什么?周老师你为什么不搞科研,跑来 cosplay 住持?”

“居士,你来了?”

“住持大师叫稣什么?稣刚才产生幻觉了?”

“叫你居士,怎么?有问题?”

“再前面呢?”

“没有了,贫僧入定等居士,刚睁眼开口。”

稣心想:“见鬼!真的产生幻觉……”然后说:“好吧,大师找稣何事?”

“希望居士可以继承贫僧的衣钵。”

“这玩笑开大了吧!大师是认真的吗?”

“认真,居士的法号就叫释德明吧,以后寺庙拜托你了。”

“大师不是干得好好的,为什么让位于稣?”

“贫僧打算还俗,与家人团聚。”

“咦?大师还有家人?”

“实不相瞒,贫僧在尘世有三个老婆。”

“啥?玩笑开大了!三个老婆?大师上山前,不是送外卖的吗?应该是穷人,怎么能娶三个老婆?”

“居士不记得村里有人娶三个老婆的故事?”

“是有听过,还生了七个孩子……难道真是大师?”

“对,贫僧想体验生活,才去送外卖。遇到释德神后,先是好奇为什么他能终生不娶,随着对大神和佛法了解深入,贫僧认识到娶三个老婆是罪孽深重,于是就在本寺修行。”

“所以大师并非……”稣咽了一下口水,“上次推测失误,还以为大师也终身未娶!”

可怕!这个寺庙不简单……稣被打击得很想滚下山。

“居士很有慧根,考虑考虑?”

“当住持好处是不少,但以后谈恋爱不方便,稣要考虑几年!”

“居士可以先正式剃度,当个名誉住持。”

“还得练几年武功,不然可能会被不服稣的人打死!”

“哈哈,哈哈,居士还是挺有想法的。”

“稣这就回去考虑几年吧!”

“居士请留步!佛塔内有天地灵气,居士还是到里面考虑更快!”说完,稣就被软禁在塔内……

优化思维【1】字符串去空格

In place 版本

传入的字符串将被改变。

为方便复用,一般会实现 ltrim 和 rtrim 两个函数,然后 trim 函数调用这两者实现。

  • ltrim:从 str 头部开始找到非空格字符,偏移量记为 offset,将 str 左移(move)offset 个字符。

  • rtrim:从 str 尾部向头部找到非空格字符,偏移量记为 offset,将 str 截断为 offset。

一个想当然的实现:

1
2
3
4
trim(str) {
ltrim(str)
rtrim(str)
}

假设 str 是 x 个空格 + y 个非空格 + z 个空格,则以上代码需要把 y + z 个字符向左移动 x 个位置。

更好的实现是:

1
2
3
4
trim(string& str) {
rtrim(str)
ltrim(str)
}

由于先截断,剩 x + y,再去左移,只需要把 y 个字符左移 x 个位置。

优化思路:尽量减少复制,调整顺序也是优化手段。

Copy 版本

传入的字符串不会被改变,返回一个新的字符串。

一个复用前面代码的实现:

1
2
3
4
5
6
string trim_copy(string str) {
// str is a copy
rtrim(str)
ltrim(str)
return str
}

这个版本需要复制 x + y + z 个字符,ltrim 和 rtrim 里面都有找偏移量的代码可以复用,直接找到 y 个非空格字符是起点和终点,复制这 y 个字符就好了。

1
2
3
4
5
6
string trim_copy(const string& str) {
// str is a copy
l = lfind(str)
r = rfind(str)
return str[l, r]
}

优化思路:尽量减少复制。

move

strlen、strcpy、memmove 这类函数,都有一个优化思路:机器字长对齐,一次处理一个机器字。对于长字符串,效果显著。

优化思路:针对硬件特征调整策略。

公司不是家庭

很多公司会有家庭特征,因为管理者水平不够,就把家庭的理念搬到公司。甚至有的管理者,本身就是巨婴,蹂躏完家人,到公司继续蹂躏员工。

1. 有问题的管理者不降级或开除

  • 家庭:再不行的成员,也有血缘关系,无法开除。

  • 公司:不行的成员,往往因为人情关系,被姑息。

一个不合适的管理者占据一个位置,他的下属一般不敢举报他。

如果我举报了上司,上上司是不是会觉得我闹事,反而对付我?我的平级同事会支援我,还是让我孤军奋斗?

他的上司可能觉得没有更好人选,或者知道他有些问题,但有点交情,体谅他已经做到管理层不容易,不想动他……于是出现典型的人情治理。这样危害很大。 管理层固化之后,其中的制约关系网也固定,于是倾向于腐化。

基层干活的人是很容易流动的,但他们很难影响企业文化,反倒会被利用来说明公司是有优胜略汰的。其实,管理层的优胜略汰更关键、更致命。

2. 优劣员工的工资拉不开距离

  • 一般父母会倾力维护子女的平衡,如果一个子女明显发展比另一个子女好,他们就会更用力帮助较弱的那个。这是应该的。

  • 很多管理者都会降低工资差距,认为大家都是兄弟,不能差太多。

如果有余力,上级也应该稍微更用心去帮助后进者,但不是说劫富济贫,把厉害的下属的工资拿一部分给弱的下属。这种劫富济贫危害很大。 如果公司是害怕大家私下交流后发现有人很高导致嫉妒,那应该开除那些能力低又瞎嫉妒的才对。工资高的人一般不会告诉别人自己的工资水平。善妒者,往往也是弱者,如果不能激励自己变强,则也应该淘汰。

3. 长期没有策略性裁员,公司出问题才开始裁

  • 父母如果太放任、太宠爱孩子,往往培养出有问题的孩子。

  • 平时不管教好员工,这是太高估 HR 的能力了,以为招到的每个人都能管好自己并领悟公司的文化和业务?

有两种人就是应该及时裁掉的:混日子的、危害公司利益的。如果公司实在太有钱养闲人,第一类暂且忽视。有意危害公司利益的是必须立刻开除,比如上面说的不合格的管理,容易导致大量优秀人才流失或者无法进入,这就是危害公司利益。

公司发展很好的阶段裁员,大家都知道是好事;而等到发展遇到瓶颈才裁员,大家往往认为是坏事。

4. 裁员不公开原因

所谓家丑不可外扬,一般家庭的做法是隐瞒。

公司不是家庭,理由可以很简单地说明,但不应该隐瞒。比如能力不足,就写“末位淘汰”、“能力不匹配”、“发展方向不匹配”等。如果是做了危害公司利益的事情,就应该公布具体证据和开除原因,以维护企业文化。


道理都懂,主要是缺乏挖掘并有效反馈八哥的机制。

八哥之神【18】

从后山回到寺院,先找道信师叔,发现他很眼熟,“道信师叔,本名是张道信?”

“耶?你知道啦?贫僧本名张信,道信是法号。”

“耶姓圣,咱们同村?”

“是的,你恢复了!”

“村里姓张的很少,耶应该都认识,咱们以前肯定见过!”

“我见你的时候,你还很小,应该不记得我吧?但我妹妹你一定认识,她是你幼儿园的张老师。”

“耶有两个张老师,一个未婚,一个已婚,你说的是哪个?”

“她当时未婚。”

“原来如此,小时候女神级的老师,印象中听人说她有个哥哥,原来就是你啊!所以是因为你们有些神似,难怪觉得你眼熟。”

“哈哈,你记性很好。”

“但耶记不清张老师叫什么名字了……她去哪啦?好像只教我们一年就消失了!”

“张敏君。嫁到上海去了。还不是因为村里的诅咒。”

“张……敏君?耶有个大学同学也叫这名字!你是说咱们村不是姓圣的会被诅咒的传说?”

“是啊,我不就应验了?自己没事,但老婆出事,我当时想不开,干脆就出家。”

“原来迷信都是这样来的!但师叔现在应该过得蛮好的。”

“人生天地如蜉蝣,随遇而安罢了。”

“师叔知道住持本名叫什么吗?”

“不知也!你问他吧!”

“算了,听他口音应该不是同村的,这问题没意思。但我觉得他应该也是单身一辈子。”

“何出此言?”

“刚才和他聊到一个绯闻,他反应有点羡慕耶的样子。没事,耶要去谈恋爱啦!”

耶离开时,仿佛听到两次捅刀子的声音。

由于工作上有交集,耶很快和凌笑越聊熟。

当晚梦境中,耶怒斥假冒的鲁耶:“快说,你到底是谁?自己的名字怎么可能记错?”

“哈哈,稣就是稣啊,这个名字是从你的记忆里读取的。”

“那你为什么要假冒耶的学长?”

“不假装一下,你会排斥稣。”

“说得好有道理,那请问你有什么目的?”

“稣打算和你融合。”

“你说融合就融合?对耶有什么好处?融合完,耶还能活?”

“能的,能的,我们是共享记忆的,现在融合,明天醒来,我们还是一样用我们的眼睛看世界,我们是一个人,一个存在。你回忆一下上山到现在,稣影响了你部分认知,但你有消失过吗?好处是我们加在一起会更强大。”

“是没有,耶都记得清清楚楚。但你为什么能凭空出现在耶的梦里?”

“稣是真实世界的意识,你是虚拟世界的意识,我们合作,才能认识到世界的本质!”

“你到底叫什么?为什么选择耶?”

“名字不重要,意识很复杂,随便取个名字,叫稣吧!随机选的,稣也很无奈。”

“融合以后我们叫什么?”

“说过名字不重要,随便怎么都行,不过稣比较好叫,耶比较难叫,不如还是叫稣吧?”

“耶是难叫!?感觉被你占便宜了!你以为耶不懂闽南语吗?”

“哈哈哈,你准备好接受世界的真相了吗?”

梦境一转,耶在 JFC 星巴克喝咖啡,对面坐的是凌笑越,相谈甚欢。突然一个外国美女在玻璃墙外和耶比划。

耶看出她比的是手语,于是马上就学会手语,读懂她的意思:“追她,赶紧表白。”

耶仔细看她的脸,居然慢慢从美女变得越来越像刚才的稣,于是很纳闷地问凌笑越,“你认识她吗?”

“不认识呀。”

“那真奇怪,她怎么怂恿耶追你?”

“哈哈,她可能以为我单身吧。”

“哦?原来凌姑娘不单身呀!”

吓醒。虽然接受到稣的信号,但耶还只是耶。

周末,凌笑越又来拜佛,这次耶约她拜完一起吃斋。

“耶早上做了一个梦,咱们在 JFC 星巴克喝咖啡,外面走过一个金发美女,怂恿耶追你。”

“哦,那你追不追呀?”

“你说自己不是单身。”

“我不是单身呀!”

“哦?居然猜对了!那你男朋友怎么不陪你来拜佛?”

“他还在耶鲁大学读书。”

“原来是跨国异地恋,失敬失敬……祝你们早日解脱!”

“解脱?你是诅咒还是祝福?”

“早日见面,解脱嘛!”

“死程序员,你会被打!”

后来听说,弗字辈的唐泰九、孟浩多得知这个消息后失恋了,耶倒是很淡定,因为稣的神力得到验证。

爱情的结局都是死,差别是怎么个死法。

八哥之神【17】

“喂,老爸,你是不是帮耶办过一张农行卡,自从耶大学毕业后就没用过?”

“是的,只有存折,在家里保险柜里。”

“有空去银行查查里面有多少钱,查到告诉耶一声。”

“好。嘟嘟嘟……”

挂掉电话后又听到山上传来钟声——咚咚咚。耶想起更高的后山有一个佛塔,很多年没去看了。

早晨空气寒冷湿润,发人清醒,爬山也不觉得累,很快耶就来到佛塔前。

多年前,耶因为年纪小,自然相信家长们,也相信了他们的信仰,曾经在这里虔诚祷告天地。

“希望耶认识的所有人都不要死。”

“其明,天地都有生有灭,你这样祈祷,天地也很为难!”

“那就希望所有人在耶成年前都不要死。”

“哈,哈,哈!好孩子!”

幼儿园大班毕业后的暑假,在路上遇到出殡的人群,抬着一个竹纸做的小孩。撒纸花的死亡风俗,令耶印象深刻。后来上了小学,开始知道校园附近有一口大井,曾经有个学长掉下去,再也没有捞起来。名字未知,只知道是附近部队里的解放军的儿子。因为尸体没捞上来,那口井的水无法再饮用,荒废好多岁月。

小学四年级,胆子开始大些,实地考察大井,确实是很可怕的深渊,又深又大,直径有三四十米。掉下去很难上来,即使有人救都难。

后来改造大井,抽掉大部分的水,耶再去观察,发现壁上有螺旋的路可以上下。以前水很高,没发现这些路。又一次,发现有大人走下去,在底下水边敲石块。

也许继续抽,把水抽干,可以找到学长的骸骨吧?但可能大家都忘记了,后来再也没有听说相关的事情。

这个学长有一天来梦里找耶,说自己姓鲁名耶……一年级就死了,没有体验往后的人生,让耶帮忙,因为耶的眼睛可以遍照环宇,耶的精神世界可以容纳多个意识。耶替他惋惜,就答应了。

因为见过死人,耶又一次上山祈祷:耶愿意折寿保佑家人在自己成年前都不要死。这个祷告成真了,真的等耶成年后,才有长辈过世。有四个长辈离开时,都来梦里找耶,说要把寿命还回来。

从记忆回过神,看见叔公的墓牌上写的名字是“圣德神”,这才是他未出家时的名字。耶跪倒墓前,焕然大悟——原来自己叫圣其明!上山前还记得的,上山后,学长的意识突然串线。但是还有一个问题:鲁信是怎么回事?他如果是同村人,应该也姓圣才对。

这时,释德灵从佛塔出来。

“住持,耶已经找回自己了。道信师叔不是姓鲁吧?”

“阿弥陀佛!德神大师早就知道你的问题,在他的日记里有记载不少关于你的事情。道信姓张,他只是配合你的迷失,等你自己发现。”

“德灵大师和叔公又是什么关系?”

“生殖繁衍是生物的本能和天命,人类世世代代传承。有子嗣的人传承基因,你叔公没有子嗣,只能传承名誉。”

“家族名誉、家产、技能这些都可以传承!”

“先说名吧!很多人都以为我是德神大师转世,这就是传承名誉。”

“耶看过一些经书说高僧可以先转世,生出一个新肉体和自己同时存在,等本体圆寂时,新肉体就会突然觉悟。你们是在演这出戏?”

“嗯。满足世俗人的想象。”

“这肯定不是真的。你们这不是装神弄鬼吗?”

“我从来没有承认过。我只是崇尚并继承德神大师的精神。”

“还有财产吧。”

“是的。当时我只是个送外卖的,德神大师说我有慧根,让我跟他修行,将来还能继承他的一部分财产。一开始我确实觉得寺庙这个盘子值很多钱,所以留下修行。在修行过程中慢慢皈依我佛,尤其是看了德神大师的很多手札,深深地折服。钱财乃身外之物,你账上有 106 万是我转过去的。”

“铃铃铃,喂,小明,你的存折里怎么会有 406 万?”

“喂。是叔公给的。Blah blah blah……”

“都对起来了吧?”

“是的。”

“但你还记得你的人生什么时候开始变异的吗?”

“你是说耶有精神分裂症?”

“好好想想?德神手札里记载一个你的故事,说有你高中时,有一次被神婆诊断为鬼上身,腰完全不能动。”

“好像是有这回事,后来那个女鬼跳楼自杀,耶就好了。说到怪异的事,这还不算啥,耶觉得更奇怪的是,大学刚毕业时,在第一个公司上班一年多,离职交接期间,才恍然发现太阳升起的方向和自己以为的相反,顿时觉得方向感全乱,无法接受,过一段时间,想去理清乱向的原因,却发现怎么都无法纠正。”

“这个好像和精神分裂关系不大,还有吗?”

“以前喜欢一个女神,想约她来宿舍吃饭,后来告诉一个女闺蜜,她哈哈大笑,说:‘原来你喜欢她呀!我帮你约,一定成功。’耶就回答:‘不成功,你赔我一万啊!’她说可以。然后她约好女神后,耶暗黑人格爆发,在 QQ 上黑了一顿女神,并把她拉黑。所以那天晚上,就闺蜜,来耶宿舍。她说要陪耶一晚……”

“所以你把她……”住持吞了一口水。

“是的,闺蜜狠狠地睡了耶一晚!耶把她当兄弟,没想到她居然是渣女!第二天耶就和她绝交了,一次绝交两个女生,何其壮观!”

“有点失控的味道了!鲁耶是什么时候开始影响你?”

“他是我学长,掉井里死掉的,小学就在梦里聊过几次,但一直没有什么影响。后来一个同事兼徒弟得癌症走了,同样的情况第二次发生,他也是没有体验过人生的,很想用耶的眼睛去看看,但这次,耶拒绝了。”

“为什么呢?”

“他想谈恋爱!耶觉得谈恋爱是个人私事,不能分享。”

“确实是这样。后来呢?”

“耶劝他早点投胎。现在想想,也许是鲁耶不想和太多人挤在一起,所以我们一起反对这事。见到道信师叔时,他是突然冒出来的,耶受了惊吓,而且对陌生人有一定提防,鲁耶就顺势出来撑场了。”

“这么说来,你倒是挺清醒的现在。不过有件事,你可能记错了。”

“哦?啥事?”

“你学长不是叫鲁耶,是鲁小耶!这是真名,你叔公有记载这个事。”

“呃!?鲁小耶!好熟悉的名字。凌笑越?鲁小耶?一样的缩写!难道凌笑越是耶虚幻出来的人物?”

“不是,她是真实的存在,这周末应该还会来。”

“对哦,耶有加她 Telegram,只是从来没聊过,马上找她聊聊!”

修复 Clang 编译错误:error: expected unqualified-id

问题

今天编译 EOSIO/eos 出现一些 error: expected unqualified-id

环境

  • 操作系统:macOS Mojave
  • 编译器:AppleClang 10.0.1.10010046
  • SDK:MacOSX10.14.sdk
  • Boost:1.69.0(1.67.0 也有问题,干脆用这个版本)

验证问题

1
2
3
4
5
6
7
8
9
#include <signal.h>

int main() {
::sigset_t sigset;

::sigemptyset(&sigset);
::sigaddset(&sigset, SIGCHLD);
return 0;
}

编译输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Scanning dependencies of target signal
[ 50%] Building CXX object CMakeFiles/signal.dir/signal.cpp.o
/Users/umu/umutech/macos-cpp/source/study/posix/signal/signal.cpp:6:5: error: expected unqualified-id
::sigemptyset(&sigset);
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/signal.h:125:26: note: expanded from macro 'sigemptyset'
#define sigemptyset(set) (*(set) = 0, 0)
^
/Users/umu/umutech/macos-cpp/source/study/posix/signal/signal.cpp:7:5: error: expected unqualified-id
::sigaddset(&sigset, SIGCHLD);
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/signal.h:122:31: note: expanded from macro 'sigaddset'
#define sigaddset(set, signo) (*(set) |= __sigbits(signo), 0)
^
2 errors generated.
make[2]: *** [CMakeFiles/signal.dir/signal.cpp.o] Error 1
make[1]: *** [CMakeFiles/signal.dir/all] Error 2
make: *** [all] Error 2

解决

去掉 sigemptysetsigaddset 前面的 :: 即可。因为他们是宏,宏都是全局的,用 :: 修饰反而错了,严格!

Boost 开发分支上已经修复:

https://github.com/boostorg/process/blob/develop/include/boost/process/detail/posix/wait_for_exit.hpp#L60

https://github.com/boostorg/process/blob/develop/include/boost/process/detail/posix/wait_group.hpp#L65

八哥之神【16】

寺庙人杰地灵,山上的空气质量和慢节奏的生活都是很养人的,但耶却发现自己有些焦虑。而且,这种焦虑很隐蔽,不仔细体会是无法发现的!

一天晚上耶尿尿时,手不知不觉按了冲水按钮,水冲完,尿却还没排完,只好尿完又冲一次!这太奇怪了,耶以前从来没有冲过两次!一定是内心太多疑问,导致心神不宁。耶决定早点解决它们。

晚上跑到道信师叔的寮房,开启逼问模式。

“师叔,耶有几个问题想请教你,如果不能得到解答,恐夜不能寐。”

“关于你叔公释德神吗?如果是这个你得问住持,我也很疑惑。”

“这是最大疑问,既然你不知道,暂且按下。关于耶在这里莫名受欢迎和尊敬原因,你应该知道吧?不单是因为前任住持吧!”

“是的,你受尊敬的真正原因是——你给寺庙带来更多香火!”

“这从何说起?”耶内心惊讶道,“耶没做过啥特别的事情呀!”

“你在老家是不是有点名气?”

“一般吧!”

“你从小就反对迷信,大人们经常教训要尊敬天地,鬼神之说宁可信其有不可信其无。但你坚决不信!”

“是有这回事!好多邻居都觉得耶很铁齿,他们应该看耶不爽,但因为耶学习成绩很好,所以他们都不好说啥。”

“说到点上了,你成绩很好,多次拿第一。在这点上,你比自己想的还出名。因为你来本寺,家里的人都宣传开了,很多神婆都认识你,说连你也信这寺庙,大家纷纷跑来这里烧香,都说这里很灵。后来又带动了别的镇。除了你自己,大家都知道是你的功劳,所以把你当宝!”

“卧槽?还能这样!耶是被你们卖了,还帮你们数钱?”

“不能这么说,这叫合作,双赢!”

“那可以给耶分红吗?”

“有的,有的!你叔公老早就用你名字开户,你爸没和你说而已,现在账上起码有三百万!”

“卧阔!难道是真的?是农行的吗?耶之前一直收到农行的短信,老当耶有很多钱时不时就安利高起点的理财产品,还以为他们发神经。耶自己没开过农行账户,读书时老爸给开的户里面现在只有两千块。”

“是啊,就是农行,你找住持,他会先帮你做个心理治疗,然后把存折还给你!”

“心理治疗?”

“突然发财,要安一下神……先回去睡吧,住持睡得早,明天再找他。”

耶正要转身离开寮房,就想起还有好多问题忘记问,内心不禁卧槽连连,差点又被哄了。

“叔公那么多侄孙,难道只给耶留遗产?”

“好像真是这样。你记得以前做了什么特别的事情,让他老人家眷顾吗?”

“这个真得好好想想。”

“那你回去躺着想吧!”

耶很想整明白,但睡觉实在太有意思了,还是先睡吧!临睡前,预定一个日程,第二天打电话给老爸问银行卡的事情。