Home > 200806

200806

大学の話をしましょうか

森博嗣著の大学の話をしましょうかを読んだ。

元国立N大学工学部建築学科助教授の森博嗣さんが、大学を退職後に出版された本。
Q&Aのインタビュー形式で、森さんから見た大学というものが語られている。
インタビュー形式だからさっと読める。
助教授までいった人からの「大学のシステム」、「研究者と教員という立場」、
「学生」についての視点はあまり触れたことがなく新鮮だったので面白かった。

読んでいて特に強く感じたのは森さんは学ぶことが本当に好きなんだなということ。
自分の中でも最近学ぶことは楽しいという気持ちが芽生えているため、強く共感したのだと思う。
この気持ちにもっと小さい頃に気づいていればな、と思ったりもするけれど
高校生までの子たちは、学問が楽しいとは絶対に考えていません。
と、この本にも書かれている通り小さい頃から勉強が楽しいって思える人は少ない。
絶対は言いすぎだと思うけど。
大学のときは全然勉強をしなくても、三十代、四十代になったとき、ああ、あのとき勉強をしていたら良かったな、今からできるかしら、と考えられる、それだけでも、大学の価値はあると思います。大学に行っていなければ、それこそ、学問なんて雲の上のもの、まったく自分には無縁のものだと思い込んでしまうでしょうからね。
大学に限らず学校の意味って何だろうってずっと前から思っていたけど、
これは僕の中での一つの答えになると思う。
少なからずその存在を知っておくことで、ある事をする際に知識が求められる時、
これはあれを利用すればできるのではないか、と気付くことができる。
気付くことは、解決に乗り出すきっかけを得ることになる。
何が必要か予測できれば、現時点でそれを持っていなくてもそれを得る努力をすれば良いし。
手がかりがなければ、それこそ雲を掴むような話となってしまう。
そこへ到る道筋が全く描けない時、進んでいける人はそんなに多くないと思う。

モラトリアムを終える時期が近付くにつれて、
もっと勉強したかったなという気持ちがどんどん大きくなっていた。
モヤモヤした気持ちを払拭する、自分が納得できる答えを示してくれたこの本に出会えてよかった。

就職したら自由な時間は少なくなるだろうけど、勉強したいという気持ちは忘れないようにしたい。
少なからず勉強できる時間はあるし、それを大切にしていこう。
取り戻したいものを取り戻す時間があるかはわからないが、
定年退職後の楽しみがあるって思えば良いかな(笑)。
ある程度余裕ができたら寄り道するのもありだし。

とりあえず今は貴重な猶予期間を思う存分過ごそう。
やりたいことができる、最高な時間だ。

ペルソナ4

  • 2008-06-20 (Fri)
  • SE
公式や記事見たところではスルーする気満々だったけどオープニングみたら欲しくなってしまった。
3もそんな感じで釣られた気がする。

くそう、かっこいいな。

Google Browser Sync終了のお知らせ

  • 2008-06-19 (Thu)
  • SE
Firefox3の正式版がリリースされたので早く移行したいと思った。
Google Browser Syncが対応していれば移行するかとか思いつつ対応状況をググッたところ、
Firefox3ではGoogle Browser Sync終了のお知らせが。
この前いれたとこで気に入ってたんだけどな。残念。
後継としてMozilla Weaveの次期バージョンが挙がっているらしい。
非常に便利な機能だったので、こちらに期待したいところ。

ホタル

  • 2008-06-15 (Sun)
  • SE
ホタル祭りに行ってきた。
飼育したホタルを野に返す日に開かれる、ホタル観賞のお祭り。
ホタルは生で見たことがなかったかも。

こういった観賞系で感動した経験はあまりなかったので、
ふーんって感じで終わると思ったけれど、不覚にも感動してしまった。

なんとも綺麗な光だなぁ。

カメラで撮れるかな、と思ったけど、暗くてあまり綺麗に撮れないし、
折角生で見にきているのにデータに収めることに躍起になるのも本末転倒な感じがしたので
早々に観賞モードに。

絵を残してそれを見てもたぶん何も感じなかったと思う。
実際に目で見て、感じることがあって。
それが大切で、なんでもデータに保存すれば良いというもんでもないな、とか思った。

エラーメッセージと解決方法を載せて欲しい

  • 2008-06-12 (Thu)
  • SE
ブログやWebページのサーバ構築ログで載せて欲しいもの。
それはエラーメッセージとその解決方法。
No Error(その人が構築した時点では)な
まとまった構築ログを載せてくれているところはいっぱいあるけれど、
出会ったエラーメッセージをそのまま貼り付けて解決方法を書いてくれているとこは少ない。
特に日本語で。
エラーとか解決方法を逐一書いていくと、
ごちゃごちゃしてログの可読性が下がってしまうという点もあるんだけど。

Web上にアップするログに経験したエラーも載せるかどうかというのは、
結局はログをアップする目的の違いになるのかな。
まあ単純にエラーに出会わない時ももちろんあるけど。

僕の場合Web上にサーバ構築のログを残すのは、
後追いの人がエラーでググったりした時に解決方法を見つけやすくするため。
そのため、エラーメッセージがそのまま記事に書かれていることが重要。

自分用の構築ログはローカルに別途保存してあるし、
僕がやるころにはNo Errorな構築ログは他の人が書いてくれているので、
+αがないとわざわざWeb上にアップする必要がないわけである。

もちろん、No Errorなまとまった構築ログがいらないということではないです。
あるとすごい時間が短縮されますしね。
ただそのログで助かる人が多いのと同様に、
出会ったエラーとその解決策のログも書き残しておけば、
とても後追いの人の役にたつと思うのです。

とまあ今回のクラスタ環境構築を行った際に思ったことでした。
ちなみに僕がサーバ構築ログをアップする別の理由として、
技術ブログっぽさを出したかったんです><;;;;というのもあったりします。
実はこちらの方が大きかったり(笑)

OCFS2+NBDなクラスタ構築

OCFS2+NBDなクラスタ環境を作ったので構築ログ。
VMware Serverの仮想マシンを使用して4台構築。
クラスタノード*3、NBD Server用のサーバ*1。
OSは、クラスタノードは他の実験のためちょっと古めのCentOS4.6、
NBD Server用のサーバはCentOS5.1。

  • NBD
  • cd /usr/local/src
    wget http://nchc.dl.sourceforge.net/sourceforge/nbd/nbd-2.8.8.tar.gz
    chown -R root: /usr/local/src/nbd-2.8.8
    cd /usr/local/src/nbd-2.8.8
    ./configure

    *2.6以上のnbd.hが見つからないと言われる
    checking where to find a working nbd.h... configure: error: Could not find an nbd.h from 2.6 or above.

    これが今回最も詰まったポイント。
    NBDのバージョン2.7.8を利用すれば問題なくインストールまでいけたのですが、
    2.7.8だとNBD Serverで公開したブロックデバイスにアクセスしようとすると
    うまくブロックデバイスにアクセスできずI/O Errorを出されました。

    エラーを探って延々とググった後、
    NBDインストール手順の紹介で次の手順を踏んでいるサイトを一つ発見。

    *カーネルからnbd.hを拾ってくる
    cp /usr/src/kernels/2.6.9-67.EL-smp-i686/include/linux/nbd.h /usr/local/include/nbd.h

    上記のようにやればnbd.hに関するconfigureエラーはクリアできました。
    あとになって気づいたのですが、2.8.8のREADMEを見るとちゃんと書いてありますね。
    nbd.hにenum関係のあるコードの記述がない場合は新しいカーネルから拾って置き換えろって。
    上の例では/usr/local/include/にnbd.hを置いてますが、
    デフォルトでは/usr/include/linux/以下にある(CentOS4.6の場合)ので、
    そちらと交換で大丈夫だと思います。というかそちらの方がたぶん美しい。
    configureの際に先に/usr/local/include/を参照する?から、
    /usr/local/include/以下においても大丈夫ってことなのかな?

    *再度configure→install
    ./configure
    make
    make install

    本当は当初NBDは最新版の2.9.11を使用しようとしていたのですが、
    2.9.11だとこのconfigureの際にglibのバージョンチェック?で弾かれました。
    checking for GLIB - version >= 2.6.0... no
    *** Could not run GLIB test program, checking why...
    *** The test program failed to compile or link. See the file config.log for the
    *** exact error that occured. This usually means GLIB is incorrectly installed.
    configure: error: Missing glib

    これはNBDのバージョンを下げて2.8.8にすれば通りました。
    glib更新でもいけると思いますが、今回はこちらで。


    *nbd-server側で実行
    クラスタノードにブロックデバイスを公開するサーバで行う。
    アクセスに使用するTCPポートは任意だが、今回は2000を使用。
    mkdir /export/nbd
    dd if=/dev/zero of=/export/nbd/nb0 bs=1M count=1024
    nbd-server 2000 /export/nbd/nb0

    *nbd-client側で実行
    全てのクラスタノードで実行する。
    以下はNBD ServerのIPアドレスが192.168.1.2、アクセスに使用するTCPポートが2000の場合。
    modprobe nbd
    nbd-client 192.168.1.2 2000 /dev/ndb0


  • OCFS2
  • 全てのクラスタノードで実行する。
    cd /usr/local/src
    wget http://oss.oracle.com/projects/ocfs2/dist/files/RedHat/RHEL4/i386/1.2.9-1/2.6.9-67.EL/ocfs2-2.6.9-67.ELsmp-1.2.9-1.el4.i686.rpm
    wget http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL4/i386/1.2.7-1/ocfs2-tools-1.2.7-1.el4.i386.rpm
    rpm -ivh ocfs2-tools-1.2.7-1.el4.i386.rpm
    rpm -ivh ocfs2-2.6.9-67.ELsmp-1.2.9-1.el4.i686.rpm
    vi /etc/ocfs2/cluster.conf
    --------------------------------------------------------------------------
    cluster:
    name = ocfs2
    node_count = 3
    node:
    name = spinner
    cluster = ocfs2
    number = 0
    ip_port = 7777
    ip_address = 192.168.1.9
    node:
    name = elevator
    cluster = ocfs2
    number = 1
    ip_port = 7777
    ip_address = 192.168.1.7
    node:
    name = rudder
    cluster = ocfs2
    number = 2
    ip_port = 7777
    ip_address = 192.168.1.10
    --------------------------------------------------------------------------

    /etc/init.d/o2cb configure
    --------------------------------------------------------------------------
    Configuring the O2CB driver.

    This will configure the on-boot properties of the O2CB driver.
    The following questions will determine whether the driver is loaded on
    boot. The current values will be shown in brackets ('[]'). Hitting
    without typing an answer will keep that current value. Ctrl-C
    will abort.

    Load O2CB driver on boot (y/n) [n]: y
    Cluster to start on boot (Enter "none" to clear) [ocfs2]:
    Specify heartbeat dead threshold (>=7) [31]:
    Specify network idle timeout in ms (>=5000) [30000]:
    Specify network keepalive delay in ms (>=1000) [2000]:
    Specify network reconnect delay in ms (>=2000) [2000]:
    Writing O2CB configuration: OK
    Loading module "configfs": OK
    Creating directory '/config': OK
    Mounting configfs filesystem at /config: OK
    Loading module "ocfs2_nodemanager": OK
    Loading module "ocfs2_dlm": OK
    Loading module "ocfs2_dlmfs": OK
    Creating directory '/dlm': OK
    Mounting ocfs2_dlmfs filesystem at /dlm: OK
    Starting O2CB cluster ocfs2: OK
    ----------------------------------------------------------------------------

    *フォーマット
    これは一つのクラスタノードだけでやれば良い
    mkfs.ocfs2 -b 4096 -C 128k -L DBF1 -N 3 /dev/nbd0

    *マウント
    mount -t ocfs2 /dev/nbd0 /mnt/ocfs

    とまあ大体こんな感じで、あたふたしながらマウントまでできました。
    今回は構築まで。あとは適当に触ってみます。



    本当はOCFS2もインストールの際に
    エラー: Failed dependencies:
    libreadline.so.5 is needed by ocfs2-tools-1.2.6-1.el5.i386
    rtld(GNU_HASH) is needed by ocfs2-tools-1.2.6-1.el5.i386
    のエラーから始まり、ライブラリを更新しようとするも、
    古いライブラリが他のプログラムに激しく依存していて、
    更新した結果wgetとかyumとかの基本コマンドなどが消去されたりしました。
    これは単純にOCFS2のダウンロードの際に、
    間違ってRHEL5用のRPMパッケージを落としていたせいだったのですが。

    他にも/etc/init.d/o2cb configureの際に以下のようなエラーももらってたり。
    Loading module "configfs": Unable to load module "configfs"
    Failed

    これも単純にOCFS2のダウンロードの際に
    間違ったカーネル用のRPMパッケージ(ELではなくELsmp)を落としていただけでした。

    まあこちらはNBDに比べて引っかかる人が少ないと思うので、最後にオマケ程度で。
    いやはや、眠い頭で作業をするとくだらない間違いをして仕方がない。

    眠い

    • 2008-06-11 (Wed)
    • SE
    ゼミの進捗発表できるレベルになんとか作業がまとまった。
    思ったよりも時間がかかってしまった。
    あとで作業ログを載せよう・・・。

    Google Browser Sync導入

    • 2008-06-07 (Sat)
    • SE
    Google Browser Syncを導入しました。
    Firefoxのブックマーク、履歴、クッキー、パスワード、開いてるタブを同期してくれるアドオン。
    データはGoogleのサーバに保存される。

    僕は家のデスクトップのWindowsとLinux、
    ノートPCのWindowsの3つの環境を主に利用しています。
    この3つの環境はブックマーク内容がバラバラで、以前から統一したいと思っていました。
    このアドオンの存在は知っていたのですが、なんとなく放置していて、
    今日急に気が向いたので導入してみました。

    初めて同期するPCの場合、
    サーバの保持している内容と初めて同期するPCが保持している内容を比較し、
    PCがユニークに持っている内容をサーバに追加保存してから同期するみたいです。
    そのため、初めて同期したPCだけが持っているブックマークが
    同期したせいで消えてしまうということはないみたいです。
    一度同期したことがあるPCが二度目に同期する際には完全にサーバの内容を参照するため、
    サーバの方でブックマークが消えていれば同期した際にPCの方でもブックマークが消えます。

    3つの環境のブックマークを合体させてブックマーク整理を行っている際に
    一度Firefoxがクラッシュしたのですが、その際ブックマーク内容が少し巻き戻っていました。
    だから自動アップロードはリアルタイムに行っているわけではなく、
    飛び飛びの時間で行っていると思います。
    (任意でアップロードもできるっぽいですが。)

    一日にアップロードできる容量はある程度決まっているみたいで、
    大量のアップロードを行うと同期の接続が切られます。
    一応その後任意でアップロードはできましたが、一日の上限はあるかも。


    とまあ、触れていて思ったことのメモ書きでした。
    単純にバックアップのために利用するのもいいかも。
    新しい環境で一度同期すればすぐにブックマーク内容が復元されるし。

    Emacs再び

    EmacsWikiを参考に何度も挫折しているEmacsにもう一度トライ。
    わざわざEmacs自体にチュートリアルが用意されているのね。便利。
    チュートリアルはEmacs起動して"C-h t"。
    これを通せば基本的な操作は一通り身につくハズ。

    しかしチュートリアルを半分ほど終えたとこでもはや指がしんどい。
    また今度。

    資格の意味

    • 2008-06-05 (Thu)
    • SE
    卒論と並行してソフ開>英語>数学>物理な優先順位で少しずつ勉強中。
    といっても最重要は卒論なので、それぞれ1回あたりの勉強時間は30分ぐらいですが。

    ソフトウェア開発技術者は以前とろうと思ってテキストを買ったものの、
    色々ごたごたして放置していた。
    そんなわけで折角テキストがあるので勉強再開した。

    資格取得の意味は人にもよるだろうけど、僕の場合はただの勉強する際の目標かな。
    目標があった方がやる気がでてくるし、達成した時は気持ち良い。
    取り込んだ知識は忘却したり、陳腐化するから、
    TOEICなどと異なり更新が要求されない資格の信頼性は保証されないが、
    資格を取得する本人の視点では、勉強で一度でも知識に触れておくことは良い経験になると思う。
    勉強する場合知識を網羅していく必要があるから、あるところの知識がぽっかり抜けている、
    というようなことはかなりなくせると思うし。
    ゆえに広く浅くなりがちなのもたしかだが。

    仮に上に挙げたようなことが全て無駄と思えても、
    現状、就職する企業によっては昇進に資格取得が必要なところもあるから、
    それだけでも意味はあるのではないかなと。
    昇進条件ではない、または昇進という概念がない環境では完全に無駄になるかもしれませんが。

    まあでも僕は「ムダにはムダの意味がある」という言葉が大好きなので、
    ムダでも良いかなと思ったりします。
    ムダを楽しめるような人間になりたい。

    Ninja_RA_Custom

    • 2008-06-05 (Thu)
    • SE
    wuさんが作成されたテンプレートの"Ninja"をかなり気に入って使いたいなーと
    前から思っていたのですが、プラグインに対応していなかったり、
    その他細かい部分でいじりたいところがあるので使いたい気持ちを抑えつつちょくちょくいじってました。
    XHTMLは1から書いたことがないのであまりわからないけど、
    ソースコードとにらめっこしつつコピペを駆使してなんとか自分の好みの仕様にすることができました。

    卒論提出締切りプラグインの表示がちょっとおかしかったりしますが
    (一応直せるけど、その解決策だと他のところにも影響を及ぼしてしまい、
    その修正をするのがめんどいので放置中・・・)、テンプレート使用開始。
    もしかしたら他にも変なところがあるかもしれないけど、
    そこはおいおい修正していくということで。

    クールで可読性も高い。今までで一番のお気に入りのテンプレートかも。

    衝動買い

    • 2008-06-05 (Thu)
    • SE
    Linuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編
    例解UNIXプログラミング教室
    ファイル構造
    WEB+DB PRESS 総集編 [Vol.1~36]

    たまーにくる本衝動買い。占めて約17000円。たけぇ。
    WEB+DB PRESS 総集編は本探しているうちに偶然発見して衝動買い。
    出てるの知らなかったのでこれは儲けものだった。
    ただ欲を言えばVol.37まで含んで欲しかった。
    Linuxロードバランサーの特集があるので・・・。

    購入した本はページ数がかなりあるから読むのに時間がかかる。
    ただ積んでいてもふと気が向いて読みたくなる時があるのよね。
    読みたい本が読みたい時に読める場所にあることが私的にとても重要なので、
    欲しい本は先に買っておくのです。

    クラスタファイルシステム

    GFSに力を入れる前に。
    そもそも卒論のシステムで使うファイルシステムはGFSでいいのかというところから。
    クラスタファイルシステムについて調べてみる。

    クラスタで使用されるファイルシステムには、大別して二種類あると考えて良いみたい。
    一つが分散ファイルシステム。もう一つがクラスタファイルシステム。

    前者は複数のノードで少しずつデータを保持して、ストライピングを行うファイルシステム。
    サーバでRAID0を構成するイメージに近いもの。Google File SystemやLustreなど。

    後者はブロックデバイスを複数のノードで同時にマウントし読み書きするファイルシステム。
    Global File SystemやOracle Cluster File Systemなど。

    GFSやOCFSはRAID0を構成しない場合、HDDの速度がボトルネックになりそう?
    共有できても最終的にアクセスできるデバイスが一つじゃ順番待ちになるからね。
    分散ファイルシステムは拡張性や信頼性にやや欠けるものの、
    ストライピングするだけあって速度が速いかな。
    分散ファイルシステム+RAID0とかやるともっと速くなるんだろうか?

    もうちょっと調べて使用するものを決定する予定。
    思ったよりもファイルシステムの数が多い。
    そんで違いを理解するのがしんどい。
    最終的には触れた経験があるせいで好奇心が一番強いGFSに落ち着きそうな気はする。

    A 64-bit, shared disk file system for Linux

    ↓次読もうかなと思っている論文。
    A 64-bit, shared disk file system for Linux

    Red Hatのページに書いてあるように、GFSのバージョン3.0について説明されている論文。
    論文自体は発見していたけど、ここで言われているGFSが
    Red Hat GFSに関係しているのかがよくわかっていなかった。
    少し調べてみたところ、Red Hat GFSと関係したものであることがわかった。
    元々GFSはSistina Softwareが販売とサポートを行っていたのだが、
    2003年にRed HatがSistina Softwareを買収したのでRed Hat GFSとなったらしい。

    卒論でGFSを使おうと思っているので、これを読んでGFSについて学びたいと思う。

    しかし英語&2カラム&20ページ。
    きっつい(^ω^;;)
    まあ、慣れればなんとかなるだろ・・・。

    Home > 200806

    Page Top