理查德·汉明(Richard Hamming):第27章。无效数据

“本课程的目标是为您的技术未来做好准备。”

图片 哈Ha 还记得那篇很棒的文章“您和您的工作” (+219,带有2394书签,读取386k)吗?

因此,汉明(是的,是的,自我检查和自我纠正的汉明代码 )根据他的演讲编写了一整本书 。 我们正在翻译它,因为那个人在谈论生意。

这本书不仅是关于IT的书,还是关于令人难以置信的酷人的思维方式的书。 “这不仅仅是积极思考的冲动; 它描述了增加做出色工作机会的条件。”

我们已经翻译了21章(共30章)。 我们正在纸上版。

第27章无效数据


(感谢翻译,Valentin Pinchuk,他在“上一章”中回答了我的电话。)想要帮助本书翻译,排版和出版的人-请写电子邮件或magisterludi2016@yandex.ru

根据我的经验以及许多其他研究人员的经验,通常而言,数据的准确性远低于声明的准确性。 这不是一个容易的时刻-我们既要取决于决策的初始数据的选择,也要取决于建模过程中的初始数据(根据决策的结果)。 由于错误的性质非常多样,并且我没有统一的理论来解释所有错误,因此我必须继续研究单个示例并从中进行概括。

让我从耐久性测试开始。 一个很好的例子是我参与真空管生命周期测试的经验。 它们旨在用于语音传输的第一条海底电缆中,预期使用寿命为20年(22年后,我们刚刚淘汰了该电缆,该电缆变得太昂贵了-这可以很好地理解当时的技术进步速度)。

大约在18个月的时间内,如何在水下将电缆本身降下,就获得了用于电缆的管道。 我有一台基于专业统计计算器IBM 101的中等容量计算设备,该设备已提供给数据处理人员。 我还主要在计算的技术方面为他们提供了帮助。 同时,我丝毫没有参与该项目的直接工作。 但是,一旦一位项目经理向我展示了存储在阁楼中的测试设备。 像往常一样,我问自己:“为什么要确定测试设备与测试设备具有相同的可靠性?” 他的回答使我确信他根本没有考虑过。 由于加深细节是徒劳的,我离开了这一课。 但是我并没有忘记问题本身!

随着我们对于越来越大,越来越复杂的系统需要越来越多的可靠组件,耐久性测试变得越来越重要,越来越复杂。 基本原理之一是加速测试过程,该测试过程基于以下事实:随着温度升高17°C,许多(但不是全部)化学反应的速度提高了一倍。 增加工作电压的方法也用于加速对弱点的识别。 测试芯片时,类似的效果会增加时钟频率。 但是,即使方法的复杂应用也不能保证有关耐久性结论的基础的强度。 但是,专家对此回应说:“面对时间和金钱的限制,我们仍然可以做什么?” 毕竟,科学发现与技术实施之间的时间间隔正在不断缩短,因此,在新设备投入广泛使用之前,实际上没有时间进行新设备生命周期的真实测试。 而且,如果您仍然愿意确保这一点,那么您将永远落后于生活。

当然,除上述以外,还有其他旨在研究其他方面的测试方法。 到目前为止,我一直坚信这些耐用性测试的基本知识the可危,但是还不存在! 曾几何时,我曾在贝尔电话实验室(Bell Telephone Laboratories)辩称,有必要建立一个测试耐久性的部门,该部门的任务是在仅计划开发而不是随着成品设备问世时才准备测试新设备。 我没有成功,尽管我对从何处开始做出了相对较弱的假设。 没有时间进行耐久性测试的基础研究了-它们在截止日期之前承受着最大的压力:明天才能获得必要的结果。 俗话说:“永远没有足够的时间来做正确的事,但是总会发现它可以纠正错误”,尤其是在计算机软件中!

我将为您提出以下问题:“您希望如何测试要求高可靠性的设备(或设备组件),当测试设备的可靠性较差时,测试时间将非常有限,但设备的使用寿命非常长”。 这个问题将来肯定会折磨您,因此最好现在就开始考虑它,以便概述在需要时间来获得耐久性测试结果的情况下解决该问题的方法。

现在让我谈谈测量的某些方面。 例如,贝尔电话实验室的一位朋友是一位非常好的统计学家,他发现他分析的某些数据不准确。 他对是否需要重新测量的论点并没有说服部门负责人,后者坚信下属的可靠性,此外,所有测量仪器都使用铜板来确认其准确性。 然后,在一个好的星期一早上,我的朋友来上班,说他星期五在回家的路上忘记了在火车上的公文包,失去了一切。 该部门的负责人必须下达命令进行重复测量,然后我的朋友提出了最初的笔记,并表明它们有何不同! 当然,这并没有增加他的声望,而是揭示了测量的不准确性,这些测量随后起着至关重要的作用。

同一位伙伴统计人员曾经使用董事会的电话为外部公司进行研究。 这些数据被中央办公室的设备精确记录,该设备进行了呼叫并编制了付款文件。 有一天,他意外地发现了一个不存在的办公室的电话! 然后,他更仔细地检查了数据,发现在几分钟内连接到不存在的办公室的呼叫比例很高! 数据是由进行调用的同一台机器记录的,但它是错误的数据。 因此,您甚至无法依靠机器将正确记录有关其自身的数据这一事实!

我的兄弟曾在洛杉矶空气污染控制服务局工作了多年,曾告诉我说他们透露需要重新组装,校准和安装他们购买的所有新工具! 否则,尽管存在供应商的保证,但准确性仍然存在无尽的问题!

我曾经为Western Electric做过很多硬件研究。 他们从100多个设备样本的记录中为研究提供了18个月的主要数据。 我问了一个明显的问题,为什么我应该相信数据的一致性?例如,记录中是否可以处置不存在的设备? 他们保证自己考虑了一下,查看了所有数据并添加了一些伪事务以排除此类情况。 我不顾一切地相信它们,直到后来的工作过程中,我才发现数据中仍然存在残留的矛盾,因此我不得不先寻找它们,然后排除它们,然后再次重新计算所有数据。 从这一经验中,我学会了在对错误进行彻底分析之前不要开始处理数据。 他们抱怨我的速度慢,但几乎总是我发现数据有误。 当我向他们介绍时,他们被迫承认我的谨慎是合理的。 不管数据有多么不可侵犯以及有多迫切需要一个答案,我都学会了如何对数据进行预测试以确保一致性并最大程度地减少不同值(异常值)的数量。

还有一次,我作为发起人,然后作为顾问,使用租用的UNIVAC计算机在纽约进行了一次大型AT&T员工研究。 数据必须来自许多地方,因此我认为最好先进行试点研究,以确保所有来源都了解正在发生的事情的本质,并知道如何使用必要的数据来准备IBM打孔卡。 我们做到了。 但是,当主要研究开始时,一些消息来源并未按照收到的说明填充打孔卡。 我立即清楚地知道,小规模的试点研究一直贯穿于经过当地培训的打孔卡专家小组,而主要的研究则遍及了通用的打孔卡小组。 不幸的是,他们对试点研究一无所知! 再次,我比我想象的要不合理:我低估了一个大型组织的内部机制。

但是基本的科学证据呢? 国家标准局发布的10个基本物理常数(光速,阿伏伽德罗数,电子电荷等)提供了两个数据集(用于1929年和1973年)和相应的计算误差(见图27.I)。 。 很容易看到是否:

  1. 将1973年的数据集视为正确的数据(根据该表说明了版本之间在44年间数千次确定物理常数的准确性的提高),
  2. 计算常数新值与先前值的偏差;
  3. 计算该偏差超出上次计算误差的次数,
  4. 那么平均而言,此偏差要大5.267倍(作者将最后一列R的值添加到表格中)。

您可能已经假设物理常数的值是经过仔细计算的,但是现在您可以看到它们有多不准确! 以下对物理常数的选择(见图27.II)显示了平均误差的一半。 但是,人们只能猜测在未来20年后将以这种准确性发生什么! 想打赌吗?

图片

图27.l

签名:“不可靠的数据”测量的准确性(百万分之一)

资料来源
伯吉,RT; 一般物理常数Rev.的可能值 的Mod。 物理 1(1929)1;
科恩,E。理查德; 泰勒·巴里(1973)。 “ 1973年对基本常数的最小二乘调整”(PDF)。 理化参考数据杂志。 2(4):663–734。 Bibcode:1973JPCRD ... 2..663C。 doi:10.1063 / 1.3253130
科恩,E。理查德; 泰勒,巴里N.(1987)。 “ 1986年的CODATA建议使用基本物理常数的值。” 国家标准局研究杂志。 92(2):1-13。 doi:10.6028 / jres.092.010

这一点也不奇怪。 我最近看到了一张哈勃常数(红移对距离的依赖线的斜率)的测量表,这是现代宇宙学的基础。 许多值超出了为其他大多数值声明的错误。

因此,直接统计测量表明,即使表中最精确的物理常数也根本不如所述精确。 怎么会这样 粗心和乐观是两个主要因素。 一项经过深思熟虑的研究表明,我们接受培训的现有实验技术也不理想,并且会导致误差估计的误差。 我们将进行实验,以了解您的实际情况,而不是理论上的情况。 您收集并打开设备,然后,设备当然无法正常工作。 因此,您需要花费一些时间(通常是数周)才能使其正常工作。 现在您可以接收数据了,但是首先您需要对设备进行微调。 怎么了 通过设置以获得一致的数据。 简而言之,您可以实现较低的色散,但是您还能做什么? 但是,这些数据分散性很小,您可以传输统计信息,它们被用来评估可变性。 由于设置正确,您不会传输正确的数据-您不知道该怎么做-传输低分散的数据,并且从要声明的统计信息中获得了很高的可靠性! 这是实验室的常规做法! 数据的可靠性很少与声明的一致并不奇怪。

图片

图27.II

我会让你想起汉明规则:

在90%的情况下,下一次独立测量的结果将超出先前90%置信水平所假定的极限!

当然,该规则稍微夸大了事实,但是用这种表述更容易记住-有关测量精度的大多数已发布信息远没有所陈述的那么好。 实验本身的历史证明了这一点,并以规定的准确性反映了随后发现的差异。 我没有试图获得一笔用于进行大规模研究的经费,但是我对其结果毫不怀疑。

当数据和模型本身均存在错误时,可能会遇到的另一种惊人现象是在模型中使用数据。 例如,假定为正态分布,但实际上尾部可能比模型预测的尾部更大或更小。 或者,尽管可以使用正态分布,但无法获得负值。 然后有两种误差来源:测量误差和模型误差。 由于现实模型的不匹配,您进行越来越精确的测量的能力只会增加对误差的贡献。

我记得我当计算机公司董事会成员时的经历。 我们打算切换到新的计算机家族,并为新模型的成本进行非常准确的估算。 然后,销售专员表示,以一定的价格,他将能够收到10个订单,另一个订单-15个订单和第三个订单-20个订单。 他的假设(我不是说它们是错误的)与经过验证的工程数据结合起来,可以决定新模型的价格! 即,主要是在考虑工程计算的可靠性的情况下确定总量,而忽略了销售专家的假设的现有不确定性。 这对于大型组织来说是典型的。 谨慎的估算与任意假设相结合,整体可靠性与工程组件的可靠性相同。 您可以问一个公平的问题,当将其与其他任意假设结合使用时,为什么要打扰彻底的工程估算,但这在许多活动领域都是普遍的做法!

我首先谈到科学和工程,以便您在过渡到经济数据时不会太讽刺。 我读过几次莫根斯特恩的《经济维度的准确性》一书,普林斯顿出版社,第二版。 这是一位备受推崇的经济学家。
双方都说,我从他的书中最喜欢的例子是从一个国家到另一个国家的黄金流动的官方数据。 数字有时可能相差两倍以上! 如果他们无法获得有关黄金流向的正确数据,那么哪些数据可以是正确的? 我可以看到,由于关税差异,将电气设备运到第三世界国家时可以被称为医疗设备,但是黄金就是黄金,几乎没有别的名字。

Morgenstern指出,杜邦化学曾经拥有通用汽车约23%的股份。 您认为在计算国民生产总值(GNP)时是否考虑到了这一事实? 没办法,结果是重复计算!

举例来说,我发现不久前,当用于库存报告的税法发生变化时,许多公司都改变了其报告方法,以从新法规中受益。 为此,他们必须减少商品和材料的展示,并因此减少交税。 我没有在《华尔街日报》上至少提及这一事实,这是徒劳的。 没有一个。 尽管库存是我们用来评估制造商期望的主要指标之一,但经济正在增长或下降。 可以相信,如果制造商预期销售会减少,则减少库存,但是如果预期销售增长,则增加库存-以免错失可能从中获得的收入。 因此,据我所知,根本没有考虑有关存货报告法律的变化及其对经济规模的影响。

通常,所有时间序列都存在一个常见问题。 被测对象的定义在不断变化。 最好的例子是贫困。 我们一直在不断提高贫困水平,以致您将永远无法摆脱贫困。有兴趣维护他们领导的项目的官员们总是会改变这个定义,因为这需要足够数量的贫困人口。 我们所说的“贫困”在许多方面都比英格兰国王不久前要强!

在美国海军中,术语“ youman”(办公室秘书),“ ship”等内容。 多年来已经发生了变化,因此,在您研究以确定美国海军趋势的任何时间序列中,这一额外因素都会使您的结论感到困惑。 这并不是说您不应该尝试使用过去的数据来了解情况(使用第14-17章中的复杂信号处理方法时),但是由于定义的更改,仍然存在一些问题,这些问题在官方中无法说出来。文件! 在没有任何正式形式化这一事实的情况下,定义往往会随着时间而变化。

定期发布包括失业在内的经济指标形式(它们不区分失业者和残疾人,但我认为应该如此)通常在发布之前就已经准备好了。 近年来,我们的社会已经从工业(生产)迅速转变为后工业(服务社会),但是华盛顿(在联邦当局的意义上)和经济指标都没有在合理的程度上意识到这一点。 他们说,他们不愿改变经济指标的定义是基于这样的论点,即,如前一段所述,变化将使过去与现在无可比拟-他们说,拥有一个无关紧要的指标比改变其含义更好。 我们的大多数机构(和人员)正在缓慢地应对变化,例如从生产转向服务的转变,而询问自己昨天的所作所为以适应明天的变化则更加缓慢。 机构和人民更喜欢没有改变的生活,因此落在后面,然后英勇地努力与时俱进。 机构像人一样,只有在被迫时才会移动。

如果在上面添加明显的事实,即大多数经济数据是为其他目的而收集的,并且只是偶然地将其用于正在进行的经济研究,并且经常有强烈的论证来伪造原始数据,那么很清楚为什么经济数据的质量较差。

作为Morgenstern提到的另一种不准确性来源,我们考虑了普遍接受的做法,即向嫉妒保密的特殊客户提供折扣。 通常,在经济萧条时期,公司会增加折扣,而在商业环境改善时会降低折扣,但是官方成本数字应基于公开销售价格,因此折扣未知。 因此,经济低迷和起伏会在收集的数据中系统地引入多向偏差。

除了这些主要带有偏见的不准确数据外,政府经济学家还能将哪些用作主要数据? 是的,他们可以在某种程度上知道系统错误的存在,但是他们无论如何也无法知道数据的失真程度。 因此,您不应该对许多经济学家的预测是非常错误的感到惊讶。 他们只是没有别的选择,因此他们的预测不应该受到太大信任。

根据我的经验,大多数经济学家根本不想讨论所使用的经济数据中的根本不准确性,因此,我对他们作为科学家并不抱有信心。 但是谁说经济学是一门科学呢? 只有经济学家自己!

如果科学和工程数据的准确性比声明的要低5(或更多)倍,那么如果计量经济数据的情况甚至更糟,那么您只能想象社会计量数据的情况如何! 我没有整个领域的比较研究,但我的经验有限,很少表明它们不是很好。 同样,可能没有更好的方法可用,但这并不意味着可以无视使用现有数据。

显然,我的大部分工作都非常关注数据准确性问题。 我知道专家的立场,除了在可预见的将来在这个问题上的缓慢改进,我不希望有什么。

如果数据通常很差,并且您知道需要收集更多数据,那么您最多只能做什么?

首先 ,要知道我一直在告诉你的事情:一个人并不是要创建一个可靠的人,不能无误地对它进行计数,也不能高精度地执行单调的重复琐事。 例如,考虑一个保龄球比赛。 球员要做的就是每次都将球准确地投向正确的线。 但是,即使是最伟大的球员也很少能做出完美的投篮! 支持团队欣赏球飞行的准确性,因为这需要最仔细的准备和执行,但是经过仔细考虑,球员仍然有很多需要改进的地方。

其次 ,您无法正确地收集大量数据。 这是一个经常被忽略的已知事实。 管理层通常需要100%的调查范围,而少得多,比如说1%甚至1/10%的调查范围将产生更准确的结果! 正如我所说,这是众所周知的,但被忽略了。 电话公司习惯于使用一个很小的,经过精心选择的样本在涉及提供长途电话的不同公司之间分配收入,并根据该样本在合作伙伴之间分配资金。 航空公司现在也这样做。 精心挑选的小样本比选择不当的大样本要好。 更好,因为它们更便宜,更准确。

第三 ,通过问卷调查获得了许多社会计量学数据。 但这是一个众所周知的事实,问题的制定方式,顺序,提出问题的人或只是等待调查表完成的人-所有这些都会严重影响答案。 当然,在简单的“黑白”情况下这是不适用的,但是通常,当您进行审阅时,情况会很混乱,否则就不必启动它了。 令我遗憾的是,我没有在会员中保存对美国数学协会的调查。 我非常恼怒于那些在我的表述中提出想要的答案的问题,以至于我只是简单地解释了这个原因就把它返回了。 有多少数学家面临着这样的问题:对数学家来说是否有足够的资金支持,对出版物来说是否足够,对研究生的奖学金等等,其中有多少人会说钱绰绰有余? 当然,数学协会使用这些结果来证实要求在所有领域增加对数学家的支持的要求。

我最近填写了一份重要的长问卷(对于从结果中得出的指导行动很重要)。 我尽可能诚实地填写了此表,但意识到我不是典型的受访者。 继续思考,我建议受访者的类别完全不是同质的,而是由完全不同的子类别组成的,因此,任何计算出的平均值均不适用于这些人群。 这完全符合一个众所周知的笑话,即一个普通的美国家庭有两个半孩子。 但与此同时,您将找不到一半的孩子! 平均值对于同构组(在应该执行的操作而言是同构的)中很有用,但是对于异类组,它们通常没有意义。 如前所述,成年人平均只有一个睾丸和一个胸部,但这与我们社会中的任何普通人格无关(现在,如果我们坚持作者的stick脚,我们必须用“必须”来谈论美国的社会)。 -译者的评论)

如果答案范围非常不对称,则以中位数(将样本对象的数量除以一半-一半的数值小于中位数,比近似的翻译器高一半)作为平均值指标更可取-我们最近相对公开地接受了这一数值。 因此,现在更多地发布房屋的中位数收入和中位数价格,而不是平均值。

第四 ,我敦促您注意另一个方面。 我再三重复说,一个组织中的事件发生的过程发生了变化,并且在该组织的高级官员在场的情况下,所以请尝试亲自了解调查表是如何填写的,然后再将其提升到足够高的服务水平。 当我在一家计算机公司的董事会任职期间,我生动地演示了这种影响。 小资官员的举动是为了取悦我,但他们只是令我非常生气,而且,我没有理由对他们说什么。 下属通常会执行他们认为从他们那里想要的事情,但实际上这不是您所需要的! 我还相信,如果您的组织的管理层发送了调查表,那么那些想要讨好他们的人将很可能会及时认真地填写调查表,大部分会拖到最后一刻,然后,下级员工会直观地填写调查表,而无需进行必要的计算和测量-现在接受它们已经为时已晚,所以我将力所能及! 没人知道这种“综合”报告的一般可靠性。 他们可能高估结果,低估甚至扭曲不大。 但是高层管理人员应基于此类调查做出决策-因此,如果数据不正确,则决策可能很糟糕。

当我阅读或听到数据时,我最喜欢的活动是问自己,人们如何收集数据,如何证实其结论。 例如,很多年前,当我在晚宴上提到这一点时,一位迷人的寡妇说她认为没有理由不收集任何问题的数据。 经过一番思考,我反对:“您如何衡量蒙特雷半岛上每年的通奸人数?” 真的吗 您会相信问卷吗? 还是会跟随别人? 如果不是不可能的话,似乎很难对每年的通奸人数做出合理的估计。 还有许多其他类似的事情很难衡量,对于社会关系尤其如此。

提出了一种非常微妙的方法,我个人没有在实践中检验其有效性。 假设您要估计未解决的谋杀案的数量。 您采访人们并要求他们在没有证人的情况下掷硬币,如果尾巴掉了,他们必须声明自己犯了谋杀罪,如果是鹰,他们必须说实话。 根据定义,除了人民自己之外,没有人知道抛硬币的结果,因此,如果有人宣布抛硬币的结果,就不会有人指责他们。 然后,对于足够大的样本,谋杀自白的比例略高于0.5,将为您提供所需的估计值。 但这是基于以下假设:受访者在考虑到安全性的前提下会真诚地做出回应。 广泛讨论了这种方法的变体,但据我所知,仍然缺少对其有效性的认真研究。

总之,您可能已经听说过著名的总统选举,在该次选举中,报纸宣布一个人获胜,而实际上其他人则大获全胜。 还有一份《文学文摘》杂志的调查,该调查是通过电话进行的,后来的调查结果被证明是完全错误的,因此该杂志很快就不复存在了,许多人因此而深信不疑。 然后,电话所有权与财富水平相关,而财富水平与政治偏好相关,这一事实解释了结果的谬误。

(作者出人意料地在这里犯了一系列错误和混乱,这是非常出乎意料的!这里是细节。在1936年美国大选结束时,极富影响力的周刊《文学文摘》发行了近200万册,出版了规模空前的邮政调查结果这项研究是为了确定美国人想看谁担任总统:富兰克林·罗斯福(Franklin D. Roosevelt)(竞选第二任总统的民主党人)或共和党候选人Elf Landon . 55% , 41%. «The Literary Digest»: . . 61% , — 37%. , . : , , «» «The Literary Digest». , . . , 1938 «The Literary Digest» «Time Magazine». , , , «The Literary Digest» . , , . , : «The Literary Digest» 1936 . , . , – , 1936 . – .).

设计,进行和汇总调查不适合业余爱好者。当您开始进行问卷调查时,您需要有关问卷调查的专家建议(而不是普通的统计数据),因此无法避免此活动。我们越来越不需要裸露有关物质对象的事实,而需要社会和相关行业的观察结果-这是一个危险的不稳定土壤。

: , . , . , - !

...

, — magisterludi2016@yandex.ru

, — «The Dream Machine: » )

前言
  1. Intro to The Art of Doing Science and Engineering: Learning to Learn (March 28, 1995) : 1
  2. «Foundations of the Digital (Discrete) Revolution» (March 30, 1995) 2. ()
  3. «History of Computers — Hardware» (March 31, 1995) 3. —
  4. «History of Computers — Software» (April 4, 1995) 4. —
  5. «History of Computers — Applications» (April 6, 1995) 5. —
  6. «Artificial Intelligence — Part I» (April 7, 1995) 6. — 1
  7. «Artificial Intelligence — Part II» (April 11, 1995) ()
  8. «Artificial Intelligence III» (April 13, 1995) 8. -III
  9. «n-Dimensional Space» (April 14, 1995) 9. N-
  10. «Coding Theory — The Representation of Information, Part I» (April 18, 1995) ( :((( )
  11. «Coding Theory — The Representation of Information, Part II» (April 20, 1995)
  12. «Error-Correcting Codes» (April 21, 1995) ()
  13. «Information Theory» (April 25, 1995) ( :((( )
  14. «Digital Filters, Part I» (April 27, 1995) 14. — 1
  15. «Digital Filters, Part II» (April 28, 1995) 15. — 2
  16. «Digital Filters, Part III» (May 2, 1995) 16. — 3
  17. «Digital Filters, Part IV» (May 4, 1995)
  18. «Simulation, Part I» (May 5, 1995) ( )
  19. «Simulation, Part II» (May 9, 1995)
  20. «Simulation, Part III» (May 11, 1995)
  21. «Fiber Optics» (May 12, 1995) 21.
  22. «Computer Aided Instruction» (May 16, 1995) ( :((( )
  23. «Mathematics» (May 18, 1995) 23.
  24. «Quantum Mechanics» (May 19, 1995) 24.
  25. «Creativity» (May 23, 1995). : 25.
  26. «Experts» (May 25, 1995) 26.
  27. «Unreliable Data» (May 26, 1995) ()
  28. «Systems Engineering» (May 30, 1995) 28.
  29. «You Get What You Measure» (June 1, 1995) 29. ,
  30. «How Do We Know What We Know» (June 2, 1995) :(((
  31. Hamming, «You and Your Research» (June 6, 1995). :

, — magisterludi2016@yandex.ru

Source: https://habr.com/ru/post/zh-CN413255/


All Articles