无人在意的八哥

1. 主题曲《像屎》

实习生黑锅
是很遥远的事情
八哥算什么
早无人在意
前埔不夜城
处处烤鱼
酒杯中好一片男男风情
最肯忘却故人失
最不屑一顾是相思
养着老怕人笑
还怕人看轻
新又来看乱码呆
竟不见有心人去改
庸才占着茅坑前途不在

2. 百度分享不支持 HTTPS

百度分享不支持 HTTPS 的解决方案:https://github.com/hrwhisper/baiduShare,最早是 2016-07-09 发布,说明百度分享不支持 HTTPS 已经两年以上。

结论

百度可能听不进用户的话,用户宁愿自己解决问题……稣也亲自反馈过,应该是被无视了,至今还没官方支持!

3. Linux 内核代码风格翻译错误

Linux 内核代码风格 v4.19

分配一个零长数组的首选形式是这样的:
p = kcalloc(n, sizeof(...), ...);

原文是“The preferred form for allocating a zeroed array is the following:”,所以“零长”应该改为“填零”。

kcalloc 的文档也说:“kcalloc — allocate memory for an array. The memory is set to zero. ”

kcalloc 的定义 /include/linux/slab.h 更能说明:

1
2
3
4
5
6
7
8
9
10
/**
* kcalloc - allocate memory for an array. The memory is set to zero.
* @n: number of elements.
* @size: element size.
* @flags: the type of memory to allocate (see kmalloc).
*/
static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
{
return kmalloc_array(n, size, flags | __GFP_ZERO);
}

“零长数组”应该是指:char u[0];

结论

疑智商太高,学习太快,中国的内核开发者都不屑看翻译的文档。

MongoDB db.stats() 的各种 Size

现象

db.stats() 的各种 Size 需要理理,先看例子:

1
2
3
4
5
6
7
8
9
10
11
> db.action_traces.dataSize()
12489840963

> db.action_traces.totalSize()
5391249408

> db.action_traces.storageSize()
3684032512

> db.action_traces.totalIndexSize()
1707216896

概念解释

db.action_traces.stats() 里的 size 就是 db.action_traces.dataSize(),也就是数据本身的逻辑大小。

由于数据库引擎有压缩概念,所以存储到介质时,可能占用的空间并没有逻辑大小那么多,比如 WiredTiger Storage Engine 的压缩率就挺不错的,dataSize = 12,489,840,963 字节的数据,存到硬盘只有 storageSize = 5,391,249,408 字节。

其中 totalIndexSize 是索引占存储器的大小,所以 totalSize = storageSize + totalIndexSize。

注意:索引有时会比数据本身还大……

参考

db.collection.stats() — MongoDB Manual

db.collection.totalIndexSize() — MongoDB Manual

db.collection.dataSize() — MongoDB Manual

db.collection.storageSize() — MongoDB Manual

db.collection.totalSize() — MongoDB Manual

截屏热键怎么设置才能截菜单?

稣习惯使用 Ctrl+Shift+A 或 Ctrl+F12 作为截屏热键,而微信 PC 版的默认截屏热键是 Alt+A。

今天被人问“怎么截菜单?”稣一脸懵逼,回答:“和截其它,有什么不同吗?”对方说:“一按截屏热键菜单就退出了!”

稣恍然大悟,原来 TA 没改默认热键,只要按下 Alt,菜单确实会退出……

默认的不一定最好。PS:TX 程序员不懂这个道理吗?为什么选择 Alt+A 这样奇葩的组合!

阿理银

2018-04-17,收到阿理面试通知邮件,开始观测。

2018-06-01,猎头和面试官都确认全部通过,只是遇到晋升季,HR 比较忙,会延迟谈 offer。稣同时还在面其它公司,所以觉得延迟点更好!

整个面试过程,亲身体会到阿理面试的专业性:有当面聊、写代码笔试、电话技术面两轮、HR 两轮。其中其它部门的技术官面试在专业上叫“交叉面试”,这是稣原公司没有的环节。另外,HR 有一票否决权,这要求 HR 的专业性要很高,否则很难服众。

2018-06-07,主面试官问能不能去杭州,稣其实早就想过这问题,他问的是能不能去 1 年,这远低于稣的预期,直接回答可以去 18 个月。稣 2010 年去过一次杭州,印象太好了,所以去几年,要是混得好,定居是没问题的。

期间,知道好多同事也面了,但他们大多选择待在厦门办事处,有些直接表示非厦门则拒。稣劝过,厦门只是个办事处,可能不长久,最好还是狠点,考虑长期利益去杭州。

2018-08-31,是在原公司最后一天。就在前一天,稣的选择还是不开竞业协议就去阿理银,开了就不去。原计划休息一个月,等 HR 把 offer 理清楚。然而由于稣太穷了,休息一个月?不可能滴,天不让!一辈子也别想休息……

整个 8 月份,现在的公司就每隔几天来催赶紧入职,直到最后一天,稣终于没有其它选项。09-04 入职,中间只休息了一天!

插播一句:现公司很豪爽,把稣的入职日算到 09-03,多发了一天工资!第一天就感动得一把鼻涕……

2018-09-10 早,杭州来电:

- 您好,我是你爸爸 HR,想和您沟通一下,阿理银的 offer。
- 哦……(心理活动:我爸爸?哦,原来是阿理爸爸)稣这个月才刚换公司,过几年吧。谢谢啊,谢谢!
- 这样啊,那不打扰您了,祝您工作顺利。

2018-10,稣了解到的厦门阿理银情况,越来越像自己预料的,混乱、军心难聚。加班太厉害,大家叫苦连天,大佬都在杭州、上海,沟通不便。

当然,稣只能看到槽点。因为如果有些人在厦门阿理银混得很好,他肯定不会找稣吐槽。不过,光看这些问题,稣完全有优势,这些都是稣善于解决的问题。

稣是说如果……厦门阿理银以后如果撤了,很可能就是因为——错过了稣。反过来,如果壮大了,那是某些人的不幸,稣是看好阿理文化的。

这次没有吓醒。

赚大钱的套路都是一样的

1. 一个幻想

如果全世界每人给我一毛钱,那我不是有六个亿了?

这个套路是收割大量粉丝,很遗憾普通人做不到。

2. 改进版——收割未来

思考一个问题:市盈率为 1000 是什么意思?

另一个比较平民的问题:厦门房屋租售比高达 1∶756 是什么意思?

答案:

靠分红至少 1000 年才能收回本金。

靠收租 63 年(即 756 个月)才能收回购房本钱。

公司上市后,核心员工拿到的红利,本质上是未来的钱,其它自己拿钱去买股票的人,都是潜在收割对象。其中有一种,比较特别的人是:后期加入没有分到股票、期权的员工,他们因为对公司有感情,得到消息也比外界散民多,所以自行买入,甚至参与员工持股。

请自行搜索:一个惊人的数据——员工持股七成被套!

有人在房价上升期买了房子,两年后就卖了,赚到可观的差价。有的倒霉蛋,买完,房价就不涨了,靠收 63 年租是很悲剧的,毕竟房子寿命一般 50 年,属于您的时间最长也就 70 年。

3. 除了死,一切趁早。

请自行搜索:1900名高管辞职创近5年纪录

中国股市这一轮暴跌导致了中产阶级和平民怎么样的损失?

所有人都在谈论中产阶级和平民,却没有注意到高层,也就是那些上市公司的控股股东,他们才是真的惨。因为普通人炒股很少带杠杆,而股东们,基本上全都带有杠杆。

EOSIO 资源分配机制

本文为 MEET.ONE 发布的《EOSIO CPU 资源分配原理分析》 的个人版本,稣是其主要编辑之一。

1. 相关概念

您没看错,以下要介绍的几个概念,都是金融词汇。稣的柚子系列文章,又名《程序员转行做金融》,并兼职卖柚子……

  • 存款准备金率

    Deposit-reserve Ratio。存款准备金是指金融机构为保证客户提取存款和资金清算需要而准备的,是缴存在中央银行的存款,中央银行要求的存款准备金占其存款总额的比例就是存款准备金率。

    经常能听到的“降准不降息,等于装牛逼”里面的“降准”全称就是“降低法定存款准备金率”。

    举个外星的例子:如果存款准备金率为 1‰,就意味着金融机构每吸收 1000 元存款,要向央行缴存 1 元的存款准备金,用于发放贷款的资金为 999 元。

  • 挤兑

    Run on Banks。在银行券流通的条件下,银行券持有者争相到发行银行券的银行要求兑现贵金属货币的现象。当一家银行的信用发生动摇,准备金不足,银行券兑现发生困难,就会发生挤兑。挤兑可能使一家银行倒闭,甚至波及整个银行业。现在一般是指存款户集中地大量地到银行提取现钞。

  • 涨跌停板制度

    这个不解释了……就问一句:连续 5 天跌停和一天暴跌 41%,您喜欢那种?如果您喜欢没有板的,再多问一句:一天暴跌 99.9% 您觉得怎么样?

  • 峰谷电价

    又称“分时电价”,也很好理解。再举个类似的例子:下班高峰期打的,不加价基本打不到,因为别人加价优先接单。

2. 资源分配基本原则

EOS 账户可用资源与其抵押给资源的柚子数量的关系是:可用资源 = 总可用资源 * 本用户抵押数量 / 全体用户抵押数量。从这个关系上看,存在两个风险:

  • 大户挤兑散民;
  • 占着茅坑不拉屎。

第一个问题,用成本来解决,要通过加仓把别人的比例减少,按目前 3-4 亿的抵押量来说,需要付出的代价极高。

第二个问题,则通过引入一个放大因子来解决。之所以能放大是因为,某个时间点不拉屎的确实占大多数。只要把您拉屎的时间,除以一天的时间,就可以算出您一天拉屎的占用率。相信是很小的,笑……虽然您有柚子,就有拉屎的权利,但您自己不拉,让给需要拉的也是合理的,毕竟资源利用起来才是好事。

以 CPU 为例,计算公式为:

可用 CPU 微秒数 = max_block_cpu_usage * (account_cpu_usage_average_window_ms / block_interval_ms) * staked_cpu_count / total_staked_cpu_count

其中 max_block_cpu_usage 是可配置的,当前主网配置为默认值 default_max_block_cpu_usage = 200000

所以 max_block_cpu_usage * (account_cpu_usage_average_window_ms / block_interval_ms) = 34560000000

以主网 2018-10-19 为例,CPU 总质押量为 280053493.80756617 EOS,所以每个 EOS 可用 123.40 us。注意:这个数值是没有放大过的。

3. 堵车问题

EOS 定义了两种资源使用状态:拥堵、空闲,由过去一分钟每个块的平均使用量来界定。还是用 CPU 说事:大于 max_block_cpu_usage * target_block_cpu_usage_pct 则进入拥堵。

两个状态下的可用量本来应该有 1000 倍的差距,但因为有涨跌停板保护,并不会直上直下。每一分钟,只能跌到 99/100,只能涨到 1000/999。所以从拥堵开始到绝对拥堵,有 log(0.001) / log(0.99) = 687 分钟之长;从绝对拥堵完全恢复更慢,是 log(1000) / log(1000/999) = 6904 分钟。目前的 target_block_cpu_usage_pct 已经从 10% 调整到 20%,它提高了总使用量临界值,使拥堵状态更难触碰。

可用量的变化过程是可能随时改变方向的,类似多头和空头拉锯。比如拥堵时,可用量变少,能够使用资源的用户也随之减少,使用量降到阈值以下,可用量又会开始慢慢上升。

4. 阈值的设定

max_block_cpu_usage 和 target_block_cpu_usage_pct 都是可以配置的,为什么不一次性配高点呢?主要考虑的因素是,目前各个 BP 的机器性能参差不齐,如果冒然的把这两个值调高,可能会导致节点 replay 变慢,同时对于配置低的机器来说,同步区块也会很吃力。别忘了,我们的准备金率才 1‰,属于严重超发,提高可用率,虽然会使拥堵来得晚点,但真到拥堵的那刻,爆发的能量可是更大的哦!

总之,还是稳一点好,慢慢涨经验。目前来看昨天的调整,对节点之间的同步、CPU 使用率没有太大影响。

5. 参考

EOSIO 代码

EOS资源模型

诗盗·肥肉是精神累赘

《#诗盗#·肥肉是精神累赘》:码农低薪城鱼贵,山鸡高瘦厦羊肥。穷不顾身富健美,老来病残高消费。

注解

农民进城写代码,发现农村一斤十几的黄翅,城里卖三四十,实在吃不起……
闽清山里有种高脚鸡,几乎没有肥肉,连皮也没有油脂,但是抓回厦门的农村养,全都养肥了!更何况那些肥羊!大量脂肪都是输送到农村富集起来,吃不完的肥肉拿去喂鸡,鸡都肥了,人再吃肥鸡,循环肥胖。
去城里超市买羊肉,只能吃得起一斤三十的肥羊肉,而在山里,几乎没有肥肉的羊肉一斤才六十,这要在城里估计得上百了,突然分不清哪里的消费高。在城里因为穷,吃不起好的品种,回到山里才能吃得起。
最后不得不得出一个结论:穷人才容易吃胖!这是在浪费生命啊!

诗盗·量子邪稣

《#诗盗#·量子邪稣》:生死无待,诡道莫测,量子邪稣藐神话。

注解

生死无待:叠加态
诡道:诡异的轨道
莫测:海森堡测不准原理

霹雳角色“昊天”的诗号:

一睨仙魔惊叹,一笑天地独尊。六界布武,在予一人,始主藐神话

为什么稣不追星?

高中时,很多同学听磁带,谈论共同的明星,稣听的全是一些没人唱的曲或者相对冷门的歌手唱的,于是乎同学都以为稣不追星……

这个误解好大!其实是稣惊讶地发现小小的一个耳机就可以替代所有歌星,歌星唱功再屌,它也可以播放,稣大胆预测将来 AI 可以代替任何人唱歌,所以稣追的星,其实是——耳机。

后来为了保护听力,改为扬声器了。