アーカイブ:  « 2006年7月 | メイン | 2006年9月 »

2006年8月27日

成功への情熱―PASSION

成功への情熱―PASSION

京セラ会長の稲盛さんの著で、松下電器創業者の松下幸之助さんの影響を強く受けた本です。

なぜ会社は福利厚生や待遇を充実させるのか?
企業は最大利潤追求が目的でなければならないと考えていた僕は、この理由がよくわからなかったが、この本を読んでよくわかった。

経営者ならびに従業員は私利私欲のために仕事をしてはならないからだ。

私利私欲を持たないようにするには、現状に不満を持たないような心のゆとりが必要だ。心のゆとりを持つようにするためには、(他人を思いやれるような)人間らしく生きていくための最低限の待遇が必要だ。だから成熟した会社は従業員に多いくらいの福利厚生と待遇を与えているのだと。

仕事をするということはどういうことなのかを考えさせられる一冊です。

2006年8月25日

ブリッジ

ブリッジの内容が良く分からなかったが、

http://www.atmarkit.co.jp/icd/root/58/5787458.html

http://e-words.jp/w/E38396E383AAE38383E382B8.htmlを見てよく分かった。


データリンク層で、MACフレームを転送するかどうかを判断するディバイス、つまりスイッチングハブのことである。ただ、アクセスポイントのように無線LANと有線LANなどのように違う物理層を中継する装置もまたブリッジと解釈されるので、スイッチングハブはブリッジの仲間だが、ブリッジ=スイッチングハブというわけではない。

2006年8月22日

060の電話番号がすぐそこに

070はPHS、080と090は携帯電話。050はIP電話。
実はこれらは0A0電話と呼ばれていて、総務省の位置付けにおける従来の電話0AB~J(0からはじまってなぜかしらIをのぞく10桁で構成される普通の電話番号のこと)よりも品質が保証されていない(低い)電話ということになる。
※品質が保証されないというのは、常にノイズがのらないとか(通話品質と安定性)ということであって、電話できないとかということではない

ところでもうそろそろ060の電話番号の割り当てが始まる。
これは、固定電話と移動電話のいいとこどりの電話(FMC:Fixed Mobile Convergence)である。

ここで言う、固定電話というのは従来の固定電話のことではなくて、IP電話をさしていて、移動電話はPHSや携帯電話などの電話になる。(たとえば)PHSのような移動体端末を家の中に持ち込めば家の無線LANなどにつながって、IP電話として着信する。いったん家の外になれば、PHS網につながってPHSとして通信できるようになる。

電話をかける人は、IP電話にかけるとか、PHSにかけるとかを意識しなくて済むようになり、一方で電話を受ける人も家の電話を転送したりしなくても良くなって、家にいる時は同じ電話番号でありながら安い通話料で電話することができるようになる。

いつでもどこでもネットワークにつながっている「ユビキタス」社会がまた一歩近づいている。

2006年8月21日

S.M.A.R.T.

ハードディスクの自己診断装置。Self-Monitoring, Analysis and Reporting Technology Systemの略。

smartctlコマンドで取得でき、smartmontoolsパッケージに含まれている。

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/521smartinfo.html

RPMのダウンロード先:sourceforge.net

なお、kernel-utilsに含まれているので、kernel-utilsをインストールする手もある。

ルーティングテーブル

ルーティングテーブルの追加(192.168.1.0/29が192.168.0.3の先にある場合)

route -p add 192.168.1.0 mask 255.255.255.248 192.168.0.3

ルーティングテーブルの削除

route -p delete 192.168.1.0

WebサービスとSLA

・宅配物を紛失した時には損害賠償が上限があるものの決められている。
・購入した電化製品が1年以内に故障したら無償修理する。

このような品質保証をネットワーク業界ではSLA(Service Level Agreement:サービスレベル保証)と呼んでいるが、Webサービスを見てみると、免責条項はあるもののSLAに該当するような品質保証をしているケースはほとんど見受けられない。

Webサービスを行っている会社がSLAを締結できない理由は、
・Webサービスの多くは無償で提供されている
(今回の話題では、有償サービスを前提としているので、これは除いて考える)
・サービス提供元の会社の資本力が小さくて金銭的な補償を含めた保証ができない
・Webサービスの不具合はすぐに改善することができる(なので不完全なアプリケーションが出やすい)
・何かといえばβ版という言葉が流行している
・品質管理の認識が他業種に比べて低い
からだろうと思う。

SLAを締結することは、サービスを明確にすることになるわけなのだが、締結する会社はかなり厳しい条件になることは承知の上で締結することでそれをアピールポイント(差別化)に変えることができる。提供する価格が多少高くなろうとも、顧客の安心感を買うことができるので、結果的に顧客はおのずと集まる。

と考える。ハードウエアにおいては、稼働率の考え方が定着しているもののWebアプリケーションを含んだ全体的な稼働率という部分での定着はまだまだ薄いような気もする。

稼働率が出せなければ、1日間あたり何秒間システムが完全に稼動しなければ補償しますとか、レスポンスタイム何秒を超過したら補償します(これはネットワークという性質上難しいが・・・)といったようなことができないわけで、ここから始めることがSLA締結への取り組みの第一歩なのだろうと思う。

SLAが締結できないような会社は、おのずと仕事がなくなるといった感じの流れができてくるようであれば、Webアプリケーションもよりよい品質を保つことができるようになるのかもしれない。

とはいうものの、自分が開発を担当しているコンテンツでSLAを提供するなんて話になれば、間違いなく難しいか、会社がつぶれてしまう。

理想と現実はつねに乖離しているものなのですね。

2006年8月18日

Windowsデスクトップ

Windows XP Professional, Windows 2003 Serverにはリモートデスクトップ機能があり、他のEditionから制御できるようになる。



○設定の仕方(サーバー側)

コントロールパネルからシステムを選択して、リモートタブを選択して、リモートデスクトップに関するチェックを入れます。


○設定の仕方(クライアント側)
プログラム - アクセサリ - 通信 - リモートデスクトップ接続 を選択する。

VNC Viewerと違ってパスワードを保存することができて便利。

Windowsファイアウォールを制御する

TCP 9999番ポートを開く。(testはラベル)

netsh firewall set portopening TCP 9999 test

これができてしまうということは、悪意あるプログラムはバックドアを簡単に作ることができそう。

2006年8月14日

PHPでグラフ描画

PHPでグラフを描画するライブラリには、JpGraphという有名なライブラリがあるんだけれども、商用利用では有償なのでその他のライブラリについて。

PHPlot
snort+acidにも利用されているらしい。
http://tec-tech.org/phplot5/doc/index-j.php
最終リリースが2004年10月なので、もう枯れた感が否めないが、残念ながら日本語が利用できないみたいだ。

GraPHPite
会社の人に紹介してもらったライブラリ。
PEARに移行済みで、Image_Graphとしてリリース(Ver.0.72 - α版)されている。こちらにサンプルとともにPHPコードがあるので、容易にグラフを作成することが出来る。

2006年8月13日

Windowsで優先度を変更する方法

Windowsで優先度を変更する場合には、Ctrl+Alt+Deleteプロセス一覧を表示させて、該当のプロセスを右クリックして、優先度を変更できる。(Linuxのreniceコマンドに相当)

起動時にも優先度を指定する(Linuxのniceコマンドに相当)ことができる。

cmd /c start /[low|belownormal|normal|abovenormal|high|realtime] (コマンド名)

で指定すればよい。

スロースタートアルゴリズム

いくら100Mbpsでイーサーネット接続できていたとしても、途中経路に低速な回線や処理能力の低いルータがあれば、100Mbpsで通信することはできず、輻輳(ふくそう:通信上限に達する)が発生する。
これを防ぐために、徐々に通信量を増やして最適になるように調整するアルゴリズムがスロースタートアルゴリズムである。

(訂正のお知らせ)
kausさんのご指摘により、掲載内容が誤っていたことが判明したため以下の内容を削除しました。
”なぜpingの最初の応答が遅いのかずっと不思議でならなかったが、TCP/IPではフロー制御としてスロースタートアルゴリズムを使用しているため、この原因を説明できる。”

フィッシングとファーミング

フィッシングとファーミングの違いは以下の通り

フィッシング
何らかの方法(URL偽装)などを利用して正規のサイトとそっくりの偽サイトに誘導し、実際にログインさせることでログイン情報などを取得する。URLを注意深くチェックすればフィッシングサイトに引っかかることは少ないが、Basic認証対応のURLの場合、ライトユーザーにはチェックが難しい。このURLでアクセスできなくなっているブラウザも存在する。

Basic認証対応のURLパターン:http://(ユーザー名):(パスワード)@(ドメイン名)/
http://www.yahoo.co:jp@hogehoge.com/
というサイトがYahooのサイトと認識されても不思議はない??(でも実際のところ無理がありそうな。。。)


ファーミング
DNSの解決の仕組みを悪用して、ホスト名の解決を正規のIPアドレスではなく、悪意あるホストのIPアドレスを返答させる。これを実現するには、DNSサーバーのキャッシュ情報を書き換える(DNSポイズニング)か、hostsファイルをウィルスなどによって書き換える。

この方法が成功すれば、ユーザーが良く訪れる信用あるURLが実は詐称サイトということになる。

この検出はかなり難しい。正しいhostsファイルのMD5を保存しておいて、それが変わった時点でhostsファイルを信頼しないしかない。あとは信頼あるDNSサーバーを登録するとか。。。もはやDNSサーバーが信頼できないなんて、ありえない事態だ。

2006年8月 9日

Dell Remote Access Controller

DELL製品のリモート管理ソリューションです。これを利用することで、リモートから電源のON/OFFをすることができ、高負荷によってリセットできないといった問題から開放される便利なツール。しかし、ラックマウントサーバー Power Edge850(1U)においてRAIDカードをさしてしまうと利用できない(この問題はPower Edge860より解消されている)。DRACという略称が良く使われているらしい。
http://www1.jp.dell.com/content/learnmore/learnmore.aspx?c=jp&l=jp&s=pad&~id=pedge_remote&~line=enterprise&~mode=popup&~series=tower_servers

2006年8月 4日

二重起動防止

Windowsで二重起動を防止させるためには、Mutexインスタンスを生成した際にエラーが出るかどうかで判断できる。
Linuxではその方法がよく分からないので、プロセス管理から見た形で実装をした例がの通り。
<?php
//プロセスコントロールクラス
define('PROC_ONLY', 1); //プログラムベースで比較
define('CONTAIN_ARG', 2); //引数が完全一致するかで比較
class ProcControl{
 //二重起動を防止するためのプログラム
 function isCurProcRuning($check_mode = PROC_ONLY){
  global $argv;
  if ($check_mode == PROC_ONLY){
   $target = $argv[0];
  } else {
   $target = '"' . implode(' ', $argv) . '"';
  }
  $handle = popen("ps -ef | grep -w $target | grep -cv grep", 'r');
  $read = fread($handle, 2096);
  pclose($handle);
  return $read > 1;
 }
}

//プロセスの2重起動を防止を判定
if (ProcControl::isCurProcRuning(CONTAIN_ARG)) die("process already exist\n");
?>