トップ 最新 追記

本 日 の h o g e

hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。

更新情報の取得には rdflirs を使ってもらえると嬉しいです.


07/01/2003 7 [長年日記]

tDiary 250日目

[日記] 7

もう7月か….毎年のことながらこの寒さはなめとる.

[日記] 表計算

説明会の発表資料を作るために棒グラフを作らなきゃなんなくなって,gnuplotでかっこいい棒グラフ作る方法がよく分からんかったのでOpenOfficeのoocalcを使って作ろうとしたら,ものの見事に表計算ソフトの使い方忘れてやんの.もう3年以上も使ってないからなぁ.MS系操作性はよく分からん.

…まぁなんとかなったから良かったけど.


07/02/2003 うぉ [長年日記]

tDiary 251日目

[日記] 星村麻衣

マジで!? 中学2〜3年の時同じクラスだった知合いがドラマの主題歌を歌ってるなんて信じらんねぇ.すげーよマジで.世間は狭いなぁ.

しかし励みになるね.ぜひ頑張って欲しい.俺も負けてらんねー.

from Matzにっき

追記:星村さんつながりでジモッティつーか同級生発見.いやはややっぱり世間は狭い.さて俺としてはmputさんの正体が気になるところ(わら

[小ネタ] 飛び出す猫

なんかいい.

[Gentoo] パッチのコンフリクト

前々からどうも xmms の ebuild が emerge 通らんなと思ってたら sf.jpML によると俺だけじゃなくてみんなそうだったらしい.むぅ.ロシア語のサポートと SJIS な文字も読めるようにするパッチとがぶつかってたためらしい.

しかし日本,中国,韓国のサポートを分けるのとも関連してくる*1けど,例えば各言語ごとにUSEフラグを分けるとすると,このロシア語サポートの例を見ると,考えられる可能性として

  1. jaなパッチのみ当てる (USE='ja')
  2. ruなパッチのみ当てる (USE='ru')
  3. どちらも当てる (USE='ja ru')
  4. どちらも当てない (USE='')

の4つの可能性が考えられる.1,2,4の場合なら特に問題はないけど,3の場合にコンフリクトする.かと言ってjaパッチやruパッチをどちらも当てる場合に考慮して作り直すとなると,今度は1,2の場合に支障をきたす.かと言ってそれぞれの場合に応じたパッチを用意するのは現実的でない.この場合は2つのパッチだけど,3個も4個もコンフリクトする場合だって出てくるだろうから.

全てはパッチが行番号を見てるということに起因してるんだけど,こればっかりはどうにもならん気がする.USEフラグに応じてコンフリクトするパッチをマージできるような機構を作るのが一番良いんだけど,そんなことできるのなら誰かやってるよなぁ.今も昔もパッチが当たるの当たらんのって問題は実に多い.

うーむ難しい問題だ.

[小ネタ] 初代グラディウスで2000万点

すごすぎる….でも……限りなく意味不明….

from 今日のなんでやねん

Googleに訊け!

最後の質問とその回答がナイス.

[小ネタ] 液晶ヘルメット

バカすぎ….

[ニュース] 次世代コミュニケーションデバイス

リング型カメラはすごいな.アクセサリとしてはどうかと思うが輪っか覗いて撮影ってのは面白い.

[小ネタ] 恋愛の取説

学者タイプらしい.

○興味のない話に冷たい
○無駄が嫌い、工夫が好き
○感情的になることを恥じる

うわー合ってるよこれ.

from mput の日記。

[日記] 廃刊

廃刊ドットコムってのがあったらおもろいんだけどなぁ.そういやたのみこむなんてもんがあるのを初めて知った.

[小ネタ] ビジュアル?

何か人でなしが混じってますよ?

[Bash][Tips] グルーピング

さてこないだ出てきた { } だけど,これは一種のグルーピングをするものだ.つまり一連の処理を一つのグループにまとめている.数式に出てくるカッコのようなものだと考えることもできる.こないだの例だと

$ make clean && { echo "cleaned."; make; } || echo "clean failed."

となってるけど,これをもし

$ make clean && echo "cleaned."; make || echo "clean failed."

に変えたらどうなるだろうか.答えは,

$ { make clean && echo "cleaned."; }; { make || echo "clean failed."; }

と同義になってしまうのだ.&&|| よりも ; の優先度が低いと考えることもできるが,それは当然のこと,; というのは改行の代わりなのである.つまり

$ echo hoge; echo foo
$ echo hoge
$ echo foo

この二つの例はどちらも同じ意味であることが分かるはずだ.

…話がそれたけど,これでは,make clean が失敗しようが成功しようが,少なくとも make は実行されてしまうことになる.それでは意図と違う.そのため,こないだの例では make clean が成功したら { echo "cleaned."; make; } を実行するようにしてあるのだ.また,複数のコマンドの結果をリダイレクトやパイプしたいときにもグルーピングが便利だ.例えば

$ { make clean && make; } > make.log

などとすると,make clean の出力と make の出力の双方がリダイレクトされる.注意点としては,{} とコマンドの間にはそれぞれ空白を入れなければならないことと,コマンドの最後に ; を入れなければならない*2ことだ.

これと似たものに ( ) があるけど,これはサブシェルと呼ばれるもので,基本的に別物だ.更に微妙に挙動なども違うので混同しない方が良い.この ( ) についてはまた今度.

*1 今GentooJPのdevなMLではその問題が旬(?).

*2 改行でも可だけど.

本日のツッコミ(全2件) [ツッコミを入れる]

mput [またまたぁ。わかってるくせに(笑) ]

atzm [目星はつくけど確信はないなー.クラス同じだったよね? ]


07/03/2003 [長年日記]

tDiary 252日目

[小ネタ] 恋愛頭脳

あっはっは,「変」が3つもあったよ.俺ってそんなに性欲強かったのか,知らんかった.つーか「印象」が「特にありません」って酷くない?

atzmさんにとっては、男女関係にあまり没頭するのは好ましくないようです。ヒマな人や寂しがりやな人と付き合うとトラブルも多そうですが、その気持ちも汲めればさらにatzmさんの恋愛観は磨かれることでしょう

んー全くその通りで.俺には没頭したいことが山ほどあるんじゃ.

atzmさんはルックスにわりと無頓着であると言えるでしょう。異性のルックスにあまり執着しない点は好感がもてますが、atzmさん自身のルックスに無頓着であることは一般的に好感を持たれません。自分を磨くことは忘れずに

自分のルックスには割と気を遣ってるつもりなんですけどね.相手のルックスはどうでもいいけど.

atzmさんは一般レベルよりかなり駆け引き重視に偏っています。テクニックを駆使して相手より優位に立つ恋愛を無意識のうちに繰り広げていませんか?このテの恋愛は自分はラクですが、気づけば相手が疲弊していたり、別れた後にむなしさが残ったり…

しねーよ!(わら

性に関しては強欲の部類に入ります。性の重要性は言うまでもありませんが、どうやら一般平均はatzmさんよりはもっと冷静で淡白のようです。好きとか嫌いとか、そんなのはまやかしや余計なものだと思っていませんか?すきやきで肉しか食べない人のようです

ぎゃはははは! ひでえ言われよう.そりゃ肉は好きだけどさ.

おお,相性チェックなんてものもあるのか.彼女にやってもらおう.

from mput の日記。

追記:彼女にやってもらったら相性100%とか出たらしい.しかし△が2つもあって100%ってなんかヘンじゃない?

[Gentoo] cjkやめよーぜ

こないだから問題になってたcjkの話.なかのさんの提案.

[ニュース] 初のPerl 6本 "Perl 6 Essentials"

このコメントに全く同意.

  1. 6本? 何が6本あんの?
  2. 六法の間違い? Perlの6つの原則とか?
  3. クックブックみたいなもん?

と妄想三段締めしてしまった自分.

[ニュース] Linus 「Linux 2.6 のβ版が出るよ」

やっとかー,でも 2.5 が 2.6 のβ版なんじゃないの?

[ニュース] 夏休みの工作はLet'snoteだ

欲しいぞ,やらせろ.俺は15h歳だからいいだろ.

[日記] チモール

なんかここ見て思ったんだけど,東ティモールって昔よく耳にしたけど,「東チモール」っていうと何か異様にマヌケな響きだな.なんつーか,

恥毛る

って感じ?

[小ネタ] 擬似恋愛特集

なんか最近オタクをネタにする番組増えてないか? 食傷気味.

from ひなた日誌

[小ネタ] いくら漏れても大丈夫

東京雷刀ってなんかヤイバ思い出すな.

[小ネタ] GNU GPL で描く RMS

これぞアスキーアート.最近のAAと呼ばれるものはASCII文字以外で作られてるのでアスキーアートとは言えんのですよ.:-)

[Bash][Tips] サブシェル

サブシェルの話.グルーピングとは違って,別のBashプロセスを生成して,その中で処理をするのがサブシェルだ.基本的にグルーピングとは別物と考えた方が混乱が少ない.例えば

$ pwd
/home/atzm

$ mkdir hoge

という状態であるとき,次の2つの処理をやらせてみると違いが明白だ.

$ ( cd hoge ); pwd
$ { cd hoge; }; pwd

前者では最後の pwd/home/atzm が返ってくるのに対して,後者では /home/atzm/hoge が返ってくる.つまりカレントディレクトリが cd によって移動されたままだ.

サブシェルでは別のBashプロセスを起動して,その中でカレントディレクトリを移動し,カッコが終わるとそのプロセスは消える.すると元のシェルに戻る.元のシェルでのカレントディレクトリは /home/atzm である,というわけだ.上のサブシェルの例は,

$ bash
$ cd hoge
$ exit
$ pwd

とほぼ等価というわけだ.また,サブシェル内で代入された変数なんかもサブシェルの終了とともに消え去る*1.注意点としては,グルーピングと違ってカッコとコマンドとの間に空白が必要ないこと,コマンドの最後にセミコロンが必要ない,といったところか.まぁ別にあっても構わないからグルーピングの方に合わせておくと楽かも.

さてこれがどういうときに便利かというと,例えばカレントディレクトリ内の全てのディレクトリで make を実行したい,なんて場合なんかに便利だ.そういうときは

$ for dir in *; do if [ -d $dir ]; then ( cd $dir; make ); fi; done

あるいは

$ for dir in *; do ( cd $dir 2> /dev/null && make ); done

という感じだ.メタ文字を含む名前のディレクトリが存在する場合は "${dir}" とした方が良い.

この if とか for とか 2> についてはまた今度.

*1 exportしてしまうと残るけど.


07/04/2003 [長年日記]

tDiary 253日目

[小ネタ] ○○っておかしくね?

なかなか楽しませて頂いた.

実際どうかは別として常識に疑問を抱くのは大切だよね.

[日記] 思い出

今日昼飯に鰹のタタキを食ってたら,不意に千葉に住んでるばーちゃんを思いだした.ハテ何で突然…って考えてたら,ああそういうことか,この鰹のタタキにはミョウガが入ってるみたい.懐かしい味だ.

小さい頃,ばーちゃんの家に遊びにいくと決まってミョウガ入り味噌汁が夕飯の時に出たものだ.それで思い出したんだろう.

俺の記憶は食い物に連結しているらしい.ばーちゃん元気かなー.

[ニュース] 国際クラッキングコンテストにご用心

むーん…ここも何かやっといた方が良いんかいな?

[日記][ソフト] Namazu

いい加減,日記の量が増えてきたので Namazu を入れて日記内検索を行えるようにした.cronに登録しといたので1日1回インデックスが更新されるはず.さてしばらくは様子見かな.

参考:XREA + tDiary + Namazu

[小ネタ] ビールジョッキの持ち方

「脇締めダブルハンド乙女」って…すげぇネーミングセンスだ.

from エロチック街道

[小ネタ] 疑似恋愛特集の全貌

昨日のアレの全貌.なんかマネーの虎のチャンコ思い出した.

そういや昨日家帰ってふとテレビつけたらこの番組やってたよ.ずっと見てたわけじゃないからよく分からんけど,なんか官能とか声優とかどうのこうの言ってた気がする.エロゲ声優の話かな?

[小ネタ] KARATEKA TURBO

うますぎ.

[小ネタ] 邪神占い

うーむ…シュブ=ニグラスとか言われてもさっぱり分からん.

社会の仕組みなど知ったことではないってのは合ってるけど,他はどうだろ?

[Gentoo] webapp.eclass

そういやこんな提案があったっけ.コレ使って tDiary の ebuild 作れるんじゃないかな.

[日記] Google

Wanderlust でメール本文の検索をどうやってやるのか調べてたんだけど,Google って「メール」で検索しても「メイル」が引っかかるということに気づく.おぉ Google さすがだ.

しかし肝心の本文検索のやり方は分からず.とほー.Namazu あたりでやるしかないのかなー.

[Bash][Tips] ファイルディスクリプタの連結

Bash には標準入力,標準出力,標準エラー出力があって,それぞれ0,1,2でアクセスできる.これはリダイレクションを行うときによく使う.例えば make のログをファイルに残したい場合,

$ make > make.log

などとするけど,これは暗黙のうちに標準出力,つまり1を省いているということになる.厳密に書くなら本来こうなるはずのものだ.

$ make 1> make.log

これは1,つまり標準出力へ吐き出されるものが make.log というファイルにリダイレクトされることを意味する.では標準エラー出力へ吐き出されるものをリダイレクトしたい場合はどうするかというと,もちろん

$ make 2> make.err

となる.

またファイルディスクリプタはそれぞれを連結,つまり例えば本来エラー出力へ吐き出されるはずの出力を標準出力へ吐き出すようにすることができる.端末への出力ならエラー出力だろうが標準出力だろうが関係ないけど,ファイルなどへリダイレクトしたり,パイプさせたい場合に役立つ.

$ make > make.log.all 2>&1

この 2>&1 というのがミソで,これは2(エラー出力)を1(標準出力)に連結するという意味だ.ここで注意して欲しいのが,以下のように書いてしまうと期待した結果が得られないことだ.

$ make 2>&1 > make.log.all

また,2を1に連結してリダイレクトするような指示は,以下のようにも書くことができる.

$ make &> make.log.all

エラー出力への出力をパイプしたい場合,やはり連結すると便利だ.例えば strace コマンドの出力はエラー出力へ吐き出されるが,これをパイプしたいなら

$ strace make 2>&1 | less -r

などとしてやればいい.tee コマンドでエラー出力を操作したい場合も同様に,

$ strace make 2>&1 | tee make.log.all

といった感じだ.

本日のツッコミ(全4件) [ツッコミを入れる]

kimata [始めまして。日記楽しく読ませてもらってます。wlの検索ですが、 http://www.sfc.keio.ac.jp/..]

へにょ [邪神占いやってみました。自分「アザトース」でした。当たってて、ちょっと嫌。 ]

atzm [おぉっ,まさにそれです! わざわざありがとうございます.:) ]

atzm [自由気ままに行動しまくりですな,へにょ氏も俺も.:-P ]


07/05/2003 なmあzみだぶつ [長年日記]

tDiary 254日目

[日記][ソフト] なまず

cronがちゃんと動いてなかった.コマンドをフルパスで書いてませんでした.ゲフー.

[] Stopping Spam

こんな本がオライリーから出てたとは.

[音楽] マリオ

俺の着メロがコンプされてら.…いやどっちかってーと俺がマリオの音楽コンプしたのか.どっちでもいいや.それにしても,このアンカーの「smbros」って狙ってんのかな? SMブラザーズ.

しかし魂斗羅は懐かしすぎる.

from 今日のなんでやねん

[ニュース] ハードウェア改造不要のXbox Linux起動方法が公開される

ありゃま,結局MSからは良い返答もらえなかったのね.当り前だけど.

[ソフト] UTF-8 decoding error

何やら ninix-aya の CVS版が,天気予報や bottle からの情報を喋ろうとすると UTF-8 decoding error: invalid data とか吐いて死亡するようになった.内部の文字コードが変わったとかかなぁ?

[小ネタ] 遊覧船がホットスポットになると?

どわぁ! 見覚えのある風景が….

[小ネタ] FSSガレキ

ひえー,ようやるわ.でもちょっと欲しい.

[ソフト] tDiary

久しぶりに cvs up したら挙動が怪しくなってら.00default.rb がエラー出してたので古いやつに差し替えたら動いた.でもupdate画面の「登録」ボタンの横に空白のボタンが…これ何?

あ,よく見たらプレビューとか再編集の画面がなくなってら.うはー.やっぱ俺みたいなヘタレはリリース版使った方が無難かもなぁ.

i18nとm17n

恥ずかしながら今まで知りませんでした.しかし18とか17って数字の意味はいまだ分からず.

[小ネタ][ダメ] パンスト当選

ちと古いが.

それにしても,いくらエロゲ(だよね?)とはいえ,開発中になぜパンストをボロボロになるまで「使う」のか…?

[小ネタ] 横浜が勝てません

404シリーズ.しかしWinじゃないとこのフォーマットにはならないからなぁ.

おぉ こんなの もあった.

[小ネタ][ダメ] なんじゃこりゃ….

何かと思ったら着せ替えとは…マニアックな.しかしスゲーな,最近のエロゲ会社はこんなんまで作ってマーケティングしてるのか.

[小ネタ] ざざむし

虫が更新されてた.相変わらずすさまじい….

[Bash][Tips] もしも…

Bash はプログラム言語の三つの制御構造を満たしている.三つの制御構造というのは

  • 逐次実行
  • 条件分岐
  • 繰り返し構造

の三つだ.逐次実行とは上から順番に処理を実行していくというルールで,条件分岐は「もし○○が××なら△△を実行する」というような命令,繰り返し構造は「□□が▽▽を満たすようになるまで◎◎をし続けろ」というような命令のことだ.

で,今回のはこの条件分岐.これ Bash ではこれを if 〜 then 〜 else 〜 fi で表現する.簡単な例を見ると,次のような感じだ.

$ if [ "${HOGE}" = "hoge" ]; then echo '$HOGE is hoge'; else echo '$HOGE is not hoge'; fi
if [ "${HOGE}" = "hoge" ]
then
echo '$HOGE is hoge'
else
echo '$HOGE is not hoge'
fi

上記2つの例は全く同じものだけど,さてこれが何を意味するかというと,$HOGEhoge という値が入っていた場合に echo '$HOGE is hoge' を実行し,そうでない場合は echo '$HOGE is not hoge' を実行する.また,else以下の文は省略可能で,いらないならいらないで書かなくても良い.

if [ "${HOGE}" = "hoge" ]
then
echo '$HOGE is hoge'
fi

条件を複数設けたい場合は elif 〜 then 〜 を繰り返す.

if [ "${HOGE}" = "hoge" ]
then
echo '$HOGE is hoge'
elif [ "${HOGE}" = "foo" ]
then
echo '$HOGE is foo'
elif [ "${HOGE}" = "bar" ]
then
echo '$HOGE is bar'
else
echo '$HOGE is not hoge'
fi

これで,$HOGE の値が hoge であれば,foo であれば,bar であれば…という感じに順番に条件を評価していくことができる.また,if文ではどれかの条件がヒットした段階でその if 〜 fi の文を抜ける.

ちなみにコマンドが返す値を評価して,結果に応じた処理をさせる,なんて場合にも使える.

$ cat > hoge.txt
foo
bar
baz
hoge
boo
huga
piyo
hemo

$ if grep hoge hoge.txt > /dev/null ; then echo "hoge in hoge.txt"; fi
hoge in hoge.txt

$ if grep buge hoge.txt > /dev/null ; then echo "hoge in hoge.txt"; fi
$

あと,意外と知られていない(使われてないだけ?)使い方として,こんなのもある.

$ HOGE=1
$ FOO=5
$ if (($HOGE < $FOO)); then echo "$FOO is bigger than $HOGE."; fi
5 is bigger than 1.

つまり (( )) によって算術評価を行い,結果を if に評価させる.

しかし if はほとんどの場合*1&&|| で置き換え可能なので,そっちを使う方が楽かも知れない.下記のような書き方ができるからだ(シャレじゃないぞ).

$ [ "${HOGE}" = "hoge" ] && echo '$HOGE is hoge' || echo '$HOGE is not hoge'
$ grep hoge hoge.txt > /dev/null && echo "hoge in hoge.txt"
$ (($HOGE < $FOO)) && echo "$FOO is bigger than $HOGE"

*1 elifを使わない場合のこと.

本日のツッコミ(全4件) [ツッコミを入れる]

shy [CVSのninix-ayaは本体の変更にsstp.pyが追いついていない状況です. ]

atzm [なるほど,そうだったんですか.確かに文字コード変換周りがコメントアウトされたりしてますね. ]

あかり [今更ですが。 ネタにして頂けるのはうれしいんですが、もすこししらべよーね。 該当ゲームのページに行けば、こだわりの..]

atzm [す,すみません.すごい気合いの入り様ですね…. ]


07/06/2003 s [長年日記]

tDiary 255日目

[日記] s

説明会の準備.なかなかにめんどくさい.

[日記] なぜDebianから…

と思ったらまた台湾….Gentoo と同じ形のフォーラム持ってるのね.全然読めんけど,語感から察するとここの人達は /opt じゃなくて /usr/usr/local 以下にインストールしたがってるのかなぁ.

なら自分でパッケージングすれば良いのにとか思ったけどそうもいかんのかな.Debian はよく分からん.イヤ少し使ってる手前,知っといた方が良いんだけどさ.

[ニュース] 文化財の画像ネット利用、著作権保護策を検討

ん? これってMSあたりが昔買い漁ってなかったっけ.日本のにも手が及んでたかどうかは知らんけど.

[日記][ソフト] tDiary

リリース版に替えてみる.calendar3の挙動がおかしい.はて?

というわけでしばらく様子見という名の保留.

[ソフト][Linux] Linux でリモコンを使おう

うわーすごい面白そう.…というかコレ未来のPCの形かもね.そのうちリモコンでデスクトップ切替えとかシャットダウンとかできるようになるのかも.

from Yoichi's diary

[小ネタ] サイトを1998年テイストにしてみない?

1998年テイストなふーばーばずほげ.ついでに Today's HOGE.み,見づれぇ….

しかし1998年つーと俺がネット始めたあたりかそのちょっと前くらいかな.…何気にネット歴浅いな俺.しかしその頃は確かにこんなデザインが多かったような気もする.

[日記] というわけで

説明会終了.んーまぁXSSの実演なんて突発的なアイディアを無理矢理通しちゃったけど,これはこれで良かったんじゃないかな.見学に来た人たちもそれなりに楽しんでくれたみたいだ(と思う)し.やっぱわざわざ遠くから(まさか愛知から来てる人がいるとは思わなかった)来てくれてるのに,話聞くだけで帰るのはちょっとねぇ.やっぱ実際手を動かして実感してもらった方が良いと思うし.

…なんてことを言うとなんか凄そうだけど,実際は自分がプレゼンするのが面倒だからそれで時間を潰しただけというオチ.一応資料は作ったんだけどね.…かなり謎な資料だけど.

[小ネタ] PostPet - O'Reilly

な,なんてナイスな表紙なんだ.

from もっこす日記

…そういや昔こんなん作ったなぁ.確か自動でやってくれるやつ.あのページなくなってた.ちょっと寂しい.

[ソフト] Queequeg

こないだからちょこちょこ使ってるんだけど,何気にかなり便利かも.テキストをコピーして

$ cat <<EOL | qq -Wall
> (張り付け)
> EOL

でよく使ってる.んーナイスなソフトだ.

[日記] 突然

英語の勉強をしようと思った.日記を一日一回くらい英語で書いてみるというのはどうかな.ちょっとやってみよう.

I am a boy, this is a octopus!
Octopus? Oh!

…誰が分かるんだこんなネタ.

[日記][英語] Translations

There is an English-Japanese translator at Excite, I looked at Excite today, it says "there are English-Japanese and Chinese-Japanese translators."

But I couldn't find a selectable item which is a Chinese-Japanese translator. I think "It says that there is a Chinese-Japanese translator though, why I can't select Chinese-Japanese?"

...I was thinking so, but I found "中国語" at the upper part in this page some time ago... It's just "Toh-Dai Moto Kurashi!!"

…なんじゃこの英語….

[Bash][Tips] ケース

こないだ if文 をやったのでついでに case文.

これはいちいち elif を書き連ねていくのがめんどくさい場合なんかによく使う.

case $HOGE in
foo)
echo '$HOGE is foo';;
bar)
echo '$HOGE is bar';;
hoge)
echo '$HOGE is hoge';;
*)
echo '$HOGE is unknown'
esac

これが何を意味しているかというと,case の後の $HOGEfoo であれば echo '$HOGE is foo' を実行し,bar であれば echo '$HOGE is bar' を実行し…という感じになる.foo にも bar にも hoge にもマッチしなかった場合は最後に * が評価されることになるけど,ご存知の通りこれはワイルドカードなので何にでもマッチする.つまりどれにも当てはまらなかった場合はこれが実行されることになる.if文で言えば else に相当するものだ.

case文を使うとき気を付けなければならないのは,それぞれの場合の最後に ;; と,セミコロンを2つ付けなければならないことだ.つまり処理が2文以上ある場合などは

case $HOGE in
hogera)
cat ${HOGE}.txt
echo "this is ${HOGE}.txt";;
*)
echo 'unknoun text file'
esac

というようになる.ちなみに最後の場合のみセミコロンを入れる必要はない*1

また else と同様,*) の処理はあってもなくても良いので,入れたいときにのみ入れると良い.

*1 あっても良いけど

本日のツッコミ(全6件) [ツッコミを入れる]

yosh [5日の内容にだけど... i18nの18は"iNTERNATIONALIZATIOn"のiとoに囲まれてる文字の数で..]

atzm [うおぉ目から鱗! そうだったのかー! ]

shy [Debianの件はファイルのインストール先がDebianのポリシーに違反しているからパッケージを直そうという話ではな..]

atzm [あ,なるほど.Debianってそういうポリシーが厳密に決まってますもんね…. CVS試してみました.うまくいってます..]

shy [チャンネル情報については知りませんでした. どこで変わったんだろう.(^^;; 今回の変更の目的は多言語対応でして,..]

atzm [ちょっと前からNewsは表示されてたんですけど,それ以外は表示されてなかったんです. おぉ,ということはこれで台湾の..]


07/07/2003 七夕 [長年日記]

tDiary 256日目

[日記][英語] Tanabata

Today is Tanabata... Although I don't know Tanabata stories well, I'm just knowing "Someone (I don't know his/her name :(. ) cause a rift between Orihime and Hikoboshi, after, this couple has become of they can meet each other, only night on 7/7." Umm...What's Amanogawa?

By the way, I visited Google today. It is usual that the Google's banner changes at some events, but Tanabata is an event only in Japan, I think. So I go to Google at foreign domain, Google's banner was as usual, as I expected.

Google's banner is changed according to each countries, I didn't know that.

うおーむっちゃ疲れる.しかも随所微妙に間違ってるくさい.

[小ネタ] Missile Strike

なんか懐かしいゲームだなぁ.グラフィックが格段にかっこよくなってるけど.

[小ネタ] IQテスト

なんか今日のゼミで友人が紹介してた.小さくてよく分からんかった.swfを直に開きゃよかった.ちなみに俺はIQ116の標準偏差16だそうな.普通より良いらしい.良かった悪くなくて.

あ,こっちが本家かな.こっちでやったらIQ121の標準偏差15だった.まぁ違う問題がそこそこ出たとはいえ2回目になるから良くなるのは当然か.116の方が本物だろうな.しかしこういうのって企業の適正検査とかでやらされたなぁ.ホント頭が疲れる.


07/08/2003 [長年日記]

tDiary 257日目

[日記] 日記

Bashのせいか1日の日記がやたらめったら長くなるので,最新表示を減らした.でもまだ長いな.もっと減らすか?

ついでに夏向けにテーマを替えてみる.しかしやっぱり白いと目に痛いな….

[日記] む

昨日はBash書くの忘れてた.もし期待してる人がいたらごめんなさい.でもいないだろうからまぁいいや.

[日記][英語] The thermo bottle

Yesterday, I went to Homac ( is a home amenity center. ) with a friend together, for buy a cleanser for thermo bottles and any furnishings, for my Lab., because thermo bottle at my Lab. was too dirty. Some problem happened by a receipt, but it isn't very big problem ( really? ;-P ).

And, I use this cleanser to a thermo bottle at my Lab. After, this bottle has become very very clean, like a new article completely. Great!

[ニュース] 2003年上半期ウィルス感染被害状況

しっかし一向に減らんね.

[ソフト] I-dic

マンボウの卵のごとくポコポコ生まれるアイドルを辞書にするなんて相当の労力だろうなぁ….

[ニュース] データイーストが倒産

な,なにぃぃぃ! カルノフカムバック!

[ニュース] 「私はマナーを守っている。他人のマナーは悪い」

いかにもメリケン人だよなー.国を象徴してるわ.

[ニュース] PCで肌チェック

ひょえー,最近じゃこんなんできるようになったんか.

しかし「肌チェキ」って名前はやめとけ.恥ずかしいぞ.

[日記] 象

ミリンって10回言ってみてー.
ミリンミリンミリンミリンミリンミリンミリンミリンミリンミリン.
鼻の長い動物は何でしょー?
キリンー.
ぶっぶー違いまーす.象でしたー.
ぎゃふん.やられたー.

おわり.

[日記] w-inds

昨日へにょ氏とこんな話をしてました.

あ:Dark MooRって何かボーイソプラノって感じだよねー.
へ:あーそりゃNightwishに慣れたからだろー.
あ:いや,ていうかさ,…w-indsとかってこんな声で歌ってそうじゃねぇ?
へ:…あーーー!!
あ:だよなー?
へ:つか何てこと言うんだ,Dark MooRがw-indsにしか聞こえなくなったじゃないか!

…てか今気づいたけど縦読みすると「あへあへあへ」になって嫌な感じだな.

そういや w-inds ってさー.

ダブルインド人

って感じじゃない? …と思って検索かけたらやっぱり既出だった.でも一件しかなかった.意外.

[Bash][Tips] さぁ選べ!

case をやったので次は select にでも.対話的プログラムを書くときにメニューを作成したくなる場合がある.例えば「次の中から番号を選択してください」なんてことを簡単にやってくれるのが select だ.次の例を見てみて欲しい.

$ select hoge in 6 7 8 9 end; do [ "${hoge}" = "end" ] &&
> break || echo "$hoge + 5 = $(($hoge + 5))" ; done
select hoge in 6 7 8 9 end
do
[ "${hoge}" = "end" ] && break || echo "$hoge + 5 = $(($hoge + 5))"
done

例によって上記の2つの例は全く同じ処理をするものなんだけど,これを実行すると以下のような形になる*1

1) 6
2) 7
3) 8
4) 9
5) end
#?

つまり「さぁ選べ!」の状態だ.このメニューは,見ての通り in 以降改行までの文字の羅列から生成される.この #? プロンプトで対応する数字を入力してみると….

#? 1
6 + 5 = 11

ここで何が起こったかというと,select の次にあった hoge という名前の変数に,対応する文字列が代入され,do 〜 doneまでの処理が実行されるというわけだ.この例では do 〜 done の中はどうなっているかというと,$hogeend でなければ 5 との足し算をし,end だったなら break,つまり select 処理を脱するというものだ.ここで選んだのは 1,つまり対応する値は 6 なので,6 + 5 = 11 という結果が得られたわけだ.

実際に使う場合に注意しなければならないのは,この処理は無限ループする*2ということだ.いったんメニューから何かを選んだら処理をさせて終わり,という風にしたいのであれば

select hoge in 6 7 8 9 end
do
[ "${hoge}" = "end" ] && break || echo "$hoge + 5 = $(($hoge + 5))"
break
done

という風に,最後に break を入れるなどする必要がある.

また,入力に対応する数字がなかった(この例だと10とかいう入力があった)場合,$hoge には空文字列が代入される.そういうエラー処理なんかも書いておくと良いかも知れない.

select hoge in 6 7 8 9 end
do
if [ -z "${hoge}" ]
then
echo "invalid number."
else
[ "${hoge}" = "end" ] && break || echo "$hoge + 5 = $(($hoge + 5))"
fi
done
1) 6
2) 7
3) 8
4) 9
5) end
#? 100
invalid number.

ちなみにこの #? というプロンプトが気に食わなければ,PS3という変数の値を変えてやればいい.

$ PS3="Please select a number. > "
$ select hoge in 6 7 8 9 end; do ....
1) 6
2) 7
3) 8
4) 9
5) end
Please select a number. >

*1 PS3プロンプトによってちょっと変わるだろうけど.

*2 ただしEOF(Ctrl+d)で終了できる.


07/09/2003 [長年日記]

tDiary 258日目

[日記][] 本

随分前に先生に頼んでた 詳解Linuxカーネル第二版新The UNIX Super Text の上下巻が昨日届いた.これはもう猿のように読みまくるしか.特に詳解Linuxカーネル.

[ソフト][日記] --html-split

というオプションが mknmz にあることを知ったので早速 index を再構築したら,前まで 200 程度しかなかった文書が 1800 くらいまで膨れ上がった.まぁ当然っちゃ当然なんだけど,それにしても膨れ上がり過ぎじゃ….一日につき平均 6 回も書いてるのか.まぁちょっとでも気になったニュースは片っ端から取り上げてるからそうなるのも必然ではあるけど.

from ひなた日誌

[Linux][ニュース] 政府、人事・給与システムにリナックス採用

どのディストリ使うのかな…ってどうせ国産使うだろうから Turbo あたりかな.

[ニュース] 東京駅周辺も歩きたばこ禁止、千代田区が追加指定

愛煙家にはどんどん住みにくい世の中になっていくのう….東京みたいに人がごった返してるところでは確かに「歩き」煙草は危険だから禁止するのもやむを得ないと思うけどさ,喫煙所増やすくらいの措置は取って欲しいよなー.

[日記][英語] Cold

I've caught a cold. Snots don't stop. Sneezes don't stop too. Help me...

[小ネタ][英語] Japanese Arts

Full it care. Car was to become Ms. Norton.
Nuts cool say Yeah! Tours more know dome ogre. You made no art.
To Kim ill ever. Cheese needs more knock also. Can Nash sees curry? War gum is he taught you no ark in knee warrant need.
His soccers tan on his curry no dock cake. HAL nods heal knee. She is coker on ark. Her nano cheers your arm.

もう何がなんだか.これネタ全部分かったらすごい.一番上は昔からさんざん言われてるけど.

[日記] うぉ

昨日突然メールが来て知ったんだけど,俺いつの間にか企業の社長さんの前でプレゼンすることになってたらしい.どえー.

つか本人抜きで勝手に話進めるのやめて先生.

[日記][ソフト] むぅ

最近やたらとリファ付きアクセスが多くてよく分からなくなってきたので disp_referrer2.rb を導入してグループ化をはかる.その際に,アンテナなのにアンテナ欄に入ってくれないものがあったので disp_referrer2.rb 内の正規表現を少しいじってマッチングさせる.具体的には211行目の

antenna_url_match = /(\/a\/|antenna\/|www.tdiary.net\/?(i\/)?(\?|$))/i

となってたところを

antenna_url_match = /(\/a\/|antenna[\/\.]|www.tdiary.net\/?(i\/)?(\?|$))/i

に変更.

ついでに「不明」を少しでも減らすために置換リストをいくつか増やす.でも仕様を調べるのがめんどくさいので検索エンジン系は放置.

[ダメ] 今日の光学迷彩視認値

3.やたら渋くなっちまうぜ….

今のところ残り1.

[音楽][BGM] 今日のBGM

Emerald / Sinner
Hall Of The Olden Dreams / Dark MooR
Wishmaster / Nightwish

本日のツッコミ(全2件) [ツッコミを入れる]

zunda [antenna.へのマッチ、取り込ませていただきました。ありがとうございます。 http://zunda.frees..]

atzm [お世話になってます.…むしろこんなことくらいしかできなくて申し訳ないです(^^;; ]


07/10/2003 ふげ [長年日記]

tDiary 259日目

[日記] む

英語キーボードと日本語キーボードを併用してると混乱して困るね.

[日記][Gentoo] むぅ

巡回先の日記とか読んでると,Gentoo使ってたり「こないだ入れてみた」的なことが書いてあったり「今インストール中」みたいなことが書いてあったりして面白い.たった1年ちょいでよくもこんなに普及したよなぁ.改めてすごいぞGentoo.

1年前なんか,どんなに些細なことであれ日本でGentooのこと書いてる人なんてなかのさん以外に見たことなかったのに.

[日記] むぅ

なにやら2chにURL貼られてるぞへにょ氏に教えてもらう.なるほどそれでアクセスがいつもより多いのか.今見てみたらちらほらと ime.nu 経由のアクセスもあるみたい.どうもあのオマケスクリプトを便利だと紹介して頂いたようで恐縮です.

ぶっちゃけ自分じゃ使ってないんですけどね.使う場面にあまり遭遇しないもので….

[Gentoo][ソフト] おもろそうなもの

何かおもろいソフトないかなーと探しててちょっと気になったものなど.

[ニュース][英語] Google cache

I'm usually using Google's caches if search web page, because highlights are very useful. Also it always doesn't display "404 not found" so it doesn't make me angry. :-)

However, I'm annoyed that any people browse pages which were already erased because I have some reasons. Well, you may say "Don't write that make you annoy."

Umm...That's right. ;-P

[ソフト][日記] tDiary

結局何となくcvs版に戻す.何やってんだ俺.

ついでに,今更ながら個々の日記が \d{4}\d{2}\d{2}.html でなく ?date=\d{4}\d{2}\d{2} の形式に戻ってたことを知ったので原因を調べてたら,pluginディレクトリから html_anchor.rb が消えてた.あれー,いつの間に…?

[Bash][Tips] 繰り返し

「○○を繰り返し実行せよ」という処理をさせたい場合がある.そんなときに強い味方となってくれるのが while だ.

$ HOGE=1
$ while [ $HOGE -le 10 ]; do echo $HOGE; HOGE=$(($HOGE + 1)); done
HOGE=1
while [ $HOGE -le 10 ]
do
echo $HOGE
HOGE=$(($HOGE + 1))
done

また例によって上記2つは全く同じ処理を行うわけだけど,これが何を意味しているかというと,while は [ $HOGE -le 10 ] を評価して,真であれば do〜done 内の処理を行う.それが終わるとまた [ $HOGE -le 10 ] を評価して…と繰り返す.評価結果が偽であれば処理を抜けるという仕組みだ.ちなみに while によく似たものに until というものがあるが,これは while と違って評価式が偽のときに do〜done の処理を行い,真であれば while文を脱する.

ここでは [ $HOGE -le 10 ],つまり「$HOGE が10以下である」という式を評価しているので,echo $HOGE を実行した後 HOGE=$(($HOGE + 1)),つまり $HOGE に1をプラスする,という処理を繰り返していくことになる.そうすると,10がechoされた後に $HOGE の値は11になるので,次の条件式評価時に [ $HOGE -le 10 ] を満たさなくなり,そこで while文を抜けることになる.実際に処理をさせてみると…

bash$ HOGE=1
bash$ while [ $HOGE -le 10 ]; do echo $HOGE; HOGE=$(($HOGE + 1)); done
1
2
3
4
5
6
7
8
9
10
bash$

期待通りの処理をしてくれた.

もちろん評価式にはコマンドを混ぜることも可能だし,複数の条件を設けることも可能だ.

while grep hoge hoge.txt && [ $HOGE -le 10 ] || [ "${FOO}" = "hage" ]
do
echo $HOGE
HOGE=$(($HOGE + 1))
done

ちなみに read コマンドを使うと while へのパイプなんかもスムーズに行える.

$ ls
bar baz boo foo hoge teehee

$ ls | while read file; do mv "${file}" "${file}.old"; done

$ ls
bar.old baz.old boo.old foo.old hoge.old teehee.old

これが何をしているかというと,ls の出力を read が1つずつ読み取って file という変数に代入して,do〜done 内の mv でそれぞれをリネームしている.

[ダメ] 今日の光学迷彩視認値

1.うおぉなんて意味ありげな.

今のところ目標まであと0.

[音楽][BGM] 今日のBGM

Keep It All Turning / Mind Odyssey
Primal Fear / Primal Fear


07/11/2003 mil [長年日記]

tDiary 260日目

[日記][小ネタ] ツキアイゲノム2(β版)

キャラミル研究所で新しいのが出てたのでやってみた.左の方の WILD,GENERAL,REALIST,SMART ってのがそれです.

「遠足で調子に乗って川に落ちたりするタイプです」
「基本的に『なんかえらそう』です」
現実主義者

うーむ当たってるなぁ.ただ,オモテの SMART ってのはどうなんだろ? ちょっとピンと来ないな.ハタから見るとそう見えるんかいな?

[ニュース][メモ] プライバシ・ポリシー記述言語「EPAL」

自然言語で記述したプライバシ・ポリシーを、コンピュータが理解可能な表現に変換するための言語であるという

ほえー.

[Gentoo] dist

distemergeは名前が分散系のツールを連想させるのがちとアレかな。

言われてみれば確かにそうかも….元が自分用使い捨てスクリプトなだけに何も考えずに名付けちゃった*1からなぁ….

何かいい名前ないかなー.

[日記][英語] Thinkings

I became aware of that my way of thinking is different when I read/write English and Japanese. I'm weak in English, but I can read/write English easily at long intervals.

Then, my way of thinking shifted the "English mode," I'm thinking in forms of S+V+(O,C,M,...).

[日記][ソフト] T-CODE

入れてみたが一瞬にして挫折.

[ダメ] 今日の注意報

1報.降水確率は…たくさん.

[音楽][BGM] 今日のBGM

4 / Fair Warning

*1 distributeな意味はないです.単なる語感で付けちゃったのがまずかったなぁ.

本日のツッコミ(全2件) [ツッコミを入れる]

iuchi [hogemerge:) ]

atzm [やっぱそれですかね.;-P ]


07/12/2003 げは [長年日記]

tDiary 261日目

[日記] げは

某後輩と某友人にそそのかされて,こないだのバイト料が「マリア様がみてる」新品全巻購入の餌食にされる.一緒に買った「暁!男塾」が泣くぜウグイス平安京?

読まないだろうなぁ….不幸なことに想像力が貧弱貧弱ゥ!だから字から場面を想像できないんだよねー.

[日記][ソフト] tDiary

リンク元置換リストをみんなが共有できたら楽なんじゃないかなー.tDiaryなサイト見てると,同じURLは大体同じ名前に置換してるみたいだし(当り前か).tdiary.netとかは本体に組み込まれてる(のかな?)からみんなが共有してることになるんだけど,そうでなくてネットワーク上で置換リスト同士をリンクしてさ,情報が信頼できるかどうかはトラストモデルとか何とか適当にやってさ,かぶったものは自分設定が優先されるようにマージしてさ….

なーんて妄想してたらもう5時じゃないか.寝よ寝よ.

[英語][日記] Nothing motivations

My concentration ran out. I can't bring myself to make a material of a next presentation. Umm...X-/

[Gentoo][Tips] まとめ

必要なことからどうでもいいことまで,Gentoo関連のちょっとしたことをまとめてみた.他なんかあったかなぁ.

[ニュース] マスコミが伝えない今年最悪の海難大惨事

スラドがこれを取り上げること自体がニュースだね.

[音楽][BGM] 今日のBGM

Clown in the Mirror, Moving Target, The Mission / Royal Hunt
Edge of Thorns, Handful of Rain, Streets a Rock Opera / Savatage

本日のツッコミ(全3件) [ツッコミを入れる]

usata [portage.py 読んだかぎりでは、unmask は /etc/portage/portage.unmask な..]

atzm [ご指摘ありがとうございます.勉強になります.m(_ _)m 僕もさっき読んでみたのですが,/usr でなくて /et..]

usata [あー、そっちは typo でした、すみません... ]


07/13/2003 [長年日記]

tDiary 262日目

[日記] ぶ

やっぱりさっぱりやる気が出ない.

そういや Bash サボりまくりだなぁ.むー.

[ニュース] 男の子は女の子の隣で勉強するのがベスト!

笑った.

女子生徒の勤勉な学習態度を手本にして授業に集中、学習成績を上げることが可能であることが分かり

女子生徒は勤勉なんだそうですよ.

from Graphic Wizards Lair

[ニュース] 安全日は存在しない

コメントがいい味出してるなぁ.

[小ネタ] 仮装大賞の名作

「ピンポン」はマジすごい.お子様の自慰的作品が横行する中,こういうのはホント感動もんですわ.

[ニュース][小ネタ] 原告・ウミガメ

こんなことできるんか….


07/14/2003 ひょ [長年日記]

tDiary 263日目

[日記] ひょ

更新が少なかったのは集中力が戻ったからでした.資料完成.あー疲れた.今回のは前回のよりよっぽどマシなもんができた.何かやたらスライド数多いし.

多ければ良いってもんでもないけどさ.

[小ネタ] まるで宝石のような泥だんご

コレほんとに泥だんごなのか…すごすぎる.

それにしても「日本泥だんご科学協会」なんてものがあるとは…世界はまだまだ広い.:-)

from ⊂ ななんち ⊃

[日記] めし

何かフラフラするなーと思ったら,よく考えたら昨日の昼から何も食ってなかった.24時間も食ってないのか,そりゃフラフラするわ.

[ニュース] 女子大生、“ケータイ”を学ぶ

なるほど,確かに今の時代ではあってもよさそうな講義だ.

[Gentoo][日記] info

ちょっと前からこれと同じエラーがたまに出るようになったんだけど,コレ一体なんなんだろ? 再現性が怪しいからよく分かんないんだよなー.つーわけで /usr/lib/portage/bin/emerge を読み漁る.

…なるほど,1522行目にコレについての記述がある.どうも

/usr/bin/install-info --dir-file="+inforoot+"/dir "+inforoot+"/"+x

の返り値があるとこのエラーメッセージを出すらしいな.inforoot ってのは環境変数 INFODIR と INFOPATH に書いてあるディレクトリで,xってのはそのディレクトリにある各infoファイルか.…うーん,だから何だと言うんだ?

いや,[1] を見てるってことはコマンドからのメッセージがあったら,ってことか.すると install-infoコマンドが何かのエラーを出したんだろうな.てことは,考えられるのはブロークンリンクがあったとかかな.でもそんなもんは見当たらないけどなー.はて?

…どひゃ,INFODIR に /usr/X11R6/info がセットされてるのにこんなディレクトリありゃしねえ.まさかコイツか.…てことで /etc/env.d/10xfree の INFODIR の部分を /usr/X11R6/info から /usr/X11R6/share/info に変えて env-update.あとはちょっと様子見といこう.

つーか /usr/portage/x11-base/xfree/files/4.3.0/10xfree のこの記述って間違ってるんじゃ…? 俺の環境がおかしいだけ?

[Gentoo][日記] 続info

あり… /usr/X11R6/share/info って /usr/share/info へのシンボリックリンクなんじゃん.なんじゃこれ.

いろいろ読み漁ってると portage.py の方に行ってしまった./var/cache/edb/mtimedb の読み方が分からん.なにこれ….

[Gentoo][Tips] PORTAGE_NICENESS

/usr/lib/portage/bin/emerge を読んでて分かったこと.PORTAGE_NICENESS っていう環境変数で emerge時の nice値を決めれるみたい.ここに追加しておいた.

あとsf.jpのtips集にもniceについての記述があったのを思い出したのでそこにも書いておいた.

しかし肝心なことが分からん.むー.

本日のツッコミ(全2件) [ツッコミを入れる]

なかの [初つっこみかも。よろしくお願いします。NICENESSは/etc/make.confでコメントになってますね。ちゃん..]

atzm [ありゃ,ホントですね…r1にも入ってました.make.confのmanページに書いてなかったのでてっきりテスト中とか..]


07/15/2003 [長年日記]

tDiary 264日目

[日記] ぼ

最近日記のタイトルがどんどん適当になっていく.全くやる気なし.

[Linux] kobject/sysfs(1)

むう.分かるような分からんような….

[Linux] 2.6.0-test1

早速試してみるも,nvidia のドライバが

2.6.x にゃ対応してねーんだよボケ!

と怒る.ソースを改造してコンパイルを強行してみようとしたけど結局断念.当然 XFree86 のドライバなら X を起こせるけど描画がアホみたいに重いのでヤメ.

おや

2.6.0-test1 が Portage に入ってるみたいだな.自前で持って来たソースをコンパイルしてブートしたら /etc/modules.autoload.d/kernel-2.4 が読まれてしまったんだけど,これは大丈夫かな?

おぉ

~x86 な nvidia-kernel がカーネル2.6に対応してた.すごいぞGentoo./etc/modules.autoload.d の問題も,このディレクトリに kernel-2.6 ってのを作ってやれば自動的に読み込んでくれるみたいだ.

ただ1つ気になるのは,df コマンドが妙な動作をするようになったことか.

$ df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/root 5.0G 3.8G 1.2G 76% /
/dev/hda3 31G 29G 2.5G 92% /usr
none 377M 0 377M 0% /dev/shm
df: `/usr/portage.local': 定義されたデータ型に対して値が大きすぎます

/usr/portage.local ってのはGentoo上で動作してるNFS上の野良ebuild置場なんだけど….ちゃんとマウントできてるのにおかしなメッセージを吐く.Debian上の他のNFSは大丈夫なのに.

うげ

2.5.7x と同じく,いきなり何の前ぶれもなく固まる現象発生.やっぱ 2.5.54 が一番安定してら.それとも設定が悪いのか? むむむ….

[Gentoo][日記] 昨日のinstall-info

--verboseを付けてるときにinfodirの再構築が始まってくれたのでエラーメッセージを拝むことができた.

install-info: メニュー項目 `Bash' は、`bash' に既に存在します

bashref.info.gz が bash.info.gz へのシンボリックリンクだったがために二度インストールされることになって,エラーを出すようになったのかな?

[Bash][Tips] for

while を終わったところでサボってた気がするのでお次は for.これがまたなかなかに便利で重宝する.これは例えば以下のような書式で書くことになる.

$ for hoge in *; do mv "${hoge}" "${hoge}.old"; done
for hoge in *
do
mv "${hoge}" "${hoge}.old"
done

まぁ例によって上の2つは全く同じ処理をするものなんだけど,さてこれが一体何をしているのかと言えば,答えは簡単.カレントディレクトリにある全てのファイルに .old という拡張子を付け足しているだけ.

for は,in の引数に与えられた文字列を空白を区切りとして1つずつ読み込み,for の直後の文字列の名前の変数に格納して do〜done を実行する.全ての文字列を処理し終わったら for文を抜けるという仕組みだ.

さてこれを利用してどんな便利なことができるのかというと,前も紹介したように

for dir in *
do
( cd "${dir}" 2> /dev/null && [ -e Makefile ] && make clean )
done

これでカレントディレクトリ以下の全てのディレクトリ上で make clean を実行することができる.

また,Bash における for のマイナーな使い方として,C言語などで使われる使い方と同じ使い方をすることもできる.

for ((i=1; i < 10; i++))
do
echo $i
done

このコードは望んだ通りの結果を返してくれるでしょう.:-)

[音楽][BGM] 今日のBGM

Wayfaring / Valiance
Wishmaster / Nightwish
10 Years In Rage, Beyond The Wall, Black In Mind / RAGE

本日のツッコミ(全9件) [ツッコミを入れる]

あああ [よくわからんな ]

あああ [よくわかんないよ ]

あああ [はてな? ]

あああ [教えてよ ]

あああ [無視? ]

あああ [ l、、_     _,/'}       |ヽ''~ ̄ ̄ ̄~`ヾ      /_,,,..   ..,,,_...]

あああ [桃 ]

あああ [厨房です。 ]

あああ [逝く? ]


07/16/2003 べほ [長年日記]

tDiary 265日目

[日記] さて

そろそろ社長用プレゼン資料を作り始めんとな.社長だからって別にリキ入れたりはしないけど,外部の人相手に不様なプレゼンはできん.

それはそうと,合宿のプレゼンどーしよかな.「研究と全く関係ない内容でも良いから面白いプレゼンをしろ」なんて言われてもなぁ….Portageについてでもやったろかい.なーんて,プレゼンできるほど詳しくないが.

[音楽][BGM] 今日のBGM

昨日から引続きRAGEメドレー.End Of All Days, Execution Guaranteed, Extended Power, Ghosts, In Vain Rage In Acoustic, Lingua Mortis, Live From The Vault, Perfect Man.


07/17/2003 [長年日記]

tDiary 266日目

[日記] む

腹減った….今日も24時間何も食ってないよ.

…そのうち17時間は寝てたけどな.

[日記][Gentoo] そういや

Zaurus に Gentoo 乗せた例ってあるのかな?

と思ったら外国ではたくさんあるみたいね.GWNにもあったし.

[Bash][Tips] オプション解析

ちょっとでも凝ったプログラムを書きたいと思ったとき,オプションによって動作を変えたい,なんて欲求が生まれるのは当然だ.そんなとき,Bash に組み込まれている getopts というものを使うと楽だ.例えば,-s,-v,-o というオプションを受け付けるようにしたい場合,

while getopts svo opt $@
do
case "${opt}" in
s) echo "-sがセットされてます";;
v) echo "-vがセットされてます";;
o) echo "-oがセットされてます";;
*) exit -1;;
esac
done

といったように場合分けすることができる.while getopts とすることで,コマンドラインからのオプションを一つずつ解析して,case でそれぞれに応じた処理をさせることができるというわけだ.

また,例えばここで -s に何らかの引数を持たせたい場合は以下にようにするといい.

while getopts s:vo opt $@
do
case "${opt}" in
s) echo "-sがセットされてます.引数は ${OPTARG}です.";;
v) echo "-vがセットされてます";;
o) echo "-oがセットされてます";;
*) exit -1;;
esac
done

getopts の引数が svo から s:vo に変わっていることに注目.コロンを付けると,そのオプションが何らかの引数を持つとすることができる.そして,その引数は ${OPTARG} に格納される.-s オプションを引数なしで指定するとエラー終了することになる.

[音楽][BGM] 今日のBGM

引続きRAGEメドレー.Reflections Of A Shadow,Refuge.


07/23/2003 [長年日記]

tDiary 272日目

[日記] む

何やら長いこと日記をお休みしてしまったようで.

しかし何日もネットを離れると遅れた情報を取り戻すだけで恐ろしく時間を使うな.はー疲れた.

[日記] HDD

やたら安くなってるので8MBキャッシュの120GBを大購入.一万円強.ふっふっふ,これでしばらくは容量不足に悩まされることもあるまい.

マウント先をどうしようか迷ったのでとりあえず120GBをそのまま /home に仕立てあげる.とりあえずはA研NFSのミラーリングでもしとくか.

喫茶

そういやこのHDDを買いに行ったとき,ついでにメイドだかコスプレだかの喫茶店に行こうと思ったんだけど(色んな意味でおもろそうなので一度行ってみたかった),どこにあるか分からんし探すのもめんどくさいし時間も遅かったのでやめた.

[小ネタ] 日本 歴史占い

豊臣秀吉らしい.当たってるような当たってないような…微妙.

from mputの日記.

[Gentoo][日記] ExtUtils-MakeMaker と Perl

~x86 な bianca が ExtUtils-MakeMaker と Perl でハマる.ExtUtils-MakeMaker-6.05-r6.ebuild は >=perl-5.8.0-r12 を DEPEND してるのに perl-5.8.0-r12.ebuild は !<dev-perl/ExtUtils-MakeMaker-6.05-r6 となってて,依存性が腐れてる.しょうがないから一時的に !<dev-perl/ExtUtils-MakeMaker-6.05-r6 をコメントアウトして emerge.さて大丈夫だろうか.

うーむ,Forum では ExtUtils-MakeMaker を一度 unmerge してから emerge し直せという解法が一般的のようだな.まぁいいや.

[音楽] 最近買ったCD

Genius Rock Opera / Daniele Liverani
なんかいろんな人達がボーカル参加.Lana Laneの名とジャケで買い.SavatageのChangesのようなものを想像してたら全然違った.プログレでメロディの理解不能さが良いけどちょっと荒削り感が否めない.最初は良かったが後半になってダレ気味.ボーカルに凝るのは良いけど,演奏の深みが足りない気がする.このダニエレ・リベラーニという人はイタリア人らしいが納得.Valianceに似てるわ.まぁ全体的にはマル.
Century Child / Nightwish
Nightwishらしさがよく出ててマル.前作Wishmasterと違ってスピーディな曲は少ないが突然男声ボーカルが入ったりして新鮮かも.

[映画] 最近観た映画

茄子 アンダルシアの夏 (劇場)
近頃のジブリ作品よりよっぽど面白い.…とは言っても方向性が少し違うので比較対象にならん気がするが.どっちかってーと紅の豚に近いかも.
千年女優 (Video)
かなり面白い.ばーさんの話が映画の中の話なのか現実の話なのかよく分からんで混乱するがどっちでも良いような気もする.なにか手塚治虫の火の鳥を思い出させる.ただ,ところどころつじつまが合わないところがある気がする.どこがって言われると困るけど,モヤモヤしたものが残るんだよなー.
猫の恩返し/ギブリーズepisode2 (Video)
ギブリーズは面白い.こういうの好き.猫の恩返しは猫好きでなければお世辞にもお勧めはできない….まぁ猫好きなら観て損はないかも.猫の描写がうまい.
ラヂオの時間 (Video)
二回目.やはり面白い.トラックの運ちゃんは良い.
GHOST IN THE SHELL 攻殻機動隊 (Video)
一度観た気もするしそうでない気もする….しかしやはり攻殻機動隊は面白い.

…4/5がアニメなのはこの際気にしないことにしよう.

[] 最近読んだ本

マリア様がみてる
小説というものを全く読まない人間なので,ただただ疲れた.これが初めてのライトノベルなわけですが,何か間違ってますかね.
マリア様がみてる 黄薔薇革命
1巻で慣れたのか,さくさく読めた.大体一冊2時間強.やっと人物が分かってきたせいかも知れない.とりあえず主人公の位置付けはロサ・キネンシス・アン・ブウトン・プティ・スール.本名は…ナントカ祐巳.苗字忘れた.この巻の主役はロサ・フェティダ・アン・ブウトン…多分支倉令…とロサ・フェティダ・アン・ブウトン・プティ・スール…あー本名忘れた.もうどうでもいいわ.

ところで,俺の机の上にマリみてタワーを作ったのはどなたなんでしょうか.

[Bash][Tips] キーボードショートカット?

結構知られていることだとは思うけど,Bash のプロンプトは Emacs ライクなキーバインドを受け付けるようになっている.つまり,例えば C-a で行頭に,C-e で行末にカーソルを移動,などだ.この他にも C-h を BS 代わりに,C-d を Del 代わりに使うなんてことは日常茶飯事だと思う.

よく使いそうなキーを羅列してみると,以下のような感じになると思う.

  • C-a … 行頭に移動
  • C-e … 行末に移動
  • C-k … 行末までを切り取り(キル)
  • C-u … 行頭までを切り取り
  • C-y … 張り付け(ヤンク)
  • C-l … 再描画
  • C-SPC … 始点のセット
  • C-w … 始点からカーソルまでを切り取り
  • C-j … 改行
  • C-h … バックスペース
  • C-d … デリート
  • C-f … カーソル前進
  • C-b … カーソル後退
  • C-n … ヒストリの次項
  • C-p … ヒストリの前項
  • C-r … 後方インクリメンタルサーチ
  • C-g … キャンセル
  • C-v … 次の入力をそのままの状態で入力できるようになる.タブなどを入力したい場合に有効
  • C-_ … アンドゥ

ちなみにこれとはあまり関係ないけど,誤って C-s でストップさせてしまったら C-q で回復できるということを知っておいて損はない.

更に,Ctrl+x だけでなく Meta-x のキーバインドにも対応している.

  • M-< … 一番古いヒストリ
  • M-> … 一番新しいヒストリ
  • M-u … 行末までの文字を大文字にする
  • M-l … 行末までの文字を小文字にする
  • M-c … カーソルのある場所の単語の最初だけ大文字にする
  • M-d … 単語の切り取り
  • M-\ … カーソルの周りの空白を全て除去
  • M-/ … ファイル名の補間(タブと同じ効果)
  • M-? … コマンドなどの補間候補を列挙する
  • M-* … コマンドなどの補間候補を全てコマンドラインに出す
  • M-~ … ユーザ名の補間
  • M-@ … ホスト名の補間
  • M-$ … 変数名の補間
  • M-{ … ファイル名補間.補間候補はブレイス展開を利用した形になる

などなど.これらを使いこなせば端末への入力作業の負担がガクンと減ることでしょう.

本日のツッコミ(全2件) [ツッコミを入れる]

へにょ [歴史占い……「光源氏」だそうで。マザコンだそうで。……とりあえず、泣いて良い?(w ]

atzm [育てゲーを素でやるしか! ]


07/24/2003 [長年日記]

tDiary 273日目

[日記] う

先生と話してたら,何気に自分かなり修羅場ってることに気づく.これから2〜3ヵ月くらい休みなんかないな….

つーわけで ToDo プラグインを使ってやるべきことを明確にしてみた.…ただしてみただけ.

[小ネタ] あなたのお値段鑑定します Ver.2

背景がブリリアントグリーンだったときにやった記憶があるな.さっきやってみたらこんなんだった.単なるバカじゃん(わら

しかし運が良いのと才能がないのは認めるけど,少なくとも境遇は良い方だと思ってるぞ.

from エロチック街道

[小ネタ][ソフト] DameWare

名前勝ちだね.;-)

まぁ中身は NT/2000/XP の管理ツールってことでマトモそうなんだけど.

from セキュリティホール memo

[メモ] Javaのフォント

PREFIX/sun-jdk-1.4.*/jre/lib/font.properties.ja の中身を自分環境用に書き換える.

デフォルトがwatanabe-minchoとかwadalab-gothicとかになってるんだけど,これebuild側でkochiあたりに変えた方が良いんじゃ?

[Linux][Tips] Linux Tips + Tricks

おほ,結構勉強になるな.知ってるようで知らないことって結構あるもんだ.

[小ネタ] マリみてお姉さま度チェック

例によって例のごとく例の後輩にやらされる.

atzmさまのお姉さま度は 405お姉さま  です

あなたは生まれながらのお姉さまでしょう。
そんなあなたはマリみてキャラでいうと『祥子』さまです。
気高く、美しいあなたですが、時折プライドが邪魔して素直になれなかったりするかわいい一面も持っています。
そのギャップが多くの妹達から人気のお姉さまです。

…「お姉さま」って単位だったんかい.


07/25/2003 [長年日記]

tDiary 274日目

[小ネタ] 読書占い

めろめろラブロマンス
いつもがんばる強いあなたは、乾いた木のようにあるところでポキリと折れる。傷ついた心はめろめろラブロマンスで心をいったん溶かして修復を。興味がなくてもしきたりや古来からの風習にはこだわって運勢向上。
全てにおいて「時代小説」が幸運をもたらす。「ノンフィクション」は凶。

…え?

from エロチック街道

[Gentoo][ソフト] Whitespace

絶対誰かアレゲな人がそのうちebuild作ってくれると思ってたのに誰も作んないのね.しょうがないから自分で作っちまったい.

[日記] 県大板

あるらしいということは知ってたけど,今日初めて見た.IPUrogueの話が少し出てて大笑い.どこで知ったんだそんなもん(わら

[日記] 疲れた

シャチョサン迎撃兵器の叩き台完成.あーめっちゃ肩凝ってら.いてー.

[ソフト] ninix-aya

そういやいつの間にか Ctrl を押しててもバルーンがマウスを取らなくなってる.ついでに,ワークスペースを切り替えてもバルーンが消えなくなった.バルーンをウィンドウとしなくなったのかな.わーい,これで emacs を使ってても邪魔にならない.

しかし不用意にワークスペースを切り替えると,バルーンは表示されてるのに肝心のゴーストがいない状態になるという罠.

[音楽][BGM] 今日のイチオシ

Hate Crew Deathroll より Track 9 - Hate Crew Deathroll / Children Of Bodom

Dream Theater の The Dance of Eternity 以来久しぶりに身震いする曲を聴いた….チルボドってボーカルこそデスだけど曲は完璧にメロスピだよなー.

[音楽] うは

これまでにMP3化した曲は1853曲で8.8GBにもなるのか.そのうち1387曲がHR/HMで6.6GB.どうも155枚ものCDをMP3化していたらしい.そのうち117枚がHR/HM.アーティスト数は68,そのうち52がHR/HM.いやー偏ってるなぁ.

一枚2000円と考えると2000×155で…31万!? 嘘だろ? …あーシングルも少し混じってるしレンタルもあるし人から借りたのもあるし中古も沢山あるからなぁ.

でも10万くらいは行くんだろうな…俺アホか?


07/26/2003 [長年日記]

tDiary 275日目

[日記] ぶ

また地震かよ,勘弁してくれ.また色々落ちたし.

サムネイルつきGoogle

うぉコレって結構便利なんじゃ.…ただし俺のようなアナログ56Kなナローバンド野郎にとっては迷惑以外の何者でもなかったりするが.

from The diary formerly known as Go ahead make my day.

[小ネタ] バーチャルな力持ち

あはははは,こりゃいいや.FireBirdでも問題なく動いたよ.

from エロチック街道

[メモ] Unofficial apt-line

便利なのでメモ.

[日記] オフー

何か 見慣れないURL からのアクセスがあったので行ってみたらまた 2ch かなこりゃ.しかしおもろいスレッドだ.ロマサガ万歳.

[日記] 風邪

しかし何なんだこの寒さは.フツーに風邪引いちまったよ.頭ぼーっとして作業にならん.今日は寝てよかな….

[日記][ソフト] POROLITH

頭ぼーっとしてしょうがないのでなぜか Xnp2 を起動して POROLITH で遊ぶ.どひー懐かし.しかしハイスコアを見てびっくり.名前欄に自分の名前が様付けで載ってたりIQ999とか書いてあったり.ガキかこいつは.いやガキだったんだけど.94年とか書いてあるし.

うわー恥ずかし.

[音楽] HR/HMこの曲を聴け!

ランキングの高い曲はやはり俺も好きなのが多い.さすがみんな分かってる! とりあえず上位5曲くらいは聴いて損なしでしょ.ていうか聴け.

ところで,筋肉少女帯ってプログレだったの?

[音楽][BGM] 今日のイチオシ

Hate Crew Deathroll より Track 11 - Somebody Put Something In My Drink / Children Of Bodom

歌えるデス.さんばでぃ♪ ぷっさむしん♪ さんばでぃぷっさむしんにまいどりん♪

誰かが俺の飲物の中に何かを入れた

バカっぽくてマル.

本日のツッコミ(全2件) [ツッコミを入れる]

O氏 [Children Of Bodom最高!!こんなメロディアスなバンド他にはない。 ]

atzm [チルボドはイントロが悩殺度高すぎっス.曲の構成もオイシすぎ.日本人泣かせのメロがもう! ]


07/28/2003 [長年日記]

tDiary 277日目

[日記] 寒

ここのところこの寒さのせいか風邪を引いたらしく調子激悪状態.昨日は一日中寝とりました.元々鼻炎持ちなので風邪引くと鼻水がそれはもう素晴らしいことになる.すると頭がぼーっとして何もできなくなるどころかもう起きてられなくなるので寝てるしかないのです.

あーしかし昨日寝てたおかげか,少しは良くなった.社長迎撃までに調子を取り戻さねば...

[ダメ] FSS

上映会ボッパツ.むぅ,読み返したくなるじゃないか.

[Gentoo][メモ] Gentoo Linux on win32

Cygwin に Portage を乗せるサイト.今度試してみよう.

[日記] う

全体的な調子はそこまで悪くないんだけど,何やら動悸がする…むむむ.

[音楽][BGM] 今日のイチオシ

Oceanborn より Track 7 - Moondance / Nightwish

HR/HM には珍しく短調でおもろい.確かにダンスって感じですな.これまたおもろい Track 8 - The Riddler の前座に良い.


07/29/2003 げふ [長年日記]

tDiary 278日目

[日記] げふ

療養&生活リズム矯正のため朝まで寝てるつもりだったのにやっぱり変な時間に起きちゃったよ.むむー.

[日記] ねむー

Javaで研究用のコード書いてたら何かあっさりできちゃって,先生に報告したら明日のプレゼンに組み込むことになってしまった.んがー,また資料作り直しか…ねみー,早く寝たい.

[Linux][ソフト] BASIC on Linux

あー,TAKOでも動かせってか?

[Gentoo] あくあ

usataさん作者さんに連絡を取ってあくあフォントを本家ツリーに登録して下さった模様.ライセンスの追加までしてある…素晴らしい.

ライセンスを眺めてて少し思ったのは,実際日本のWindows/DOS向け(?)から始まったフリーソフトは同じようなライセンスが適用されてる場合が多いから(例えばLHAとかね),どうにかまとめるような案があれば良いんじゃないかなーとか数分妄想.たとえば

(AT YOUR OWN RISK)
一時配布
    |
    + 二次配布の可否(条件)
    |
    + 使用料無料
    |     |
    |     + 商用の可否(条件)
    |
    + シェアウェア

とかいう形になってるのがほとんどだと思うんだけど*1,これをオブジェクト指向的に継承して,最終的なオブジェクトに細かな違いを付け加えると,あらびっくりライセンスの出来上がり.

…なーんてうまくはいかねーんだろーなー.

[Gentoo] GLIS - Gentoo Linux Install Script

おぉ,こんなのあったのか.知らんかった.

from ChangeLogの名を借りた日記

[Gentoo][メモ] GentooJP オススメ日本語デスクトップ環境 GLAD

use emacs で有無を言わさずnavi2chを入れる仕様にちょっと笑ってしまった.chroot環境でも作って試してみよかな.てことでメモ.

[日記][Linux][Tips] うぎゃ

面白いことになってますよウチのマシン.

$ ls /var/lib/init.d
deptree failed failed snapshot/ softlevel softscripts/ started/
deptree failed options/ snapshot/ softlevel softscripts/

XFSのテーブルが一部破壊されたくさい./var/lib/init.d が腐れたおかげでGentooシステム全体に影響が出とる.被害が拡大しないうちに重要なデータと設定ファイル群を退避してext3とか当たり触りのないファイルシステムに移行した方が良さそうだ.

くっそー,ルートが腐ると復旧しづれぇ./var パーティション分けときゃ良かった.

というわけで

ファイルシステムの移行完了.このマシンは

$ df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda2 5.0G 708M 4.0G 15% /
/dev/hda3 31G 13G 19G 41% /usr
/dev/hdc1 111G 40G 65G 39% /home

という構成なので,ルート直下にあるファイル群をいったんhomeに退避させることにする.その際,動作してるシステム上でコピーすると色々ヘンなことになりそうなのでブートCDを使用してHDDをマウントしてコピーする.

# mkdir gentoo
# mount -t xfs /dev/hda2 gentoo
# mount -t ext3 /dev/hdc1 gentoo/home
# mkdir gentoo/home/backup
# cp -rp gentoo/{bin,boot,dev,etc,lib,mnt,opt,proc,root,sbin,sys,tmp,usr} gentoo/home/backup

ここで,/varはおかしくなったものをコピーしないように注意しながら作業を行う.

# mkdir gentoo/home/backup/var
# cp -rp gentoo/var/{cache,db,empty,games,lock,log,mail,run,spool,state,tmp} gentoo/home/backup/var
# mkdir gentoo/home/backup/var/lib
# cp -rp gentoo/var/lib/{canna,iptables,misc,slocate,texmf,xdm,xkb} gentoo/home/backup/var/lib

おかしくなった var/lib/init.d をコピーしないのがミソ.

コピーが無事終了したら,ドライブを全てアンマウントして,念のためゼロクリアして*2からファイルシステムの再構築.

# umount gentoo/home
# umount gentoo
# cat /dev/zero > /dev/hda2
^C
# mkfs -j /dev/hda2

それが終わったらさっきバックアップしたファイルを元に戻す.

# mount -t ext3 /dev/hda2 gentoo
# mkdir gentoo/home
# mount -t ext3 /dev/hdc1 gentoo/home
# cp -rp gentoo/home/backup/* gentoo

あとはfstabを書き換えてからアンマウントしてリブートするだけ.

[Linux] ついでに

2.6.0-test2 を試す.~x86 で nvidia-kernel を emerge して,只今

$ uname -srv
Linux 2.6.0-test2 #1 SMP Tue Jul 29 06:32:21 JST 2003

という感じです.さて今回は何時間持つかな…test1は数十分で固まったからな.

*1 この図はめんどくさいので色々はしょってるけど

*2 パーティションのゼロクリアなんてできるんかいなと思ったけど,どうもちゃんとできるみたいですな.

本日のツッコミ(全2件) [ツッコミを入れる]

usata [ライセンスはどうしようか迷ったのですが(free-noncomm のままでもいいかなと)、作者の方に連絡してこうする..]

atzm [やっぱり作者の方の意向が最優先ですよね. ブラウザであくあフォント,和んで良いですよねー.:D ]


07/30/2003 おぉ [長年日記]

tDiary 279日目

[日記][Linux] 2.6.0-test2

おぉ,Firebirdコンパイルの高負荷にも耐えて約1日持ったぞ.素晴らしい.

$ uptime
08:32:04 up 21:20, 3 users, load average: 1.56, 1.90, 1.25

…って,何で1日程度で感動せにゃいかんのだ(わら

で,2.6.0-test2の感想.

  • 2.6.0-test1よりも断然安定している(.configは使い回したし)
  • 2.6.0-test1と同じく,nfsから変なメッセージが来る(これはサーバ側の問題かも)
  • どうも2.5よりパフォーマンスが悪い(2.4と似た感じにもたる)
  • USBのあたりが微妙(ジョイスティックが認識されない)

こんなもんかなぁ.

オブジェクト指向は難しい (Matzにっき)

うーん…オブジェクト指向を分かってる人から見れば「あー,そんな感じそんな感じ」って納得すると思うんだけど,オブジェクト指向でつまづいてる人がこれで分かるかなぁ….あと,

  • プログラミングもあまり得意じゃないしオブジェクト指向なんてさっぱり分からん
  • プログラミングはお手のものだけどオブジェクト指向はちょっと

の2通りの人がいると思うんだけど,この説明だと後者向けなのかな.

後輩とかにオブジェクト指向の概念説明をするとき,よく

クラスとオブジェクト
クラスってのは鯛焼きの「型」,オブジェクトってのは個々の鯛焼きだ!
クラスは THE であり,オブジェクトは A なのだ!
オブジェクトの生成とコンストラクタ
個々の鯛焼きには尻尾までアンコが入ってるものとそうでないものがある!
その差は,鯛焼きオブジェクトを作るときに屋台のおっちゃんがアンコをどこまで乗せるかにかかってる!
メソッド
個々の鯛焼きは毎日焼かれてると嫌になって逃げ出したくなる!
個々の鯛焼きの「逃げろ」メソッドを呼んで逃してやるんだ!

というような謎の説明をするんだけど,これはどっちかってーと前者向けなんだろうな.

…しかしこれだと鯛焼きが意志を持って活動してるように見えてしまうのでエージェント指向になってしまうやも知れん.teehee

んで

メリットとかいう話になると,俺的には設計のしやすさとかそういった方向に行ってしまう.

俺自身はGUIプログラミングをして分かったんだけど,

ウィンドウを出す関数を呼んで,○○ボタンがクリックされると××関数を呼んで…

なんて記述するよりも,

ウィンドウは一つのオブジェクトで,××メソッドに関連づけられた○○っていうボタンを持ってて…

っていう方がどう考えても自然.まぁここまでくるとイベントドリブンの考え方とか色々あるんだけどさ.

あとは,スーパークラスとか抽象クラスとかをちゃんと切り分けて設計してやると,自然と再利用性が高くなる.あるクラスをツリーのルートとすると,それを継承したクラスはそのツリーのリーフになる.リーフはいくらでも作れる.

お菓子 -+-- 和菓子
| |
| +-- 型焼き菓子
| | |
| | +-- 鯛焼き
| | |
| | +-- 大判焼き
| | |
| | +-- etc...
| |
| +-- etc...
|
+-- 洋菓子
| |
| +-- ケーキ
| |
| +-- etc...
|
+-- etc...

といったように,鯛焼きを定義したいときにお菓子,和菓子,型焼き菓子も設計して作ってやると,もし新たに大判焼きを作りたくなったときに型焼き菓子を継承してやるだけでよくなる.

って感じかなぁ.なんか説明があんまりよくないって言うか使い古された表現ばっかだけど.

本日のツッコミ(全2件) [ツッコミを入れる]

yosh [関数,サブルーチン,メソッドどれも同じような感じだけど プログラミング初心者にはどれから教えたらいいのだろう? JA..]

小暮真美子 [死にやがれバアア ]


07/31/2003 [長年日記]

tDiary 280日目

[日記] 暑

暑くて寝不足で機嫌が悪いです.ムッカー.

[日記] 寒

研究室内はクーラー効きすぎで寒い.ムッカー.

サブルーチンと関数とメソッド?

サブルーチンは概念的なもの,関数は手続き型言語のサブルーチンの実装,メソッドはOO言語の個々のクラスに割り当てられたサブルーチンの実装とか勝手に思ってたんだけど,色々考えてたら混乱してきた.

ちなみに概念上OOではサブルーチンに当たる部分を「振舞い」と言うし,サブルーチンなんて考え方はOOにはない気がする.手続き型言語では値が自分自身を操作するなんてことはなくて,あくまで外部の関数によって操作される.OOではオブジェクトが持つフィールドはオブジェクト自身が操作する(publicなフィールドは別).

初心者に教えるときは,どこから教えようとするかによると思う.概念からじっくり教えるなら手続きやOOの概念からの方が良いと思うし,手っ取り早く「これはこういうもんなんだからこうやっとけ」的に教えるなら,Javaだったらメソッドの要点だけを説明すれば良い気がするんだけど,いかがなもんだろう.

しかし僕はもともとプログラミングには疎い方なので参考にしない方が良いと思う….

つーか

OOと手続き型のそれぞれの用語をどうにか繋げようとすること自体がナンセンスだ.概念が違うんだから,概念から来る用語を繋げようとしても破綻するに決まってる.

本日のツッコミ(全2件) [ツッコミを入れる]

yosh [参考になります. 自分としては,関数やサブルーチンの考えがない奴にOOのメソッドの概念を教えるのは難しい,ってことを..]

atzm [概念だけなら関数の考えがなくても大丈夫だと思う.「人間クラスのyoshオブジェクトのツッコむメソッド」だから.;-)..]