今天不讲技术,谈一些更加抽象的事情:质疑与污蔑的区别。

希冀读者能够借此理解质疑与污蔑的区别,学会在被污蔑时保护自身;同时也希望读者学会合理质疑,避免将合理质疑的范围扩大为无限质疑,变成污蔑者。

阅读全文 »

前文介绍了梅森旋转算法;该算法可用于产生高质量的长周期随机数。不过,随机数生成算法并不保证在一定连续长度内产生的随机数都是不重复的。即,有可能出现这样的随机数序列:

1
1 1 2 8 6 ...

实际生产中,我们也会需要有能力生成不重复的均匀随机整数。此篇用 C++ 实现,做一个简单的记录。

阅读全文 »

个人博客自 2013 年开机至今,已有四年余时间。自 2015 年 4 月 10 日引入 Bruce 开发的不蒜子,博客开始记录全站和单页的访问。

时至今日,个人博客总访问量已逾一百万,撒花庆祝!

百万访问纪念

此篇基本上是译文,原文是 Victor Eijkhout 所著的《TeX by Topic》的第一章。译文项目参见:CTeX-org/tex-by-topic-cn
转载请保留本段文字,尊重原作者和译者版权。
由于原著使用 GFDL,故而本文也被传染地同样使用 GFDL 许可,而不是本站默认的 BY-NC-SA 4.0 许可。

TeX 处理输入的过程可分为 4 个层次。你可以认为 TeX 处理器(也称 TeX 引擎)有4 个独立的单元,每个单元接收前序步骤的输出,并将输出作为后续单元的输入。第一阶段的输入是 .tex 文件,最后一个阶段的输出是 .dvi 文件。

阅读全文 »

前作提到为了防止中间人攻击,SSH 会要求 client 用户确认 server 的密钥指纹。这个设计很有用,但是如果在可靠环境里有大量机器组成的集群,而我们需要自动化地进行 SSH 访问和相关部署,交叉地去确认密钥指纹是很大的工作量。

前作提到了 ssh-keygen 命令,用以在机器上生成密钥。此处我们需要用到 ssh-keyscan 命令,批量获取集群上机器的密钥指纹。

阅读全文 »

一直听说 C++ 继承体系中对虚函数调用的动态绑定是基于虚函数表和虚表指针的,但是因为一些原因,我一直没有去搞清楚。今天想起这件事情,就去翻看了 C++ 的标准文档。然而,标准文档只提及了动态绑定的各种规则,却并没有提及任何有关虚函数表或虚表指针的内容。显然,我看的不会是假的标准文档,那么只可能是动态绑定是由编译器实现决定的了。

本想具体详细地写一写虚函数表相关的问题,但已入深夜,就简单记录一份实验的代码吧。详细的内容待后续再讨论。

阅读全文 »