Thursday 30 November 2006

来週は東京



来週は東京出張だってのは決まったのだが、切符も手配してません... 週の後半は東京にいるつもり。経産省は新聞で叩かれてたが、後半休日にするのは「あり」です。ま、どうせ、公費出張ってよりは、向こうの予算で出張するので、大学には関係ない。逆に、この手の出張が自由なのは大学の便利さだな。

週末は、PSLUG (PlayStation Linux User Group)の集まりに出ているはずです。PS2を買った時には、東京に持って行った記憶があるが、PS3は、まぁ、いいか? Remote login できるし。

今年も年末はプログラミングして過ごすんだろうが、今年は何をするんだろうか? 12月は合宿以来あまり進んでないあれを片付けるか... 細かくは進んでいるようなんだけど。

粋や(いきや)






void が言ってたのは違うお店なんだそうですが、那覇市役所の裏の小料理屋さんに行って来ました。



「とりあえずビール」って僕は泡盛から「何ありますか」と聞くと、いろいろあげたが、菊之露はないのかってことで、琉球王朝に。



「メニューは?」「お通し5品出ますので、それから」なんか、今日はおばさん一人だそうで... 沖縄風ではないです。が結構いける。焚きもの煮物、炒めもの、当たりかも。追加でひらやーち頼んでました。



18時から23時まで飲んでいたらしい。その時に「ジャッキーステーキが...」とかのいつもの話をしたら、「いきましょう」ってなことに... で夜中のステーキを食って来ました。ってことは、やっぱり、あの体育会系な人達には足りなかったんだな。



そこから、もう一件一人飲みに行くのは止めろと思いつつ、やっぱり、もう一件寄って帰ったので2時ぐらいまで飲んでいたらしいです。良く8時間も飲めるよな〜 途中でお休み入っているとは言えども。



今日は321教室の模様替の見積りの打ち合せ。縦に使っているのを横にしてスクリーンと学生の距離を縮めようかってことなんですが... 二日酔気味なので、ちょっと辛い。どうも、かなりの工事になってしまうみたい。工事はいいんだけど、やっぱり「使いづらい」となったら困るなぁ。



となりの教室が階段教室なんで、実は天井が非常に高い(天井裏が1.8m)もあるそうです。

Tuesday 28 November 2006

SPU の引数の渡し方...



compiler のテスト用に整数50個、float 50個、double 50個の引数を持つ関数を定義したのを通してみると....

 全部、レジスタに乗せている

ってのを発見... あ、そうですか。

int a[100] な構造体を引数に書いても、25個のレジスタに乗せて渡すらしいです。

まぁ、そんなものかぁ。

一桁テストのサイズを大きくしないとだめか。

Monday 27 November 2006

PS3 Fedora Core SPU





Fedora Core はフルインストールすると、Cell の開発キットも入ってます。



1080p でのコンソールモードも可能。



で、hello world を書いて、



  spu-gcc hello.c

  ./a.out

  Hello world!



うごくじゃん。なんと、gdb も出来る。



  gdb ./a.out



stepi も、info reg も可能。すごい。さすがIBM。



別に、問題なく、



  ./a.out &

  ./a.out &

  ./a.out &

  ./a.out &





とやっても、6 個で終りと言うこともなく、いくつでも起動できるようです。Linux 側からは、S (Suspended) に見えるらしい。



 elf2spu a.out



とかが動いているので、そいつが、SPUに投げて実行する感じですかね?

PS3 続き



Fedore Core は入れてもらいました。パーティションは10G割り当てますかとしか聞かれない。20GBしかないからな。まぁ、そのうち入れ換えるとして。

kboot の時には、SPUが認識されるけど、main のkernel では認識されない。メインのPowerPC は 1 Processor 2CPUs と認識されます。

フレームバッファ見える。が1080には設定できず。できるのかな? ps3pf (periferal か?) 経由でPS3のデバイスにアクセスできるらしい。 ps3pf には、spufs というのもあるらしいので、SPU/RSX にアクセス出来るようにはなるんでしょう。きっと。でも、今は、だめみたい。なので、今は、まぁ、役にたたないですね。ps3av ってのがあるので、少しいじってはみるが...

HDMI ケーブルで Aquos 45VBE2 につなげると、1080p に。AVケーブルに比べて滲み感がある。でも、ちらつきは少ないね。というかRidge の地面のモアレとか、水面のちらつきが少ない。まぁ、当り前か。音声はDHMI経由、ピンケーブル経由の二つを選べるらしい。

Sunday 26 November 2006

一仕事終ったんで、



酒でも飲みに行こうかと思ったら、財布の中に現金がない... ま、いいか。

HDMIケーブルを探したら1mしかなかった。HDMI->DVI ケーブルは3m。DVIを延長するには、特殊な装置が必要らしい。

もっとも、コンポーネントケーブルでも同じような問題はあるはず。むかし、Sun のモノクロアナログディスプレイのケーブルを15mぐらいひっぱったことがあって、結構、ぼけぼけで閉口した...

このあたり、全部 10GEther とかでいいんじゃない? とか思わないでもないです。AVケーブルも光になるのか?

Saturday 25 November 2006

時をかける少女@沖縄



なんか、今ごろ、沖縄でやっているらしいです。上映館は... 美浜だけか?!

なんで知ったかと言うと、PS3の「毎日いっしょ」のトロが「11月11日というと...」ってネタで、「沖縄では、この日から時をかける少女を上映」とかやっていた。

そこは笑いを取るところなんだろうな。あぁ、そうだよ。どうせ、沖縄は3ヵ月遅れさ... 沖縄で、夏の映画を秋に見る。ちゃんちゃん。沖縄では、まだ、夏だと言い張るか?

HiVison プロジェクタで全国同時配信なんていう話もあるのにね。沖縄の上映映画の範囲の狭さはひどくて、マイナーな映画だと、パレット久茂地の上のプロジェクタを使った小さいところで一週間上映だったりする。でも、結構、見たな。アンダルシアの夏、DIVA、スタートレックの最後の奴。最近は、桜坂で細かく上映しているようです。正しい桜坂の使い方だ...

沖縄って、マスがない(本島で100万いない)ので、全体がニッチっていうかばらばらっていうか... その割に「うちなー」とか言って、見掛けは一緒みたいなふりしている。ま、それが沖縄らしい。

Friday 24 November 2006

PS3 続き



家では簡単に設置しただけだったので、さっさと梱包して大学へ。



Aquos にHDMIケーブル付いていたかなとか思ったので買わなかったんだけど、やっぱり、なかった。しかも、Aquos ってコンポーネント端子もないのか。「音しか出ません」とか言ってる。ビデオモードが異なるとリセットしかないのだが、学生は、リセットの仕方もわからないらしい。マニュアルによると「電源長押し」。基本じゃん...



ビデオ端子かなんかでつないでいるので、ぼけぼけ。16x9でビデオ端子のNTSC見ると、ほんとに悲惨。横に付いている誰かの持ち込んだPS2のD端子を引き抜いて差し替える。で、また、リセット。



で、ようやっと、まともに1080iで出ました。Aquos 45BE2Wは1080iまで。というか1080pが見れるモニタって、あんまりない。なんだけど、家で見た34inchでは480pだったのだが、印象的には、それほど差がない気もする。1080i vs 480p ねぇ。45inchの方がでかい分、良いんだけど、液晶ででかい分、精彩感にかけるからか。HDMIケーブルも買わないとダメか...



ソフトはRidge Racer 7 しか買いませんでした。確かに綺麗です。レーシングゲームやるのはひさしぶり。なんか血圧上がる感じ。だいじょうぶか? ドリフトの感覚が敏感。ゲームとして面白い。綺麗な絵を見ながらタイムトライアルでぐるぐる廻るのって、癒し感覚があるかも。だけど、飽きるんだよね...



ネットワークから落とした、なんとかブラスターが結構面白い。840円なら買って良いと思ったが、学生の前でカード番号入れる気がしなかったのでパス。トロは無駄にきれいで面白かった。毎日更新するらしいです。がんばれ〜



まぁ、これでSCEIは、引っ張れるんですかね。微妙に(っていうか当然...)他人事だが、一応、買ったんだから良とするか。PS2の出始めの頃も「Ridgeしかない.... DVD映るな」パターンだった。それと似てるかも。PS2で、ああ良かったと思ったのはFF-X, AC-5 か。



任天堂のCube/DS/Wiiも頑張っているのだけど、独特な「玩具(おもちゃ)感」がある。子供に受けるのはわかるんだけど。そういえば、DSも売り切れだった。なんかの高額なセットものだけ置いてありました。

PS3買えました




天久のTUTAYAで普通に見掛けたので買って来ました。



60GB は品薄らしいんだが、20GB は余り始めているらしい。ubu の所によったついでに、天久のTUTAYAを見たら20GB在庫ありでした。60GBはなし。他(ベスト電気とかGEOとか)は全滅だったけど。宮城さんか何かに、少し考えているのを目撃されましたが、結局、買って、バスで持って帰りました。かなり重い。でも、普段持っている鞄と同じぐらいだな。



最近、天久に出た時はPS3があるかどうか、たまに見てました。と言っても、3回目位だったりするので効率は良い。PS2の時は、sceiのショップに夜中にアクセスして予約を入れたはず。でも、東京用を買うのには少し苦労した記憶がある。金曜日の新宿のヨドバシの入荷か何かに並んだはずだ。PS2の品薄は数ヵ月ぐらい続いたはず。



60GB/20GBの差ですが、ディスクは入れ換え出来るので、差は無線LANとカードスロットだけ。メモリカードはUSB経由で使えるらしいし、PSPとの連係と言っても別にルータ経由で良いんじゃないかって気がするので、20GB でいいんじゃないの? どうせ、動画とか入れれば60GBじゃ足りないし。180GBなら考えるが。でも、20GBは「葢さえ開かない」ってのは、ちょっとがっかり。音楽CD読込機能が付いているらしいので、そんなもの本気で使ったら...



最初は、パッドをUSB経由で繋げないと設定できない。さらに、ネットワークを設定しようとすると「USBキーボード繋げた方がいいよ」とか出る。なのでキーボードあった方がいいです。PC側でPS3のIDとかを打ち込ませる方式の方が良かったんじゃなかろうか? うちには英語キーボードしかないので記号入力でちょっとはまりました。PS2 のBBなんとかの設定よりはだいぶマシだった。



Firm は最新になってました。ネットワークupdateの必要はなかったです。



AVケーブルはPS2/PSのを使い廻せるのか。これはうれしい。コンポーネントケーブル持っていたりしたので。大学のテレビにはHDMIケーブルあったかな? RD-Z1 には付いてなかった。



ネットワークショップには無料のゲームがいくつか。トロ系の「毎日いっしょ」60MB。アクションゲームの体験版70MBと840円版。リッジの体験版(400MB)。この程度のdown load はFTTHなうち(20Mしか出ませんが...)なら、楽勝。なはずなんだが、すげー時間がかかる。30分では落とせない。840円は偉大だ。



VRフォーマットなDVD-R/DVD-RAM には対応してないので、RD-Z1 との連係は「まったくダメダメ」だというのがわかりました。「ファイナライズしないと読めません」って、なんだよ、それ。Linux 側からは見えるかも知れないな。



(でも、こういうのって予算で買わないと、自分がどんどん貧乏になるだけなんだが...)



学生に「Linux入れておいて」って言えば自動的に入るんだと期待します。



Thursday 23 November 2006

愛国心、じゃなくて、愛地球心だろ?



地球全体と、国だと、人数的には2桁位の差でしょ? すごく人口の少ない国を除けばさ。別に、郷土愛でもいいんだけど、真っ先に教えるべきなのは、

 全地球に対するIdentity

だよね? (たぶん愛ってよりはIdentityだろ?) これは、宗教でも同じだと思う。

 一つの宗教にcommitするなら、他の宗教にcommitした人と整合性があるべきで、
 その整合性を構成するメタ宗教

みたいなものがあるはずだよね?

何か、そんなことを30年前に中学生の日記に書いていた気がするよ...

ベトナム戦争で良く使われた「自分の家族が教われたらどうする? だから、今のうちに共産主義を叩きに、軍隊に入ろう」論法も、

 粒度の異なるIdentityを利用した詭弁

なんだよな。それは「部分と全体」に関する哲学的な問題でもある。

「カーター破局」の統計的な人類の寿命の計算(150-250年)が示しているのは、実は、

 今が、人類の絶頂期だ

ってことでもある。今の状態が持続するような社会ってのが、現実的な目標でないなら、次善の目標はなんだ?

もちろん、個人の幸せを追求しつつ、人類全体が地球全体に対して、何を残せるか、あるいは、何をなすかっていうことだよね。

キリスト教の「産めよ増やせよ」だけじゃぁ、足りないよな。「月に行きました」だけでも、足りない気がする。人類の可能性って、もっとあるよね?

Wednesday 22 November 2006

roff TeX その他



run off っていうテキスト整形システム。今は、Unix のmanにしか使われてません。info があるんだから、なくてもいいんじゃないの?

とかいいながら、この間はroffで書いた文書をいじってた。自分でも、何回かroffで論文書いたことあります。当時は、TeX が、まだ、なくてさ。

富士通の OASIS(親指キーボード)で、科研費の申請とか、全国大会とか良く書いていた。大学院生で使い廻ししてたので、結構、高速に打っていたはず。OASIS はエディタで仕上がりはPreviewで見るタイプ。

最初に書いた論文って東芝のJW10 (世界初のワープロ... システムキッチン大の大きさ)だったし、来たばっかりの初代MacのMacWrite + ImageWriter で英語で書いたり。(日本語は出なかった...)

ふっと、気づくと世の中は一太郎になっていたり。一太郎で論文書いたことはありませんが、一太郎ver.3 は名作だった。あの軽さ、ライセンスの簡便さ、小ささ。実は、roff 的なコマンド埋め込み式だったし。数式処理がゴミだったが。

博士論文はLaTeX。その前の年(88年)あたりからTeXの環境が整った。1/2inchテープでNTTの研究所から直接もらいました。もう意味なく論理式やら数式やら書きまくりましたよ。図は苦労したけどね。texdraw/xfig/idraw あたりを使ってました。

そのあたりから、発表資料は SLiTeX に。OHPを使わなくなるまで、ずーっと、それでした。Projector 使うようになってからは MagicPoint 使ってます。最近は、s5 かな。PowerPoint/Presentation/KeyNote に惹かれたこともないです。

つまり、なんだ。

 WysiWig (What you see is what you get) は嫌い

ってわけ。文書の論理構造と表示は別物なんだよ。WysiWig は、その正反対。結局、見たままでしか判断できない人しか使わない。それは、ゴミだと思う。結局、outline mode みたいなものを使うわけだし、中身は、論理構造を持っているわけだしね。outline mode なら Mind Map の方がいい。

Word を見たときに「だめだ」と思った。一太郎はどんどんWord化したし。罫線も同じ。人の思考を縛るものでしかない。今は罫線の書類は、HTMLのtableに変換して書いてます。おかげで変換自体は、すぐに出来るようになった。CSS で罫線を処理することも可能なんだろうが、それはやったことないです。

今年の科研の書類も、結局、TeXで書いたしね。やっぱり楽だよ。OASISで書いて罫線の上に切り貼りして、コピーして提出なんてのに比べれば。あるいは、Word のわけわからないカーソルと図の動きに癇癪を爆発させるよりは。

100円教授は1ヵ月停職か... 罫線フォーマット作った奴は、1ヵ月停職ぐらいして欲しい。

項目: 中身

の列挙で十分なんだよ。余計な線いれるな!

Tuesday 21 November 2006

ほぇ




珍しく、HPのサーバを飛ばしたらしい。しかも、boot が消えているらしい。HP Raid のドライバはKnoppix には入っているが、mknod はされてないとかいうのを見つけました。



これで、サーバ班まで片付いたので、夜のゼミだけだ... 火曜日は疲れるね。



事務室にアシャリフ先生の御土産のアン入り生八つ橋が。あれは割と好きなんだよ。

 http://www.otabe.co.jp/chan/chan.html

とかいうのがあるのか。



そういえば、アシャリフ先生に「PCクラスタの騒音をキャンセルするノイズキャンセラ作ってください」と頼まなくては。

Monday 20 November 2006

システムコールはどこで定義されている?



ってな問題がOSの課題にあるんだけど...

実は、毎年答えが違う。使っているOSとかによって全然違うので。BSD系は割と簡単で、write() とかのソースがあるんだよね。

Linux だと、kernel 側は割と簡単に見つかる。find で sys_write かなんかをgrepすれば良い。ただ、.c でないってところが味噌だが。.S なんだよね。この部分が「自動生成でない」ってのが、Linux の7不思議の一つだと思う。

問題はユーザ側。gdb で、write をtraceすれば、割と簡単に int 0x80 に行き付くのだが、問題は「ソースがどこか」ってこと。「libc に入っていて、ソースは、SPRMから取って来る」と言ってあって、apt-get source glibc 位で、一発で取れる。でも、そこまでやった学生はいないらしい?!

まぁ、そこからは簡単には話は進まないんだけど、

glibc-2.3.3-200312301455/sysdeps/unix/sysv/linux/i386/sysdep.h



  #define SYS_ify(syscall_name)  __NR_##syscall_name

  #define DO_CALL(syscall_name, args)      \
    PUSHARGS_##args              \
    DOARGS_##args               \
    movl $SYS_ify (syscall_name), %eax;    \
    ENTER_KERNEL               \
    POPARGS_##args

  #define PSEUDO(name, syscall_name, args)   \
   .text;                   \
   ENTRY (name)                \
    DO_CALL (syscall_name, args);      \
    cmpl $-4095, %eax;           \
    jae SYSCALL_ERROR_LABEL;        \
 L(pseudo_end):

あたりだってのは、glibc をmake して見ればわかる。(深いので見つけにくい...)

make してみないとわからないのは、実は、write.c みたいなソースは、存在してなくて、

(echo '#include <sysdep-cancel.h>'; \
echo 'PSEUDO (__libc_write, write, 3)'; \
echo ' ret'; \
echo 'PSEUDO_END(__libc_write)'; \
echo 'libc_hidden_def (__libc_write)'; \
echo 'weak_alias (__libc_write, __write)'; \
echo 'libc_hidden_weak (__write)'; \
echo 'weak_alias (__libc_write, write)'; \
echo 'libc_hidden_weak (write)'; \
) | gcc -c -I../include -I /lib/modules/2.4.26-0vl15/build/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPROF -DASSEMBLER -DGAS_SYNTAX -Wa,--noexecstack -x assembler-with-cpp -o /root/rpm/SOURCES/build/io/write.op -

とかやっているから。ここに出て来る3は、system call の番号ではありません。引数が三つっていう意味。

このコマンドは、

  sysd-syscalls

というscript にあって、これ自体は、
  sysdeps/unix/make-syscalls.sh
から作られるらしい。

 x*)
 echo "\
    \$(make-target-directory)
    (echo '#include <sysdep$cancellable.h>'; \\
     echo 'PSEUDO$noerrno ($strong, $syscall, $nargs)'; \\
     echo ' ret$noerrno'; \\
     echo 'PSEUDO_END$noerrno($strong)'; \\
     echo 'libc_hidden_def ($strong)'; \\"
 ;;
 esac

こんな感じ。二重三重に生成されているわけだね。kernel 側の「手動でなんとかしてね」に比べて、何で、こんなに凝ってるんだ?

昔は... っていうか BSD 系では、もっと話が簡単なんだけど、Linux には話を難しくするのが好きな人が多いらしい。

Sunday 19 November 2006

二日酔で選挙、大勝軒






選挙に行って来ました。昨日一昨日と飲んだのは、杏屋の謎な泡盛(25度)と菊之露(30度)だった。これは、残るんだよ〜 胃の奥から酒臭い。



投票所はいつもの港川小学校なんだが、小学校の裏のラブホは閉店して、さら地になってました。これが広い。学校と同じくらいあったんじゃなかろうか。



Kuche と Solna のハシゴしてますが、どうせなら、もう少しおいしい酒飲みたいな感じ。迎え酒でさ。

そもそも



XP祭りで、ペアプログラミングのクジが配られるまで、

 自分で書いたコンパイラの __attribute(aligned(16))

を実装してました... これがないと、VU のプログラムが通らない.... そもそも、stack のalignmentはいくつにとってるんだよ。とかを、arm/ia32/mips/powerpc 当たりでチェック。

それまで、XPの概要とか発表していたが「聞いてはいたが」状態。しかしだ...

 typedef された __attribute の*pな変数のattributeはどうなる?!

あたりをスキップした気がする。このあたりのテストルーチンを書く気がしないです。

しかし、がんがん書いた割に、可哀想なユーザのうちの学生は使ってくれるんだろうか... 微妙に音沙汰無し...

その後、一気にXPのペアプログラミングにはまったが、実は、

 「うちの学生と一緒にやっているのと変わらない」

っていうのは、つまり、自分で全部やっているのだが、操作は学生がやっているというパターンだったような気も...

まぁ、でも、「ぜんぜんわかりません」から、どうやって、「なんかできる」レベルまで持っていくかを間近で見るのは面白かろう....

そういうのが先生の仕事だろ〜 とか思いつつ、結局、いつものお店でいつものママとがんがん飲んでました。途中で帰っちゃったけど、後のレポートよろしく〜

Saturday 18 November 2006

Java Kuche XP 祭り



終って、杏屋で飲み会中。Java Kuche はOIXの勉強会とぶちあたることが多い。いっそのこと一緒にやるか?!

Darts のルールを書くとかいうので、微妙にやる気がでず〜 なので、ぜんぜん資料も見てもいず。でも、いきなり「隣に、やる気まんまんの宮城さん」が.... やるしかないよね。

でも、最初は、CVS/Eclipse の設定から。サーバどこだ? diretory ないじゃん。複数の人からアクセスするのだと、chmod 777 本気かよ? で、サンプルソースを落として、CVS に import して...

JUnit でテストするのだと、junit.jar はどこだぁ?

で、ようやっと「テスト駆動のためのテストケースを書きますか」で、初めて、仕様書とゲームのルールを見る。ぜんぜん、わかりません。ダブルってなんだ? シングルとは? そもそも、ダーツの的ってどんなかっこしてたっけ?

あ、ようやっとわかったよ。じゃぁ、Killer をやりましょう。と言って、テストケースで、setNumber を作って、kill を作ればいいんだとか、いきなり浮かんだが.... ペアプログラミングなので、自分だけでやるわけにいかず。(あぁ、自分のEclispe は3.1だし、... 3.2 はどこだ〜)

じゃぁ、例をFreemind で書くかと思って、しばらく書いたけど、テストケースにならない。「どのクラスから何を投げるんでしたっけ」といういうところで「やっぱり、Colaboration diagram だな」となって、今度は、Jude をあげる。

Jude で、Numbering (Killer の自分の番号を決める)あたりをがんがん書いて、あ、だいぶ出来たってなところで、時間切れでした。

結局、コードは全然書けなかったけど、それがむしろXPらしかったかな。

 http://www.ie.u-ryukyu.ac.jp/viewvc/y06/j06078/darts/

あたりに残骸あります〜

政府の巨大予算プロジェクト



http://www.itmedia.co.jp/anchordesk/articles/0611/17/news082.html

まぁねぇ... 知らないのは仕方ないし、話を面白くするためには仕方ないんだけどさ。

250億円かけたΣプロジェクトは失敗の代名詞みたいになっているわけだけど、このUnixがからみのプロジェクトが、日本のUnix の文化に様々な影響を与えているのは確かだ。日立の糞遅いΣ機には呆れたけどさ。Sony NEWS の初号機には SIGMA と書いてあったりする。ソニーはΣプロジェクトからは外されたわけだけど。

10年計画の第五世代プロジェクトは、世界的なインパクトのあった日本の研究プロジェクトで、アメリカやヨーロッパがそれに追従したプロジェクトを出したんだよね。日本最後のアカデミックな巨大プロジェクトだったと言ってもいいんじゃなかろうか? 世界が追従した日本のプロジェクトってのがあったのさ。博士や教授をたくさん出しただけってな反省は、経産省側には結構あるようだが、それは悪くないことだろ? 遺伝子データベースは、最初はProlog マシンに乗っていたりするし、定理証明系での成果とかもあるしね。

その前の「超LSI組合」ってのは大成功だった。このおかげで、日本の計算機業界が超大型機に進出できたわけ。第五世代プロジェクトの裏では「並列ベクトル計算機」のプロジェクトが(こそこそ)と進んでいたが、アメリカに見つかってNECが輸入禁止を食らっていた。その成果がNECの「地球シミュレータ」であって、計算機業界では異例の長さの世界最高性能1位を続けていたのは記憶に新しい。はずだ。(2002年の機械なのに、いまだに14位) それを書かないで、失敗した(ように見える)部分だけを、さも失敗したように書くのはどうなのよ? ブルージーンに抜かれたとか言うのばかり書いて、実は、ブルージーンの性能が上がらないことを書かないのは一体何故なんだ?

東京湾横断道路アクアラインには一兆円かかってる。一兆円って250億円の何倍? もしかして、4倍とか思ってる? アクアラインでは外貨は稼げません。それよりは、その1/10でも、コンピュータの研究プロジェクトに金出せば?

もっとも、最近、日本で一番金がかかっているコンピュータプロジェクトと言えば、PS3/Cell か... ソニーは政府がらみのお金には縁遠かったりするが、もう少し応援してもいいんじゃないの? もっとも、単精度浮動小数点が高速な計算機でスーパーコンピュータというのも寂しい気もするが。でも、それをやるのが、日本の大学ではなくて、スタンフォード大だってあたりが、日本らしいって言うか、ソニーらしいっていうか...

足引っ張るより、持ち上げる方をやってみれば?

Friday 17 November 2006

学科のネットワークはワンセグ



1 segment つまり、一つのネットワーク。サブネット化されてません。400台程度のコンピュータが接続されているらしい。僕は B型なので、今のビルに移ったときのシステム更新で「だいじょうぶだろ?」ってな感じで 1 segment にしました。

サブネットっていうのは、broadcast て届く範囲を限定する方法です。CCNA(Cisco Network Academy)を勉強すると、結構、詳しく教えてくれます。

サブネットかどうかは、普通のユーザにはわからないでしょう。他の部屋に移った時に「この部屋ではネットワークの設定が変わります」とか言われても「そうですか」で終りだろうから。そもそも学生は「他の部屋でも同じ設定で使える」とかを知らないかも。でも、そういうのを意識させないのは、実は、管理者の自慢だったりする。

うちの学科では、一応、サブネットを考えたIP割り当てにはしたので、割り当てが汚い。なんで、「IPアドレスを付け替えよう」ってな話が出てます。このアドレス付替は、管理者の病気だと思う。東大は僕が知っているだけで、3回付け替えている。(そのうちの一回は僕がやった... 最初の東大のアドレスが、1.0.0.0 だったのは、恥ずかしい秘密だ...)

1 segment の敵は「Windows/Mac のbroadcast」だったんだけど、もう、あんまり関係ない。WINNS とかも昔の話。昔は、broadcast strom とかも食らったけどさ。今も、あるにはあるか。「なんか、ネットワーク重いぞ〜」。といっても、DNS関連で遅くなる方が多い。

今回は、サブネットを望んでいる人がいるし、無線はさすがに別にしようかと思うので、
サブネットできる部分も導入します。サブネットが好きな人に、サブネットのメリットってなんだ〜? とか、突っ込んでみるのも面白い。

Thursday 16 November 2006

システム更新下見



ネットワークの配線チェックと、電源のチェック。

導入する部屋の容量は220Aで、現状で70A程度使っているらしい。今、動かしている50台のクラスタはなくなるのだが、これに、1A x 180台を入れるのは、ちょっと厳しいか。

いや、ぎりぎり入る。でも、ぎりぎりじゃね。長田さんは「ブレーカー増やしましょう」みたいなこと言っているが。大した工事ではないですけど。

でも、隣の部屋には350Aも来ていることが判明。そこから100Aも持って来れば余裕だ。ということで、電源関係は余裕だということがわかりました。

熱量も人間は1KWぐらいなので、人間に換算すると18人ぐらい。それくらいは入れたことあります。ということなので別に問題なし。

HP/Celeron Dで構成していたら倍はいっていたと思うので、やっぱり、こちらで正解だったんだろうな。

むしろ、500MHz で16CPUとか動かした方が、2Gで4CPUより低消費電力で高速なんていう風になると面白いんだけどね。

myspace



http://www.myspace.com/shinji_kono

ってのを作ってみました。こっちも、gree と同じで、しばらくは死んでいることであろう...

iChat 経由で、orkut,gree,mixi と、ほぼ同時に入ったんだけど、最初に面白かったのは、orkut。英語のみっていうのが微妙に受けた。ほとんど、放置でしたが、そのうちに、mixi の日記を書く人が増えたので、そちらに移行したという感じですね。

沖縄ローカルなSNSにも入ってますが、そっちも放置だなぁ。そもそも複数のSNSを使うっていうツールがないし。このmyspaceも、そのあたりは、あまり考慮されてない感じ。mixi はAPIが単純なので、いろんなツールがあるらしい。使ったことないけど。

2ch の方は、CocoMonar を使ってます。2ch はブラウザベースで見るのは不便すぎる。

Wednesday 15 November 2006

システム更新打ち合せ



顔見せと称しての、50人規模の会議。

全員、顔見せるのって必要ないです。出なくて良いですよね、と主張はしたが... 情報工学科からは3人出席。 そう、お偉い先生はつるみたがるのさ。

基幹ネットワークは二重のリングが二つつながった形。メインは10Gリングになるらしい。いったいいつのまに。だったら、うちも基幹線は10Gにすれば良かったか。でも、センタに10Gでつながっても、意味ないんだよな。それよりは、内部を10Gにする方が正解なのに.. 外部接続の10Gを諦めるってのは、かなり早い段階で決断しました。

僕はリング構成は嫌いだが、リングが好きな人がいるんだろうな。リングをひくぐらいだったら、スター型の構成も難しくないはずなんだが... まぁ、安上がりにしようってことか。ネットワークのチューニングに一カ月とか言っている。そんなものかも。リングだから「離れたビルのルータすべてを全部設定しないと動作しない」。頑張ってください。うちはセンタ直結x2なので、そのあたりは心配してません。

うちの方は、さっさとクラスタの設定用の評価機が欲しいのだが、NECからは音沙汰無し。そろそろ催促するか... もっとも、12月で十分に間に合うけどね。

ターミナルモードとパッケージ



http://mixi.jp/view_bbs.pl?id=12292130&comment_count=21&comm_id=7052

で、スルーされていることに気づく。まぁ、仕方がないか。この /etc がおかしくなって、 boot 時に落ちるってのは、EasyPackage の不具合で良くあった。

BSDな奴なんで、epkg もそうなんだけど、rpm とか作るのめんどくさい。昨日も、Vine にFreeMind 入れるので、rpm をばらすってのをやってしまいました。Vine 3.2 のままなのがいけないんだろうけど、上げる予定はなし。

この手のパッケージシステムは、OS/distributionに閉じるので、その中に入れば幸せなんだろうけど、Vine は実は、その中には入ってないんだよね...

Monday 13 November 2006

OS の課題



始まったばっかりですが、どうも、最初から「2年計画」でやっているのがいるらしい。

OSの仕組みを理解すると言うよりは、OSのAPIを一通り使うという色彩が強い授業なんだけど、これをやっておかないと、3年の実験で歯がたたないと思う。3年の実験は、ほとんどがグループ作業なので、そう言うのは、はっきり足を引っ張ることになる。

3年の学生でも「gdb 使ったことありません」とか言うのが結構いる。OSの授業では、毎回使っているんだけどなぁ。結局、見ただけは使わないということか。言って聞かせて、手取り足取り、やってみせて、させてみて... まぁ、そんなものだよな。向うは金出しているんだから、それぐらいやってもらって当然でしょう。

gdb も課題にいれるべきだよな。Java のjdb は、だめなので、eclipse からだろうな。

Sunday 12 November 2006

お疲れ様でした



IT-EXPO の展示を手伝ってくれた人達、お疲れ様でした。展示を見てくれた人、ありがとうございました。



特に、ubu。まる一日ただ働きありがとうございました。プロをただで使って良いのか?!



この年になると、重いものは運ばないようにしてます。危ないからな。特にG5は重い。それ比べると今の楽器は軽い。昔、12kgのキーボードとか9kgの(オープンリールな)テープレコーダを持ち歩いていとこを考えると... そういうわけなので、荷物運びしてもらうだけでも、かなりうれしいです。



ちょっとショックだったのは、会場に持ち込んだPS2のうち2台が壊れたこと。 結局、そのきんたこのを朝持って来てもらうことに。一台は甦ったらしい。 持って来てくれたきんたこも、どうもありがとう。助かりました。(もともと、うちの研究室のものなのだが...)



テルミンは今のところ自分だけがいじっているんだけど、学生のプロジェクトにすると、進行が1/10ぐらいになる気がする... 学生10人分位だったら、僕一人の方が速い気がする。 でも会社で、人の10倍速いプログラマがいても、10倍の給料がもらえるわけではなくて、10倍の仕事が割り振られて、スケジュールが遅れているとか文句を言われるのだけなのだろう。



「新米SEはいてもジャマだし、とっとと帰るが吉だよね?」 http://tinyurl.com/yy26fn とかを、ちょっと思い出す。

Saturday 11 November 2006

IT-EXPO と結婚式






書類書きが終ったので、当面の仕事はないはず。結局、本当の〆切にならないとやらんな。学生がそれを見習ったりするので良くないんだが...



で、今日は10時からIT-EXPOで、1時半から那覇で結婚式で、その後、コンベンションセンターで撤収か。



予定表を見ると次の仕事は11/15,11/16,11/18 (除く授業,実験) となっているようです。



12/2 のオープンソースカンファレンスなんてのも、入れたらしいが、向うに通ったのかはわからない。それが終ると論文の〆切が12/1, 12/15 とあるようです。



IT-EXPO では山田さんが学生に「正装で来い」と言ったらしく、スーツが多い。でも、たくさんたむろしていると、黒服の呼び込みか、ホストクラブかっていう感じなんですけど... そういうコンセプトなら、いっそ、そういうサービスで模擬店でもやれば... 今日は「いらっしゃいませ」と言わせるか?!

Friday 10 November 2006

IT-EXPO 出展中



テルミンが受けてる。でも、テルミンそのものは新しくはないんだけどな。

午前中は、糊付けしてました。

プログラミングするつもりだったけど、やっぱり、根性ないです。

PS3 買えません



いったい、どこで売っているんだ状態ですね。でも、PlayStation の時は半年ぐらい放っておいた気がする。

PS2 の時は、SCEIのサイトに夜中にアクセスして予約を通した記憶がある。今回は、予約販売とかも瞬時に売り切れているらしく、なんとなく、どうでもいいです。

予約と言えば、PS2 Linux の予約だな。学生と一緒に注文したはず。追加販売の方にも応募した。最初の方がひどくて「専用の古いPS2と抱き合わせ販売」おぃおぃ。

今回は、PS3 Linux を出す会社が別にあるらしい。まぁ、でも、あせって買ってもしょうがないか。予約できるんだったら、するけどさ。

値段的にも、もっと「コンピュータ」として売って良い気がする。256MBメモリは少ないから、Browser とか動かすわけにいかないよね。バックエンド、あるいは、レンダリングエンジン、あるいは、エンコーダ/デコーダとして使えば面白いかも。でも、それでも、1GB増設可にして欲しかったなぁ。

しかし、PSPはポシャリつつあるし、PS3 の出荷数は少ないし... まぁ、PS2 の資産はあるけど、SCEI は危ない感じだ。

Thursday 9 November 2006

第18回IT EXPO IN 沖縄2006 11月10日(金)、11日(土)



http://ryukyushimpo.jp/info/storyid-18281-storytopic-22.html

なんですが、出展します。

なんですが、まだ、全然、準備してないです。あるものないもの持って行くつもり。当日、現場でプログラミングしているかも知れません...

なんですが、当日、何をプログラムするのかも、ちょっと迷ってます。おぃおぃ〜

琉大は僕のところだけないから大丈夫だろう〜

Wednesday 8 November 2006

zsh on iMac



何か iMac の画面を見ると文字化けしている。変だな。そうか...

 X11 の update で、14 bit Unicode font がなくなっている

recovery script を作るべきなんだろうか。

 zsh も化けている

そういえば、zsh はそういえばoriginalのままだ。PB17からscpした後で、アーキテクチャが違う(i386/ppc)ということに気づく。危ない。でも、別に ppc のzshでも動くらしい。もちろん、ソースは手元に持っているので作り直し。EasyPackage 使えよって気もしないではないが...

日々の予定をloginした時に表示するようにしているんだけど、それも化けている。uxterm に表示してもしょうがないんだが。そういう小さいアプリ/Widgetを書けばいいんだろうけど。でも、僕は良くloginするから、それでもいい。これは、昔懐かし Xcalendar のフォーマットを使っているんだけど、iCal (ics or vcs) 形式に乗り換えるつもりなんだが、まだ、果たせず。プログラムはあるので、script 直すだけなんけど。

iCal とは同期かけているのだけどね。この同期はcronで自分でかけているので、SyncServer とは関係ない。iPod との同期も、ics ファイルを直接書く方が全然速い。なので、SyncServer を止めようという気にかなりなってます。


Perl のオブジェクト指向



Perl のオブジェクト指向は、package と hash (のreference) を bless で結びつけるだけ。hash (連想配列) 以外でのreferenceでもいいんだけど、hash を使うものでしょう。



 package Class;

 $obj = {attribute=>'value'};

  bless $obj;



hash の中味にはblessは関与しないから、インスタンス変数の継承がどうとかこうとかの問題から、うまく逃げている。めんどくさくなく多重継承を実現する一つの方法だね。誰が、いつ、どこで初期化しても良い。初期化しなくても良い。なくても文句言いません。気軽に多重継承出来る。



必ず、オブジェクトを明示してメソッド呼び出しするので、Java みたいに単なる関数呼び出しとメソッド呼び出しが混乱することもない。 Package の変数は、クラス(static)変数に相当し、インスタンス変数ではないです。



hash が見えるのを嫌う人も多いが、オブジェクトを呼び出す方で任意の属性を付加出来るのは便利。普通のオブジェクト指向言語では許されない。そのあたりがPerlっぽい。 呼出側で、オブジェクトをカスタマイズ出来る。 一方で、hash の処理の重さは気になるね。hash のkeyをquote する必要は、Perl 5 からなくなった。



hash を明示するのは、常に、this.var みたいな書き方をするのに近い。

class Hoge {

 int i;

 Hoge(int i) { this.i = i; }

}

とかに似てる。Perl だったら、

  package Hoge;

 sub new { my ($i) = @_; my $self = {} ; $self->{i} = $i; bless $self; }

かな。

 sub new { my ($i) = @_; bless {i=>$i}; }

でもいい。



Constructor や new がblessという演算子なので、どの関数呼び出しがConstructorかがわからない。自分でオブジェクトの作り方を決める必要がある。new() か、factory pattern を使うのが普通だろう。perldoc perlobj すると、initialize() をConstructorと分けている。



Interface とかabstract class もない。このあたりは、コンパイラのチェックの機能でしかないので、自分で「作っているつもり」になれば良い。document で明示しよう。

Tuesday 7 November 2006

アローの一般可能性定理



数学シリーズと言えないこともないか....



そう言えば、この話は、沖縄に来たばっかりの頃にしたことあるな。ケネス・アロー先生の定理。簡単かつ強力な定理で「公平な選択と、良い選択は両立しない」ことを示しました。



a,b,c の順序づけを投票によって決める。有権者の分布は、以下のようになっているとする。



  順序 人数

  a < b < c 7

  c < a < b 5

  b < c < a 5



さて、多数決で、どの順序が政治的に正しいかを決めよう。



  事象 賛成/反対

  a < b 12/5

  b < c 12/7

  a < c 7/12



と言うわけなので、選択の順序を適当に選ぶことによって任意の順序を多数決で決めることが出来ます。これがアローの逆理の本質であり、複数の事象に対する多数決による公平な順序は存在しないということ。これを否定するためには、有権者の分布か事象の順序に、最初から偏ったものを仮定するしかない。



この順序を選挙による当選人あるいは意志決定の選択順と見ても良いし、個人個人の社会的貢献度と見ても良い。



これに関連した定理で渡辺慧による「みにくいアヒルの子の定理」というのがある。これは、統計の基本定理である中心極限定理の一つの系であって、



 十分な量の統計的測定を積み重なれれば、

 全てのものは同程度に似ている



と言うもの。つまり、アプリオリな仮定抜きに、物事に優劣を付けることは出来ないってこと。僕は、この二つの定理は関係があると思いますが、証明しようと思ったことはないです。



この二つは、ある意味で、純粋な意味での人工知能が存在し得ないと言うことを証明してもいます。あるいは、自然選択が偶発的なものでしかないことを示していると考えても良い。つまり、進化は「何か良い方向」に向かって来たわけではなくて、「行き当たりばったりな方向」に「行きづまるまで進んでいる」だけ、というわけ。 逆に選択とか配分の問題は「適当な選択でも良い」と言うことでもある。それは「同程度に正しい」わけなので。



そんなこんなで、僕は、統計学と人工知能には、あまり興味がない。でも、これを知って、むしろ統計とか人工知能を面白いと思う人もいるだろうな。これは、政治とか民主主義自体あるいは市場原理を否定した定理でもあるわけなんだけど、人々は、あまりシリアスに受け取ってないらしい。数学的な定理を否定して楽観的とは言えないので、単に知らないだけ、つまり馬鹿なんだと思う。



世の中にはアプリオリな順序付けも幾つかある(時間とか重力とか、それらは同じものだが...) ので、それを利用した逃げもあると思う。特定の目標(生産性最大とか)を採用して、それに対する最適化問題として政治を定義する手もあるので、アローの逆理があるから、何もかもが無駄ってわけでもない。



でも、この二つを知ると世の中の見方が、かなりシニカルになるのは、やむを得ないところか。



僕は、せめて多様性に重きを置いて、出来るだけ広範囲な探索をすることを良いことと仮定するなんていう方向ですが、それさえも、この定理の手の内だからなぁ。お釈迦様の手みたいなものだ。

Monday 6 November 2006

ネクタイ



40本ぐらいあるらしいです。基本的にスーツしか着ない奴ですが、特に合わせたりしません。上から順番に換えて行くという感じ。合わないネクタイしている時には一言いった方がいいでしょう。本人気づいてないので。

千円から1万円ぐらい。もっと高いのもあるんだろうけど。でも、差はブランドと素材。絹は、着けるときに、シュルシュル言うので気持良いぐらい。賭けても良いがネクタイの値段を当てることは不可能だと思う。なので、千円ので問題ありません。

スーツはネクタイありでデザインされているので、ネクタイを抜くと、ちょっと崩れた感じになり、やーさんぽっくなる。(ような気がする...) 大学後半で、ジーンズとかサファリコートとかって、どうもダメだな、と言うか、普段着にいちいち気を使うのが面倒、というか、学生とは言え、半分、プログラマやっていたので、廻りがスーツだったりするとか、まぁ、そんな感じで、ずーっとスーツにすることにしました。

結局、それが自分には合っているということがわかったので、ずーっと、スーツで通してます。ポケット多いし。ネクタイ締めるのが好きなのかもね。換気性の良い上着なら、実は涼しいし。寒暖の調節が出来るのも、冷房がきつい場所ではOk。

で、最初は2本しか持ってなかったはず。一つはWALKMANブランドだった。そのあたりで、ネクタイをプレゼントでもらうことが多かったです。男は(ってよりは僕は)身の回りのものを自分で買うのは、あまり好きではないので、ネクタイは基本的にもらいものであることが多い。ネクタイは、どんなに多くても困らないものだし。

端っこが擦り切れたり、中が捻れてくるとアウト。安物は色褪せするしね。それは、それで面白いとは思う。たまにクリーニングに出すが、ネクタイのクリーニングは高いと思う。トマトソースの染みとか付けちゃったりするので...

なので、なんかくれるならネクタイが良いです。という話でした。ちゃんちゃん。

Sunday 5 November 2006

海外での電話



ぜんぜん繋がらないっていう夢見た... 公衆電話のトーンがリアルだった。

80年代、90年代って、イギリスやアメリカの公衆電話と格闘するのが悪夢だった。「You have dialed wrong number」あたりは可愛いとしてもさ。そもそも壊れていることが多かったし。まず、小銭。アメリカは25セントのみで、こいつを貯めるはめになる。アメリカは、かなり初期からカードでかけられたのは良かったけど、イギリスはなぁ... 今はどうなってるんだろ? 日本と同じで、どんどんなくなってる?

それを嫌ってホテルでかけると高くつくしね。昔は、航空券のreconfirmってのをしないといけなくって、それが必須の電話になる。C/Yかって聞かれているだけなんだけど、航空券のどこそこにあるとか言われたって、余計なことたくさん書いてあるからな。最初の一回に妙に時間がかかった記憶がある。

今だと、携帯電話を借りるから、だいぶ楽。その代わり、携帯電話の設定に苦労するけど。ヨーロッパだと十数の電話会社の選択っていうわけわかなのがあって、しかも、国毎に違う。どれも同じようなものだろとか思う。数ヶ月滞在するわけでもないしね。 この前、フランスで借りたときには、向うで借りたので、携帯電話を借りる先に公衆電話からかけるという楽しい技だったんだよな。で、やっぱり「故障」くらったし。で、携帯からインターネット接続しようと思うと2400bps。え〜? なんだよ、それ。日本のPHSは偉大だと思う。

10年前ぐらいに香港に行ったときには、携帯電話を借りること自体が珍しかった。当時の流行は、モトローラのマイクロタック。が、もっぱら奥様にかけてもらってました。主にレストランの予約に使われていたはず。なにせ一台しか借りなかったから。高かったんだよ。

今だと、メールがあって、どこにでもInternet Cafeが何件かあるから、ノートPCさえ持っていれば、どうってことない。もっとも、専用端末のInternet Cafeってのは困るけどね。問題は、メールを使ってくれない、うちの母だが.... Skype からかけるって技があるか。海外のホテルのインターネットが高いってのも最低だと思う。

Saturday 4 November 2006

披露宴の思い出



もうすぐ、某氏の披露宴だなと思いつつ。

僕は学生結婚したいと考えていたりしました。博士課程にいくって決めてたから学生時代が長いってわかってたし。食わせてくれる年上女房を理想に、結構、努力したが果たせず。まぁ、IT業界は、卒業後すぐに結婚ってのを逃すと、30代後半になるのが普通。つまり手遅れになる直前まで延ばすみたいな感じだね。ってなわけで、結構、遅かったです。

僕の場合は、披露宴とかは、一緒に住んで1年ぐらいたってからだった。なので、結婚式ではありません。

うだうだ話を聞いたり、余興とか頼んだりするのを合理的だとは思ってなかったので、食事会にするってのは、早い段階で決めてました。友人たちと親戚の会を分けるのも決めてました。親戚側が40人、友人側が70人程度で、両方ともレストランで、式次第抜き。親戚側は現代中華料理で、友人側は、ネパール料理、つまり、カレーでした。なので、両方とも結構食べたかな。友人側には、両親は呼ばなかったし。この程度だと、自分達(二人だけ)で全部準備することが可能。値段も安いし。事前に打ち合せて、支払はカード一発、みたいにしてました。もっとも、親戚側の席次は口だしされたが。

そういえば、中華の方は、僕も「くるまえびは、いりません」とごねた記憶がある。「えび入れないと、結婚式の料理になりません」みたいな泣きが入ってました。結局、メニューには入ってました。料理人に挨拶してもらったな。

式次第ない分、席を廻らなければならないってのが大変と言えば大変だったが、そんなものでしょう。友人側の方は、二人でばらばらに廻ったので「で、新婦は、どこ?」とか聞かれることが多かった。

工夫と言えば、結婚衣装を選ぶ時とか、披露宴のだいぶ前の新婚旅行(という友人達との旅行)とかのビデオを流すテレビをたくさん設置して見せたとかいうぐらい。あぁ、そういえば勝手な紹介付きの名札な配りました。紹待状とかプリンタの調子が悪くて苦労した記憶がある。

東京だと、司会は友人ってのが多いが、式次第ないから、司会ってのもなかったな。受け付けも決めてなかったのですが、さも当然のごとく、家内の友人が受け付け始めていたのが印象に残ってます。

親に何もやらせなかったのは、まぁ、そんなものなんだが、今から考えると、親戚の顔見せという部分もあるので、少し何かやらせた方が良かったかも知れない。まぁ、親戚付き合いなんて、避けられれば避けた方がいいものなので、無理強いする気はないが。僕自身は親戚付き合いは好きなんだけどね。

Friday 3 November 2006

NHKの視聴料は中立のためなんじゃないのか?



http://news.mixi.jp/view_news.pl?id=111444&media_id=2



NHKが税金とは関係なく視聴料を取る理由は、



一  放送が国民に最大限に普及されて、その効用をもたらすことを保障すること。

二  放送の不偏不党、真実及び自律を保障することによつて、放送による表現の自由を確保すること。

三  放送に携わる者の職責を明らかにすることによつて、放送が健全な民主主義の発達に資するようにすること。



のためなはずだよね。政府の命令で放送するってことは、自ら、中立性のために視聴料を取る理由を放棄しているということだと思う。つまり、日本政府自らが「NHKの視聴料を払う理由」を放棄したってことだと思う。



特に視聴料の支払いを拒否する理由はないと今までは思っていたけど、今後は立派な拒否する理由があると思う。政府の手先なら税金でなんとかしろ。

Thursday 2 November 2006

OS の課題、正しい質問



今年から C/Java の併用になってます。その分、課題が増えている。

必修なんだが4年次で残しているのが数名。そのうちの一人が「先生、Java 増やしても出来ません。Java 知らないので」「それじゃ、困るから、Java を追加しているんだよ」

でも、頑張ってやっているらしく、質問に来る。しかも、質問が正しい! 実は、正しく質問できるようになれば一人前なのだ。ちょっと、うれしいです。本当は、正しく質問できるくらいなら自分で解けるはずなんだけどね。

Java の課題で、ls に相当するものを作らせるわけですが、sort しろって書いてある。「でも、先生、既にソートされているようなんですが」。そう、どうも、Java の実装側では、ls を呼び出しているらしい。「でも、APIの仕様では、ほげほげだろ? だから自分でsortしないとだめ」

そこは納得したようなんですが、まだ、なんか言って来る。「sort は自分で書いて良いですか」。ふふ、「もちろん、だめ。ここに、Comparator を使うAPIがあるだろ」。「え〜、Comparator とか interface とか勉強しなければいけないんですか?」。そうだよ。その通りです。そのために sort しろって書いたんだから。

あと、「Eclispse では、テストコマンド用の引数はどこに書けばいいんですか?」それは、Run... のメニュー。「それで、ファイルコピーの例に使うファイルは、どこに置けばいいんですか?」。その質問も正しすぎて涙がちょちょぎれそうです。僕も、まさに、それを探したので。「絶対パスで書けばいいんだよな。でも、それじゃ逃げだろ?」

ちゃんと課題を自分でやれば、正しい質問が出来るようになるんだよな〜

沖縄そば博物館



東京からめぐさんが来たので、寄ってみました。めぐさんは、これから、台風にもめげずに、西表島にいくらしい。「石垣まではだいじょうぶ」とか言っていたが。

で、「四つ頼もうね」。つうことで。11時から20時までなのね。今日は空いてました。三越の裏、ゼファータワービル内。ですが、県庁側からの方が近いです。

歓会そば
 ふつう、麺の量が多い。今回の中では一番、沖縄そばっぽいかも。麺はいまいちかな。

うるくそば
 麺が太目。量は控え目。こってり系のつゆ。この麺はおいしいと思った。

うどぅん山
 御殿山は実は土曜日に行ったばかり。
 これは首里の御殿山のそばとは別物ですね。麺が細い。
 汁は近いかも。麺に茶色ものがかかってる。少し甘い。
 シナモン? ピバーチらしくはないんだが...

川 (せん)
 あぶりそうき、かつお出汁にしてみました。
 わりとあっさり。昆布入っているし。
 沖縄そばとは別なイメージのものかも。

2人で4つは無理だな。特にそーきとか頼むと。で、どれを残したかを見ると、どれが良かったか一目瞭然です。今回は、川が良かったかな。

いっぺんに四つ頼むと麺がのびるので、二回にわけて頼もう。

Wednesday 1 November 2006

昨日の日記は忘れました



ひさしぶりに、コンパイラのバグ取りにはまってました。

 struct hoge a;
 void f(struct hoge a);

ってのは構造体全部がコピーされてfに渡されるわけなんだけど、

 int v[10][10];
 void h(int v[10][10]);

ってのは、配列へのポインタしか引き渡されない。それは、

 void g();
 void k(void g());

で、g の本体がコピーされて渡されるわけではないのと同じ。

C では値渡しが基本だから、この二つだけを、特別扱いしている。
 typedef int V[10][10];
 void h(V x);

とかだと、ポインタ渡しには見えないよな。うっかり値渡しに直してしまって、生成されたコードを見てみたらポインタ渡しだった。何故だか、しばらく考えちゃったよ。

C の仕様の変態さの一つなんだけど、一概に悪いってわけでもない。このあたりって「形式的な綺麗さより、実用を取るぜ」みたいなところがある。まぁ、配列と配列へのポインタを意図的に混同したのがいけないといえばいけないんだけど。でも、いちいち、

 (*a)[5][5]

って書くのは嫌だってのは、その通りだよ。

Perlでは、

 $a->[5][5]

とか書くけどね。

  DB<1> $a->[5][5]=3

  DB<2> p $a
ARRAY(0x180815c)
  DB<3> p @$a
ARRAY(0x224a14)
  DB<4> p @{$a->[5]}
3

みたいなのを汚いと思う人は多いだろうが.... C では a->[5] は採用されなかったんだよな。Perl のこれを見たときには、「なるほど」と思うより「え、なんで?」と思った記憶があるので、その時点では、Cの配列と配列へのポインタの構文的な混同に気づいてなかったということらしい。