2007年10月アーカイブ

ダメグラマな一日 (1)

カルドセプト サーガのサイコロのバグの話題で盛り上がってからちょうど1年だなぁ、と思い、線形合同法の疑似乱数としてのクソさとメルセンヌ・ツイスターでの実装をやってみようと思った。

まずは検証用プログラムから。main.cをおもむろに書いて、ああそうだMakefileくらい用意しておこうと思いMakefileも用意した。make すると一発でコンパイルが通って不安を覚えつつ、いざ実行してみると、なんと予想に反してきれいに一様分布していた。

なんじゃこりゃ、と思い「man rand」してみると「random」使ってるって書いてある。で「man random」してみるとこんなのが書かれてるし。

The random() function uses a non-linear additive feedback random number generator employing a default table of size 31 long integers to return...(略)

おもしろくないなぁ。でも、これじゃ結局どんな疑似乱数生成方式をとっているのかよくわからん。ってことでソースを見てみよう、と思って見るも /usr/lib /usr/include /usr/src あたりを見ても、ヘッダはあるもののソースがない。

apt-cache search glibc してみて「glibc-debug」を発見。apt-get install glibc-debug で61.2MBを消費しつつインストールし、おもむろに /usr/src を見るも、やっぱりソースがない。apt-cache show glibc-debugするとこんなのが書いてあるし。。

デバッグの際に glibc のソースファイルを見るには,glibc-2.3.4-2vl3.src.rpm を展開する必要があります.

('A` "glibc-2.3.4-2vl3.src.rpm" でググり VineLinux のミラーサイトから "glibc-2.3.4-2vl3.src.rpm" をDLしてインスコ。でもソースがどこに入ったのかよくわらん。

ならば、ということで、gdb で追うことにした。emacs -nw で M-x で "gdb" して・・・と思うと gdb がないとかいいやがる。which gdb で本当に入っていないことを確かめつつ、apt-get install gdb し、その後改めて emacs -nw で M-x で "gdb" でこんな感じで実行

Current directory is ~/hoge/
GNU gdb 6.4.90
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-vine-linux".
(gdb) file main
Reading symbols from /home/rarul/hoge/main...done.
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) b my_rand
Breakpoint 1 at 0x80483aa: file main.c, line 11.
(gdb) run
Starting program: /home/rarul/hoge/main
Breakpoint 1, my_rand () at main.c:11
(gdb) add-shared-symbol-files /lib/libc-2.3.4.so
This command is not available in this configuration of GDB.

"This command is not available in this configuration of GDB."ってナンダ? apt-cache show glibc-debug には " このライブラリを使うには,デバッガ起動前に環境変数を LD_LIBRARY_PATH=/usr/lib/debug と設定する必要があります." とか書いてあったので、"LD_LIBRARY_PATH=/usr/lib/debug gdb" で起動して見るもやっぱり add-shared-symbol-files は使えないっぽい。やっぱり VineLinux は、そういうのをやるのには向かないのか?

[rarul@yuika hoge]$ cat /proc/version
Linux version 2.6.16-0vl76.3 (iwamoto@natsume.home.local) (gcc version 3.3.6 release (Vine Linux 3.3.6-0vl7)) #1 SMP Sun Jun 17 14:32:18 JST 2007

もちろん、si とか disas 使えば追ってけなくはないけど、それをやっても結局 C のコンパイルもとソースを見てみないと何やってるのかよくわからんしなぁ。今仕事でやってるターゲットでの開発は、なんだかんだで他人が用意してくれた至れり尽くせりな環境の上での開発でしかないと実感。やっぱ x86 (or x86_64) 上の Linux も含めてちゃんと勉強しないといけないなぁと反省。

とかやってると腹が減ってきたので、今からお湯入れて *分待つタイプのやつを食ってくることにする。

(追記) VirtualPC上にFedora 6入れた環境があったことをすっかり忘れていた。こっちでやればよかったと思いつつも、今更やる気力はなし。

タイトルに惑わされて買ってしまったけど、この本は技術論や社会論ではなく、心理学(社会心理学)に関する本だということにあらかじめご注意を。

著者は、IT業界の技術動向に明るいだけでなく、文化人として多種の知識を持っていると見受けられる。だけど、それが故に、技術動向について踏み込みすぎた解釈を入れすぎているように読める。一応技術者だということになっている私からすると、技術進歩を引っ張る当人たちは、そこまでのつっこんだ思想や解釈を必ずしも持っているとは限らないように思う。心理学的な面の補強などどうでもいいと思っている技術者には無用の本です。

ところどころで著者が突っ走り気味に議論を拡大して進めている箇所がいくつか見受けられる。そんな話について行けないのは、著者の勝手な思いこみが多いのか、それとも私の読解力がないだけなのか。いずれにしても、すべてをまとめている本というよりかは、著者の現段階での研究の様子をスナップ下感じの仕上がりです。

ただ、私には結局、

  • 世の中に偏っていない情報(=報道)などない
  • 人は信じたいと思っていることのみを信じようとする
  • 時と場所が変われば常識(=事実)とされる事柄も変わる
  • たとえ科学を用いても正しいか間違っているかを究極的に証明する方法はない

のようなよくある話を元手に、現在のウェブ社会を生きる若者についての考察をし、最近は「我こそが(ナンバーワンではなく)オンリーワンだ」と思いこんでいる若者が増えてきているのではないか、と批判したいだけなんじゃないかと思えてしまう。

まぁいずれにしても、心理学や思想の面でのトレーニングをしたい人向けでしょう。

このアーカイブについて

このページには、2007年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年9月です。

次のアーカイブは2007年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 5.2.13