Skip to content

Latest commit

 

History

History
249 lines (152 loc) · 14.1 KB

202004.md

File metadata and controls

249 lines (152 loc) · 14.1 KB

“系统架构部”周刊2020年04期

0. 目录

农历2019猪年最后一期。读完本期周刊,大概要花费您10分钟的宝贵时间,不过都是干货,绝对超值哦。

周刊每周五准时发布,欢迎您提交Issue或者联系主编黄老邪(wx: bingoohuang),向本周刊投递有值得分享的内容哦,简短的一张图一段文亦可。

1. 心理学:"茅台酒为什么好喝"好比"你为什么这么优秀"

贵州省原副省长王晓光家中堆有4000多瓶茅台,落马前将茅台年份酒倒进家中下水道以销赃。接着又曝出深圳一家国企年会,一晚喝掉16万茅台……

耶鲁大学心理学教授Paul Bloom讲了一个科学实验。这个实验是让品酒人躺在 FMRI(功能核磁共振成像)机器上,嘴里含一根吸管吸酒喝。实验人员换不同的酒,告诉品酒人现在喝的是什么酒(有时候撒谎有时候说真话),同时用 FMRI 对大脑成像来监督味觉体验。如果真的是味道好,大脑成像中某些部位会亮。

image

这些研究的结果说明,人们说茅台好喝,是真的感觉到了好喝,不是装的。但这有个前提,就是品酒人得知道那是茅台。如果不知道,那就很难喝了,而且也不是装的,是真的难喝。

茅台为什么好喝?因为它贵。

说白了,就是神奇的心理作用。正如《功夫熊猫》里鸭爸说的:

只要你相信有秘方,吃起来味道就不同。

黄老邪从中读出的道理,当然不是“我为什么不喝茅台,因为我(?)"的逻辑啦,而是:

要多相信“自己行”,“你可以”,“你很优秀”。不要吝于给自己,给周边的小伙伴们,多鼓劲,多加油,有困难要上,“没困难创造困难也要上”的积极进取的精神。

更多阅读茅台为什么好喝?——耶鲁心理学教授的解析

2. 好密码:破解它竟然需要3万亿年

有这么一个网站,可以用来验证你的密码有多安全,比如我的密码安全级别就是这样子的:

image

(如果你发现,我的截图竟然是中英文对照的,而你却没有这种效果,那肯定是你错了本周刊第一期的内容。)

你自己输入自己的密码,如果发现,才3分钟就能破解,你一定会好奇我的密码,咋就那么牛皮呢?然后”百度“一番,找到一些生成复杂密码的办法,比如:

  1. 使用openssh: openssl rand -base64 14
  2. pwgen可以在短时间内生成一个随机且高强度的密码:pwgen 14 1
  3. GPG (GnuPG 或 GNU Privacy Guard) 是一个自由开源的命令行程序,可以用于替代赛门铁克的 PGP 加密软件: gpg --gen-random --armor 1 14
  4. 等等,更多见生成密码的四种形式利用Linux系统生成随机密码的10种方法
$ openssl rand -base64 14
vi8K3w/bxpFHL8HJbu4=
$ pwgen 14 1
xuucheiraeS4oo
$ gpg --gen-random --armor 1 14
ZTK4PiGoLHKjsBh4Eco=

可是,生成是难题么,不是,方式太多了,难题是,我记不住啊记不住。

黄老邪:来,我告诉你, 我的那个需要3万亿年才能破解的密码是:jJkgz1~jZszgscsd,注意,这个可不是我拷贝黏贴的,是我从键盘上很流畅的敲击进去的

刘金良:复杂度肯定是够了,可是这密码着实不好记啊

黄老邪:哈哈,好记啊。这是我京东jd的密码。j京口瓜洲一水间钟山只隔数重山d,变换一下,就是jJkgz1~jZszgscsd

刘金良:厉害,这首诗我很熟悉,京东的密码,故事又刚好是京子打头,一下子我就记住了,666

黄老邪:这种结合古诗词的,又好记忆又有强度,这可是我一般不外传的密码方法,看在你跟我关系不错的份上,也分享给你吧

刘金良:确实,你这个水转义的好

如今,为了办好”周刊“,我又把这些藏在箱底的好东西,再一次无私分享给大家了。

假设有古诗”绿蚁新醅酒,红泥小火炉",那么密码可以是61Xp9Hn<hl,如果作为京东的密码,那么就是j61Xp9Hn<hld,如果是淘宝的密码,那么就是t61XpjHn<hlb,小伙伴们,你们get√到了么?

更多阅读,请移步使用古诗词创建好记的密码

3. 加个密:FPE保形加密算法

格式保留加密(FPE,Format Preserving Encryption,也被称之为保形加密)是一类特殊对称加密算法,它可以保证加密后的密文格式与加密前的明文格式完全相同, 例如通过FPE算法对由16位数字组成的银行卡号进行加密后仍为16位数字。格式保留加密常用于数据脱敏项目中,由于其可以保持加密后的数据格式不变,从而具有无需更改数据库范式以及对上层应用透明的优势。

image image

由于FPE保持密文和明文具有相同格式的特征,因此特别适用于数据脱敏领域。一方面FPE是一种加密方式,可以对敏感数据(例如手机号码、身份证号码、银行卡号等)进行加密存储, 可以有效降低因黑客入侵导致的敏感信息泄露。另一方面基于FPE实现数据脱敏在一定程度上可以替换传统基于掩码的数据遮蔽方案,并对敏感数据进行伪装转换使得加密后的数据看起来和真实数据一模一样, 在测试、开发、外包等环境中使用更加友好。在使用FPE进行数据脱敏的时候如果不考虑解密,可以为FPE生成随机密钥,这样安全性会更好。但如果需要解密操作就需要额外设计一套FPE密钥存储管理机制,以防止密钥被窃取。

3.1 FPE和AES对比

FPE算法可以保证加密前后数据格式保持不变,除此之外还包括以下特点:

  1. 数据长度不变。加密前长度是N,加密后长度仍然是N
  2. 数据类型不变,加密前是数字类型,加密后仍然是数字类型。
  3. 加密过程可逆,加密后的数据可以通过密钥解密还原原始数据。

3.2 一种应用场景

需求:输入一个从1开始自然增长的级数数字(counter,例如内部订单号),得到一个看起来随机(外部订单号),具有不超过指定位数的加密数字。

答案:利用保形加密算法FPE来实现,完美,例如:

内部订单号 外部订单号
000 733
001 374
002 882
003 684
004 593

4. 懂DDD:一幅图学DDD,DDD基础之提炼Domain Primitives

image 图片来自1

image 图片提炼自2 3

5. 过好节:每逢佳节重三斤,如何是好

人家是每逢佳节倍思亲,我是每逢佳节重三斤,不对,是三公斤。因此小编特此汇总了一幅图,送给大家:

image

图片来源 1 2

不过黄老邪的建议是:

  1. 油炸少吃,其它随意。
  2. 想吃就吃,开心最好。
  3. 吃饱了才有力气减肥。

6. 吐个槽:fastjson这么快,为啥老外还是热衷 jackson

来自知乎甘明

image

JSON从发明到现在非常流行,并不是因为json快的原因(比JSON快且小巧的格式和类库一大把),而是因为JSON和web结合的时候更易于使用,对开发人员易于理解。

很多人拿fastjsonjackson比,就像拿非智能机和iphone比待机时间,其功能性不一样,jackson的很多功能fastjson并没有实现,所以这种对比也不客观。

fastjson之所以没在国际上流行起来,最主要的原因应该是开发者的思路全放到“快”上去了,而偏离了“标准”及功能性,质量也不够好,有点“舍本逐末”的味道。

7. 参个禅:无码之码第五案:void之本性,何也

image

风高秋日,Java大师在搅扰中醒来。他起身独自游走,以清除杂念。

大师走到三石庙;在此,尚有人练习ANSI C之道。一博学修士在把门。

大师问,“void之本性,何也?”

“void本无性”,修士答。“无口之犬,其所叼之木;无意之手,其所指之处。void者,无值之至也。”

大师心想,“三石庙无需把守。其中必无有价之物。”

随即,大师走到白石天庙;在此,仅有理论学者,仅许用ML。荒芜的花园中,一修女在尘中写匿名函数。

大师问,“void之本性,何也?”

“void,天之色泽,雾之斤两”,修女答。“叩之,其声如新月躲入云中。取空碗一只,其中void尽可取也。”

大师心想,“伊未言谎,亦未言实”。

再行,见一庄园;在此,一婆婆在修剪树篱。

大师问,“void之本性,何也?”

婆婆一行礼,一言未发,接着修剪树篱。

大师心想,“此为大智,亦或为大愚”。

天色渐暗,大师来到无人的墓地。

大师问,“void之本性,何也?”

院落静悄悄,没有回答。

Java大师便满意了。

8. 挖底层:Docker底层技术CGroups了解一下

image

更多资料

9. 解魔术:魔术数字125000是个啥

领导那天在看监控,看到了网络抖动,看到了一个神秘的数字,125000,大惑不解,让我帮助解疑一下,于是,我便试着解读了一下这个魔术数字。

9.1 查明一下来源

开源的好处chronograf中的魔术数字125000

image

源文件

{
	"name": "System – Network Mb/s",
	"queries": [
		{
			"query": "SELECT non_negative_derivative(max(\"bytes_recv\"), 1s) / 125000 AS \"rx_megabits_per_second\" FROM \":db:\".\":rp:\".\"net\"",
			"groupbys": [],
			"wheres": [],
			"label": "Mb/s"
		},
		{
			"query": "SELECT non_negative_derivative(max(\"bytes_sent\"), 1s) / 125000 AS \"tx_megabits_per_second\" FROM \":db:\".\":rp:\".\"net\"",
			"groupbys": [],
			"wheres": []
		}
	]
}

image

9.2 习惯谷歌一下

125000的解释

100Mbps 意味着 12,500 Kilobytes每秒,或者12.5 Megabytes每秒,或者8秒内下载100 Megabyte的文件,或者80秒内下载1 Gigabyte的文件。

image

9.3 然后总结一下

  • 千兆网卡中的所谓1000M,实际上是1000mbps,就是1000*1000*1000bps,就是1000*1000*1000/8 bytes per second,就是125M字节每秒。
  • chronograf中除以125000,实际上是将网卡速度的单位调整到Mb/s,正如name中System – Network Mb/s和label的Mb/s中说明的一样。
  • 按照单位Mb/s,如果千兆网卡的网速如果达到了125Mb/s,那实际上就是网卡已经被流量打满了。

10. 历史周刊回顾

上一期周刊 鼠年快跑之跑越快学习能力越好

image