2006/06/27
■ プログラムの書き方
最近多分野の方と共同でプログラムを書いているのですが,ひとのプログラムというのはなかなかむつかしいですね.
部分的なコードをみて「こうした方が良いかな」と思って編集しても,他の関数,ルーチン,外部変数との依存関係を解決できずにプログラムがまともに動かないことが多々あります.
結局臭いものには蓋をするじゃないけど,上位の関数などでラッピングして処理しています...
このあたりの話は昔何かの資格の勉強で読んだ記憶がありますが,いまさらながら結構重要な話だと認識しました.もともと人間は情報をまとめるのが苦手なので,関数のまとめ方,機能のまとめ方なんかはコツというかセンスみたいなものが出る話ですね.
下記は資格の本からの内容です.うるおぼえだけど,なつかしい...
モジュール強度(高い順)
機能的強度: 1つの固有な機能のみを持つモジュール.モジュール内のすべての要素がその機能に関連しているモジュール.
情報的強度: 同じ構造のデータを扱う複数機能を持ったモジュール.
連絡的強度: ある機能の結果が次の機能の入力になるなど,手順的強度に加えデータの関連のあるモジュール.
手順的強度: バッチ処理のように複数の機能を逐次実行するが,各機能間の関連性は弱いモジュール.
時間的強度: 初期設定などの特定のタイミングで実行されるがほかの機能に関して弱い関連性しかもたないモジュール.
論理的強度: 関連する複数の機能をまとめて作ったモジュールで,一つのインターフェースで複数の機能を実現するモジュール.
暗号的強度: 単純にいくつかの関数に分割した場合など,関数の機能を明確に出来ないモジュール.
モジュール結合度(低い順)
データ結合: モジュールで必要なデータのみを引数とする結合.独立性が高く,再利用が容易.
スタンプ結合: パブリック変数でない同じデータ構造を引数として共有する結合.ただし,直接必要としないデータ(関連するほかのモジュールで利用するデータ)を含む.
制御結合: モジュールの動作を決定する情報を引数で渡す結合.引き数により制御されるためモジュール間の関連性が高い.
外部結合: パブリック変数を使用し,モジュール間でデータを共有する場合.パブリック変数をどう使用しているか分かりづらく,再利用しにくい.
共通結合: 共通のメモリ領域を共有するような場合.
内容結合: ほかのモジュールの内容を直接参照する場合やモジュールの一部を共有する場合.
2006/06/26
■ 秋山仁の全脳JINJIN
脳を使っている系のゲームが流行っていますが,ついにこの手のネタでは古株の秋山仁先生の名前のゲームが出るようです.
ゲーム紹介のページを見ると,それほど凝った問題がないように感じます...
秋山仁というと,どうしたら良い彼女を見つけられるナンパ問題,エイズ問題,可視性を問題にした美術館の監視カメラの問題などの面白い問題を紹介しているのを本で読んだ記憶がありますが,今回のゲームの紹介にはそれらしいのはない感じがしました.
実は私は秋山仁のファンで講演を聞きにいってサインを書いてもらったことがあります(いまでも大事に飾ってあります).
2006/06/22
2006/06/20
■ アドウェイズが上場
今日はメディアフラッツの中村君とデータベースの専門家の某先生と食事をしました.
ライバル会社?のアドウェイズが上場しましたという話から今後のモバイルアフィリエイトの話とか色々な話をしました.
前々から疑問に思っていたのですが,いまはコンテンツを作っているひとよりもアフィリエイト ASP や検索エンジンなどが儲かる仕組みになっていますよね.これって良いところ取りすぎませんか?と聞いたら,
仕方ないんじゃないですか
とバッサリ.広告代理店の帳本人に聞いてもダメだったかな(負け組の発想).
アフィリエイト ASP や検索エンジンを頼らずにユーザが生活できないとこの構造は変わらないかな.
2006/06/07
■ Outbound Port 25 Block
家のプロバイダで導入することになったらしい.ISP のメールサーバを経由するのにも Submission Port を使うようにしないといけない.参考になりそうなのは下記かな.
2006/06/03
■ HDD が壊れた
自宅のメインで使っているマシンのハードディスクが壊れました.
度々ディスク関係のエラーメッセージが出ていたのですが放置していたら 3 ヶ月くらいでついにハングアップ,起動しなくなりました...
# 出ていたエラー /kernel: ad0s1f reading fsbn 52616016 (ad0s1 bn 52616016; cn 3481 tn 52 sn 20) status=59 error=40
single user mode で mount -f して,ファイルを rsync でバックアップ.その後ディスク交換して,環境を整えました...
ディスクから読めないファイル名は tar cf /dev/null / などとするとエラーメッセージで出てきますが,どうやら ~/Mail/ 以下のファイルがかなり失われた様子でした.
もうどうせ読まないであろう ML のファイルなどはざっくり消して,キレイなメールボックスでやりなおすことにしました.