January 2006アーカイブ

Yahoo!の裏側?

| コメント(0) | このエントリーを含むはてなブックマーク

いずれもオレンジニュースさん経由の情報です。

Yahoo!版Apacheについて解説したプレゼンテーション「Hacking Apache HTTP Server at Yahoo!」 via オレンジニュース

Yahoo!でのPHPを利用した開発環境について説明したプレゼンテーション「PHP at Yahoo!」(PDF) via オレンジニュース

いずれも米Yahoo!のMichael J.Rdwinさんのドキュメントです。yapacheということでYahoo!は独自にカスタマイズしたApacheを使っているわけですね。そりゃそうだって気もするのですが、あのYahoo!もApacheかと思うと、Apacheスゴスって思ったりもして。

最近はこのような情報を積極的に公開してくれる企業が多く嬉しいですね。

って、よく言われます。
バグがあったときに、そのバグについて説明しようとすると、デベロッパの視点からするとバグが発生しているステートメントを指したくなるので、つい「ループカウンタのインクリメントが正しくない条件があった」とか言ってしまうのですが、それでは「ユーザ見えはどうなのよ?」ってことを考えると、回答が変わります。「100件登録までしか登録できないのに101件目を登録することができる」というような回答になります。そのプログラムへの接し方が異なるのだから視点が変わるのは当然です。言い方も変わります。伝わり方も変わります。

ここでの肝はステークホルダを意識することです。デベロッパ同士では、「いや~変数の初期化を忘れた。www」で話が済むのですが、この話はプロジェクトマネージャには伝わるでしょうか?プロジェクトマネージャは要件を満たしていることの方が重要なので、変数とか細かいことはどちらでも良くて、むしろ影響度や修正に関する作業量の方が気になります。
なので、プロジェクトマネージャには「バグの発生条件はmmフィールドにnnという値が入る場合のみで、nnという値が選択されることは現時点ではありませんので、当面の影響はありません。しかし将来を考えてyy月dd日までに修正します。」とか言ってみるとプロジェクトマネージャは安心二重丸だったりします。エンドユーザ向けにも似たように説明することで安心感が生まれます。

ここでの例はプログラムに接する面が異なるために視点が変わっているわけですが、プログラムに限らず、全ての物事にいえることですね。
複数の人が関わり、さらにその先の人々が関わり、誰が何を求めているかを考えて、その人たちに合った回答を用意すること。それがステークホルダを意識することだと思います。

で、このエントリについて「ユーザ見えはどうなのよ?」
# いまひとつ説得力のないエントリだな。。。

前にエントリしたso-netミニホームページが2006/04/28に終了するそうです。


ソニーコミュニケーションネットワークは1月23日、SNS(ソーシャルネットワーキングサービス)に似た機能を備えた統合型コミュニケーションサイト「So-net ミニホームページサービス」を4月28日に終了すると発表した。
ITmediaニュース:So-net「ミニホームぺージ」が1年半で終了

so-net会員向けにしてしまうとなかなかmixiのようにはいかなかったのでしょうかね。1年半とは早い終焉でした。

同社は同サイトで得たノウハウを生かし、「SNS機能を含めたコミュニケーションサービス」を今春に公開するという
ということで今度は「Web2.0サロン」(web.two.o.salon)だそうです。(via ITmediaニュース:So-net「Web2.0サロン」公開 ブログの“キーワード地図”も)

大丈夫?buzzword使っちゃって大丈夫?(w

Blog Keyword Visualizerというソフトを利用してブログのキーワードをマップ化するということですが、確かにこれからの時代は情報配信や情報利用にRSSは不可欠だと思います。でもリンクをグラフで可視化することを多くのユーザが求める部分ではないような気がします。マーケットを知るために活用できると思いますが、


Blog Keyword Visualizerは、RSSで収集した国内主要ブログサービスの記事を独自システムで解析し、
ITmediaニュース:So-net「Web2.0サロン」公開 ブログの“キーワード地図”も)

とありますので、バイアスを考慮すると、参考材料にはなるものの決定的な材料にはなりにくいですね。できれば、取得先のpingサーバのURLとかユーザが独自にpingサーバを選択できるとか、そういう情報提供元の開示または選択が可能になると、ユーザにとってはベターなのかなぁと思います。でも一般のユーザの方はpingサーバとか意識しないので、そういう発想はデベロッパだけか(w
アーリーアダプタを獲得することを目的とするならDeveloper Orientedで考えるのもアリですよね。

みなさん、forステートメントの処理順序って理解されていますか?
例えばC言語を例に採ります。

for ( 式1; 式2; 式3 ) {
    処理1
}

最初に式1が評価されます。主に、int i = 0;といったループに利用される変数の初期化処理を行いますね。

次に式2が評価されます。式2は、i < 10; といったループを実行するかどうかを判定するための条件式が入りますね。
そして式2が真(TRUE、つまり0以上)ならば処理1が実行されますし、
式2が偽(FALSE、つまり0)ならばこのforステートメントは抜けます。

これで1回目のループ処理は終わります。

さて、お次は2回目のループに入ります。
私は、1回目の処理1が実行された後の動きは次のようになると思っていました。

1回目の処理が終わった後、式2が評価されて、式2が真ならば処理1が実行され、式2が偽ならばこのforステートメントは抜ける。つまり、forステートメントは次のように処理される。式1→式2→処理1→式2→式3→処理1→式2・・・

しかしこれは誤りのようです。

microsoftのC の for ステートメントにはforステートメントを

for ( init-expression ; cond-expression ; loop-expression ) statement
と定義した後に次のように記載されています。
cond-expression が真 (0 以外) のときは、statement が実行されます。oop-expression を指定しているときは、次にそれが評価されます。loop-expression はそれぞれのくり返しを実行する前に評価されます。この式には型の制限がありません。loop-expression は、副作用も順番に処理されます。処理が終わったら、ステップ 2 に戻ります。

またC#については、C#の言語仕様 for ステートメントに記載されています。同様に、

for ( for-initializer ; for-condition ; for-iterator ) embedded-statement
と定義した後に次のように記載されています。
for-condition が存在しない場合、またはその評価が true の場合、制御は埋め込みステートメントに移ります。制御が埋め込みステートメントの終了点に到達すると (通常は continue ステートメントの実行から)、for-iterator 式がある場合は順に評価され、上のステップの for-condition の評価から次の反復が実行されます。

なのでC言語系(C、C++、C#)については次のように処理されると思われます。

1回目の処理が終わった後、式3が評価されて、式2が真ならば処理1が実行され、式2が偽ならばこのforステートメントは抜ける。つまり、forステートメントは次のように処理される。式1→式2→処理1→式3→式2→処理1→式3→式2→処理1→式3・・・

ウェブ上にあるループ処理をいくつか漁ってみましたが、この手の記述にはたどり着けなかったです。もしかして私は間違っていますかね??もし間違っているようでしたらご指摘頂けると幸いに存じます。


追記
今日はこれで痛い目に遭いました。


1: CList cList;
2: for (POSITION pos = cList.GetHeadPosition(); pos != NULL; cList.GetNext(pos))
3: {
4: DWORD dwVal = cList.GetAt(pos);
5: if (dwVal == 1) {
6: cList.RemoveAt(pos);
7: pos = cList.GetHeadPosition();
8: }
9:}

としていたら、7行目でposがNULLとなってしまい、2行目のGetNext()でGPFですわ。
2行目のpos != NULLでガードできていると思ったのに・・・。

はてなダイアリー TIIDA BLOG - Type Hatenaで面白いことやっています。
2006年1月16日(月)から1月22日(日)の期間限定ですが、はてなのいくつかのサイトでゲームができます。詳細はこちらで。

prototype.jsを利用してjavascriptで実装されたゲームです。ゲーム自体は単純なのですが、ついやってみたくなるので、広告として非常に機能していると思います。単なる画像やテキストやFlashだけではなく、新たな可能性があると思いました。

技術を単に紹介するだけではなく、実践し、かつそれがビジネスとして有用であるという点において、とても優れたアイデアですね。これから他社も真似してくるのではないでしょうか?


付属のイヤホン

| コメント(0) | このエントリーを含むはてなブックマーク

何気にiPodの付属のイヤホンが好きです。市販のイヤホンに比べて、中音~低音域がやや強めなのでライブ感を得られますね。イコライザーで音質を変えるのもありですが、私は今のところはイコライザーOFFでデフォルトのイヤホンです!


Apple iPod 30GB ホワイト [MA002J/A]
アップルコンピュータ (2005/10/20)


ありがと!

| コメント(0) | このエントリーを含むはてなブックマーク

妻と子供たちから一足早く私への誕生日プレゼントということでiPodを頂きました。いつも帰宅が遅くて、寂しい思いをさせてしまっていることが多いのに、こんな私にプレゼントしてくれるなんて、とても嬉しいです。

iPodはいわゆる第5世代(5G)のiPodで、動画再生が可能です。自宅の回線がダイアルアップなので、当面はCDを入れておく感じですが、そのうち光ファイバにする予定なので、そうなればPodcastコンテンツを放り込みたいと思います。特にビデオPodcastなど面白いコンテンツをGoogle Videoなどを利用してゲットできたら楽しんでしょうね。。。

自己の充実を追及しすぎて家族をほったらかしにしないように、適度に遊んでみたいと思います。そうしなければならないですよね?!

Apple iPod 30GB ホワイト [MA002J/A]
アップルコンピュータ (2005/10/20)
おすすめ度の平均: 4.21
4 ビデオ早送り方法
4 ビデオはおまけ
4 iPodでも、PSPでも再生できる映像ファイルが便利

CMMI Version 1.2 登場

| コメント(0) | このエントリーを含むはてなブックマーク

久しぶりにSEIのサイトを訪ねてみましたら、Sunsetting Version 1.1 of the CMMI® Product Suiteという記事がありました。

Version 1.2 of the CMMI Product Suite is planned for release in August of 2006
とありますように今年の8月にVer. 1.2がリリースされるようです。 そして、
The sunsetting period for CMMI Version 1.1 will commence when V1.2 is released.
ということで、Ver. 1.2リリースをもって、Ver. 1.1は終わりとなるようです。Ver. 1.1に関連するもの達も2006年末や2007年末を目途に終了ということですね。気が付けば結構進化していたのですね。

Model improvementsの中に

incorporating a model architecture that accommodates the expansion of best practices into new areas (e.g., services, acquisition)
とありますが、サービスという部分がとても気になります。CMMIも色々と吸収しすぎてデカくなってしまっていますが、さらに新たなドメインが加わるのは興味深いです。

それからVer. 1.2が出ることもありますし、今年は時折CMMIについて触れていこうと思います。CMMIのレベル認定がどうとかいうことよりも、「ベストプラクティスとしてこういうものが定義されているよ」ということを知ることが重要で、それをフィードバックするかどうか取捨選択すれば良いと思います。バッドノウハウとベストプラクティスの組み合わせに勝るものはないと思いますし、先人のお知恵をお借りして前進することが次世代への伝承につながることでしょう。

2005年に読んだ本だけど、なかなか面白かったのでご紹介します。

ハーバード流交渉術というタイトルですが、簡単に説明しますと、交渉するに当たってどうすると両者円満な解を見出せるかオススメの方法を伝授します、という内容です。肝は利害を一致させるということです。

本論の結びで著者も言っているのですが、読んでいて「そうなんだよなぁ」と当たり前感が漂います。なので、読まなくても良い人もいる大勢いるのではないでしょうか。しかし当たり前な感じがするからこそ、本書を読むことで確信が持てるようになるのも事実です。

本書は教科書的な本なので、記載されている技には、原則立案型交渉とか立場型交渉とか名前がついています。名前があると他の人に伝授しやすいので、意思疎通が図れます。例えば、デザインパターンはその一例ですし、AjaxがブームとなったのもAjaxという名前があったからこそでしょうし、高橋メソッドがメジャーになったのも技法が優れていることに加えて名前が記憶に残ったからだと思います。名前をつけるって大切ですね。

ステークホルダ(利害関係者)が誰かを理解してステークホルダの満足を追及することは、知識労働者として重要なことですよね。やっぱり交渉のポイントはそこですよね。さすが学習書です。勉強になりました。星3つです。★★★☆☆

そういえば、利害に焦点を合わせることに関しては、先日自社の社員にもプレゼンしました。ステークホルダを意識すること、円満なプロジェクト遂行はそれに尽きます。One for All, All for One.(スクールウォーズかよ!)


ハーバード流交渉術
ハーバード流交渉術
posted with amazlet on 06.01.07
ロジャー フィッシャー ブルース パットン ウィリアム ユーリー Roger Fisher Bruce Patton William Ury 金山 宣夫 浅井 和子
ティビーエスブリタニカ (1998/03)
売り上げランキング: 53,559
おすすめ度の平均: 4.53
4 タイトル三流,内容一流
4 究極の交渉術
5 何度も読み返す価値が有る本

遅くなりましたが本年も宜しくお願いします。

当ブログを開設して1年が経過しました。開設当初はたくさんエントリしたのですが、2005年4月より急激にエントリ数が減りました。私が現在勤めている会社はソフトウェア開発サービス業ということで、お客様先へ常駐してソフトウェア開発をお客様とともに行っています。丁度、2005年4月より新しいお客様先へ常駐したのですが、とても忙しくてエントリすることが困難な状態が続いていました。今年は最低でも週3エントリで行きたいと思います。(52週×3エントリ=156エントリ。少な!)

2005年を少し振り返りますと、やはり多忙なことばかりが頭を過ぎります。数年ぶりに徹夜しました。そんなこんなでしたが、得たものもありました。例えば、秘密のレジストリキーによるログ出力設定だったり、自分の非ではないことを証明するためにログはAPIコールで細かく刻めとか、排他制御でWaitForSingleObject()は同じスレッドで呼び出すとウエイトしないとか、結構コーディングレベルの収穫が多かったです。
会社の中ではそれなりのポジションに立つこととなり、企業運営に関われるようになったことは大きいです。私はできることなら意思決定の最終判断を出す立場にいたいと思っていますので、ちょっとした上方移動でした。

また私の尊敬する経済学者のドラッカーさんが亡くなったことは2005年のビッグニュースのひとつでした。とてもショックでしたが、私も彼のように95歳まで現役で生き続けたいと思ったわけでした。

それからcomewalk.comのドメインを取りました。あちこちでcomewalkという名前で出没していたのでドメインを取りたかったのですが、やっと取れました。

そんな2005年も過ぎ、今は2006年です。昨年は「絶対やってやろう!」と誓ったことの1%も実行できませんでした。私は1月23日で32歳を迎えます。情けない!32歳にもなって1%も実行できていないなんて情けない!なので、今年は色々と行動してみたいと思います。32歳で落ち着くつもりは全くありません。これからです。95歳まで生きるのだから、まだ1/3しか経過していません。まず今年のビッグイベントはSixApart入りたい!から行きます。(w

今年もやりたいことの何%が実施できるのかは定かではありませんが、目的を持っていることが重要で、目的さえあれば行動も伴ってくるものです。(慰め) 1年後に満足感が得られているよう、頑張りたいと思います。

本年も宜しくお願い致します。