某イベント向けのセミナーでLinux関連の担当になった。
Linuxのプログラムを確認するには、やはりLinuxで動かす必要があって、
デュアルブートにしている人も多いのではないだろうか。
私も自分のノートはデュアルブートにしているのだけれど、
作業性から言ったら、両方を「同時に」使える必要がある。
Cygwin側にXを入れているので、ktermで開いた他のマシンでのLinux実行結果を
簡単にコピー&ペーストでCygwin側に取り込めるので、この環境はお勧め。
ところが、出先でちょっとしたプログラムを確認したいというときに、
微妙な動作の違いが思わぬ問題を起こしたりする。
今回(といっても、まだ準備しているだけだけど)、問題になったのは
乱数関数のリエントラント性である。
マルチスレッドで動作させたプログラムでrand()の振る舞いがCygwinとLinuxで
大きく異なるのであった。
大体において、再現性のない乱数は工学的に役に立たないと私は信じているのであるが、
「乱数」という言葉に惑わされて乱数系列をおかしくいじろうといった風潮も一部あるので
乱数を扱うプログラムを考えたとたんに「取り扱い注意」マークがでるのだ。
こんなペースで準備を進めて本当に、講習会に間に合うのだろうか・・
(まぁ、いざとなったら・・・という手はあるのであるが 笑)