C++ 提防 STL 容器迭代器非法化 对于 deque 或者 list 之类的容器,不少算法会有需求在“迭代的过程中”对容器进行操作。直觉告诉我们,对一个正在被读取的对象做写操作是危险的。不巧今天也在 LRU 的实现上犯了这样的小错误,而且是以一种相对隐蔽的形式出现的。
Operating System 互斥量、信号量、条件变量,三者之间的互相实现 这三者是多任务编程中最常见的基础设施,而它们背后隐藏着更深层的关系。例如,它们全都可以用信号量来实现;如果没有信号量,也可以用互斥量和条件变量组合实现一个信号量……
C++ 快速傅里叶变换 在 Rosetta Code 上看到的快速傅里叶变换算法,其中用到了标准库中的 complex 和 valarray。我第一次注意到有 valarray 这个库,代码看起来很有函数式处理数组的味道,刚好很适合用在蝶形结递归里。代码简洁,并且顺便代入一个正弦波采样试了试。
Networking Tunnelling Using SSH Port Forwarding, a kind of Tunnelling, is a common trick to work around certain undesirable network topology. A bunch of software can do the trick, but why not make use of your pre-installed ssh?
Translation Rabbit 的渊源 Norm Roger:……我发现了 NEC 生产的芯片能在崩溃前能一路超到 14MHz。我还发现一个日本的 DRAM 品牌足以支撑运行在 12MHz 的 Z80。于是,我把它们放一起,磨掉芯片上的字……然后我可以几乎三倍于 6MHz 版本的价格卖出 12MHz 的 Blue Thunder……