月曜日, 3月 10, 2008

【EC開発体験記-人財-】あなたはSuperになるべきだ このエントリーを含むはてなブックマーク

 何をやるにしても一番重要なのは「人」だ。どれだけ優秀な人材がいるかによってプロジェクトの成否が決まる。優秀な技術者がキーマンでいればプロジェクトは成功し、いなければ失敗する。IT業界で開発プロジェクトを経験した人は皆同じことを感じているだろう。成功したプロジェクトには、必ずといっていいほど天才的なプログラマーがいて、その人がキーマンとなって開発をすすめている場合が多い。そこそこ大きなプロジェクトでも、全体の80%~90%を数人だけで担当していることもめずらしくない。これはいつの時代でもそんな感じのようである。とにかくすばらしい人材の有無によってプロジェクトの命運が分かれることは間違いない。今回のプロジェクトでは、特に優秀な人材をどれだけ集められるかということに、かなりの神経を使った。しかしこれはとても大変なことだった。優秀な人材はまずいないし、いても非常に忙しくて、とても参加できそうにない。また、IT業界では非常に好景気で、猫の手を借りようと思っても、猫すらいない状態で、普通の人材すら見つけるのは困難だった。
 このような背景があったので、今回のプロジェクトでは、できるだけ社内の人材を活用すること、また、負荷をかけてしまうことになるが、これまで開発に携わっていただいた優秀な技術者を中心にせざるを得なかった。これにはかなりリスクを伴うが、うまくいけば開発工数を抑えることができる。優秀な開発者には2倍お支払いしたとしても、それ以上のOutputを期待できる。力仕事は社内の人材を使い、PMは私自身が担当する。それが最も効率的に思えた。なので、本来であれば大手ベンダーにお願いするSI案件であるものを、社内プロジェクトの体制で臨んだのである。社内プロジェクトでは、責任の所在が曖昧なので、万一完成しなかった場合のリスクが大きい。というか、できなかった責任はベンダーではなく間違いなく自社ということになるだろう。しかしよくよく考えてみると、プロジェクトが失敗してしまった場合には、たとえIBMであったとしても責任とって何かしてくれるわけではない。(大手ベンダーに請負ってもらう方は、それが現実だと肝に銘じておいたほうがよい)
 私は開発のイメージをもっていた。それは、IBM時代のPM経験というより、XMLコンソーシアムにおけるイメージの方が近い。XMLコンソーシアムの各社の代表は、成果物の責任をともなうような契約があるわけでもないのだが、皆が一つの目標に向かってまっしぐらに開発をすすめ、苦労を重ねながらでも最後はいいものを作りあげる。これは参加したものしか分からないのかもしれないが、とても独特で不思議な開発手法だ。私はXMLコンソーシアム iPlatの開発をイメージしながら今回のプロジェクトに臨むことにした。ただし、この方法でやるためには次のような社内外の担当者の意識改革が必要だと思った。
  1. 社内の担当者は、責任をもって要求仕様の作成とOutputの検証を行う
  2. 協力会社の開発者は、すばらしいシステムを作るという情熱・信念をもち、常に善意に基づいて判断する
 まずオペレータ、運用責任者等、社内担当者は自分たちも開発に参加するという意識をもってもらい、開発の主体となるように仕向けた。よくあることだが、発注者が特権的な意識があるような錯覚をしている。お金を払っているのだから何でも発注者のいうことを聞くべきというのが理屈なのだが、これをやってしまうと優秀な技術者ほど芳しくない結果を生む。もう少し補足すると、自分のいうことを忠実にやれ、ということは要するに、少なくとも優秀な開発者以上に自分が優秀でないと結果は出せない。ざっと見渡したところ、社内の人材で開発者より優秀な者はあまりいなかった。社内の人は逆に開発者を信頼して謙虚に接する必要があると思った。また、請負業者に対して厳しく接しないと損という人もいるが、人心の妙で結果的に発注者が損をすることになる。少なくとも、発注者と請負業者という変な上下意識はやめてもらいたかったが、これまで植えつけられた意識はそう簡単には変わる様子がなかったので、無理難題・無責任な要求仕様があった場合には、思い切って開発者の判断において優先順位を下げることを容認した。社内担当者にとって無視されると困るが、いつかは作るよといえば大抵、納得してもらえる。

社内の担当者に対しては要求内容を明確にしてもらう必要があった。リストを整理すると皆の意見を集約したような曖昧で無責任な要求が散見されるようになる。「誰の要求か」を特定できない場合には検証できないので非常に困る。たとえごもっともな事が書かれてあっても、それを言った人が特定できないのであればすべて削除することにした。要求する人には、まず最初に作る理由と効果の説明、さらに作った後のしっかりした検証を求めた。「言いっぱなし」を認めず、必ず検証を求めたので、作業が大変なのか黙ってしまう人もいた。また後に個々のコストが算出されるようになると軽々しく言うこともなくなった。その結果、本当に作るべき要求だけが残ることになった。

一方、開発者に対して私が求めたのは、高度かつ先進的なITスキル、円滑なコミュニケーション、情熱と信頼である。特に情熱と信頼は大切だ。先日、ある友人がなかなかよいことをいった。「IT技術者は医者や弁護士のようにクライアントの信頼を得られなければならない。クライアントは、命をあずけようとする相手を信頼するだろうし、その信頼があるからこそ高額なお金を払ってもいいと思ってくれる」
優秀なIT技術者は、医者や弁護士のような高いレベルの仕事をすべきだと思う。クライアントが何が困っていて何をしたいのかをよく聞いて善意でもってソリューションを見い出す。その際、技術者は具体的な方法や手段は一任されることになり、細かい指示ではなく命題や目的だけを考えて結果を出さなければならない。例えば、何か調子の悪い現象が報告されたら「それは仕様です」とはいわず、迅速に悪い現象に対応するか、その改善案を提案すべきである。

夏の開発のピーク時に、開発者の増員を図ったことがあった。契約の内容が派遣と同じような時間給であり、納期も短かったため、残念ながら中途半端な結果に終わってしまった。本人たちは、しっかり完成させなきゃという気持ちはあるものの、契約がそのようになっているので、どうしても机に座っている時間を基準に考えてしまう。「MTGに出席する時間は仕事に含まれるのですか?」と聞かれたとき、私は非常に不愉快な気分になった。「MTGに出るのは何のため?効率よく仕事をするためじゃないの?他にもっと効率よく仕事できれば出なくて結構だよ。」いつのまにか時間をかけて非効率な仕事をやる方がオイシイことになっている。時間をお金に換える発想から、結果をお金に換える発想に転換しなければ、お互いにメリットはない。そのうち彼ら自身の向上心もなくなってしまうだろう。今後、この手のサービスを利用することはおそらくないと思う。

日曜日, 3月 09, 2008

【EC開発体験記-言語-】最も初心者向けの言語はJava or PHP? このエントリーを含むはてなブックマーク

私が暮らしのデザインにやってきて早いもので1年。本当にあっというまに過ぎてしまった。ここでは開発中のものを含め5つほどシステムを構築したのだが、ただ、単に作ったというわけでなく、いろいろな研究をやってきたつもりだ。正直、時間的にも体力的にも余裕がなかったので、研究と言えるほどちゃんとやったわけではないが、実験というと立場上まずいので、ここでは研究ということにする。私にとって最も大きな命題は、オープンソースの活用であり、LAMPだけで基幹システムを構築するという点につきる。
 そもそも、Web2.0を積極的にやろうという意気込みで始めたプロジェクトだったので、LAMPの採用は必然的だったのだけど、MySQL、とりわけPHPの経験が乏しく正確に評価できてなかったこともあり、基幹システムを作るにはかなり冒険的だった。なので、更新系や連携部分などの重要な部分だけは、Javaで作られたReflex(これはこれで実験といわれてもしょうがないが)を採用することにした。こうすることで、安全性というか、安心感が高められることになった。なぜJavaだと安心かというと、稼動実績や情報が多いこと、歴史が長く安定していること、それから、最後の最後は自分の経験。どんなにトラブっても自身でFIXできる自信があったのが一番大きい。また、ついでにPHPを勉強して、Javaとの比較もできる。まあ、とりあえずやってみようということで、ハイブリッド形でやることにした。
 プロジェクトでは、サービス志向を取り入れた次のポリシーで開発した。
  1. 画面系はPHP(JavaScript)で作成する。プロバイダに対してはXMLかJSONでアクセスする
  2. プロバイダはReflex(Java)で作成する。JSPなどの画面は一切なし。PDFはReflex iTextで作成する。
  3. バッチはJavaもしくはPHPかシェル
 このJavaとPHPのハイブリッドは効果覿面だった。特に、PHPによる圧倒的な画面生産性の高さは、Strutsに辟易していた私にとって衝撃的であった。画面を作るならPHPであり、Javaで画面を作成してはならないという結論に達した。もう後には戻れないだろう。以前、あるプロジェクトでS2Strutsを使ったことがあるのだが、これと比較すると感覚で1対100ぐらいの差がある。Seasarは最近では、S2Struts以外にもAJAX対応したものがいろいろ出てきているようだが、Java Favorである私であっても、そんなものに興味すらなくなった。第一、モックアップをJavaでやろうなんて発想自体、どうかしている。
 同じ言語を使えば、画面とビジネスロジックがシームレスになる分、何かメリットがあるように思えるが、逆にこれが画面とビジネスロジック開発の分業を阻害した要因になっていると思う。(結局は同じ人が画面もビジネスロジックも両方作ってるんじゃない?だから画面依存のコードになってしまって生産性を下げているんだよ。)どうせなら異なる言語で分かれた方がスッキリするし、そうすれば、PHPを知らないJavaの開発者は画面に触れなくなる。逆もまたいえる。こうなってはじめて並行開発は可能になるものだと思う。

JavaとPHPの両方を経験してみて言えることだが、Javaをどうひいき目に見ても、画面開発には向かない。もちろん、Javaにはよいところもあり、PHPより勝る点は多くある。例えば、先ほども述べたが信頼性・クオリティの点は勝ると思う。機能的な点でも、PDF出力などは、Reflex iTextを使えば、XMLから簡単にPDFを作成できるので、納品書や請求書などの出力に利用している。これはこれで便利な機能だ。それに、私は最も初心者向けの言語はJavaであると思っている。
 これを含め、Javaの本領発揮する場面は後日述べたいと思う。

金曜日, 1月 04, 2008

あけましておめでとうございます このエントリーを含むはてなブックマーク

あけましておめでとうございます。今年もよろしくお願いします。久しぶりに書くこのBlog。今年からまめに書くことにする、なんて決意したいところだけども約束できないもんなあ・・・。さて、世の中、去年よりは景気がいまいちのようで、少しは落ち着いた仕事ができるかな。いやまじめな話、通販は景気がよくない方がいいなんて話もあるし、IT業界では技術者を集めやすくなるし・・と、明るく前向きに考えときましょう。とにかく去年のIT業界はものすごく景気がよくて開発者不足で泣きました。これほど人を確保するのが大変だったなんて思いもしませんでした。それでも少数精鋭でなんとか家具サイトをオープンすることができたのだけど、ITで超売り手市場だったなんて、ちょっと身の振り方間違えたかな。それはいいとして、とにかく、関係者の皆様、本当にありがとうございました。オープンして日が経つのだけど、一応、暮らしのデザイン 家具サイト宣伝しておきまます。本当はウンチクたっぷりなんだけど、まあ、見た目がベーシックなので、今はそっとしといておきます。あれほどWeb2.0を強調してたくせに!と思う方もいらっしゃるとは思いますが、これにはいろいろあるんです。思いっきりWeb2.0なんだけど、そう見えないだけなんです。ふっふっふ。

えーと、今年の抱負。やっぱり、私は技術者なんだなあって思うので、がむしゃらに開発していきたい。でも、昨年よりはちょっと微妙な心の変化があるのも事実。Web2.0を追求していくサイトを作りたいという欲求は多少弱まり、信頼性とか、スケーラビリティとか、運用面とか、より現実志向が強くなった気がします。それは、通販という超リアルな世界にいて、ITは商売のための道具。業務=ITであるシステム運用を任されているからなのかもしれません。でも実際、ITがどれほど業務効率に貢献し、コストに影響しているかをよく知ることが出来たのはよかったし、そこにITの大きな可能性を感じることができました。やっぱり、目に見えて効果があれば投資をしたいと思うでしょ?その効果ははっきり感じることができました。それから、SaaSを意識してやってきたけど、これはこれでいろいろ課題があることも分かった。またいつか説明します。

話は全然変わるけど、TVを見ていたらキューバの英雄チェ・ゲバラか、カストロか、どちらの生き方が好きかなんてやっていた。好きか嫌いかというより、ITに従事している多くのエンジニアは、チェ・ゲバラ派なんだろうなあと思った。自分自身で猛烈に仕事をこなし、新しいものを作り上げること(創造)だけに関心があり、女性にもてない。男としては理想の生き方とのこと。芸術肌の人は、猛烈に仕事したり、長時間ずっと仕事することを苦と思わない。最近、スーツとギークという言葉が使われるようになってきたけど、ゲバラはもちろんギークだよね。自分のやりたいこと(=革命)ができなくなったら国を飛び出し他の国でやっちゃうなんて。ギークにとって仕事ができないことほど辛いことはないのだ。もちろん、スーツはスーツの仕事はあるのだけど、なんていうか、創造ではない。政治とかお金の勘定(投資)とか商売とか。自分はどっちだろう。なかなか物を作れないギーク。スーツを否定して皆の反感を買う。根がギークなので女性にもてない。・・こんなところか。><;

火曜日, 5月 01, 2007

初仕事・・システムは動いてなんぼの世界である このエントリーを含むはてなブックマーク


今、暮らしのデザインというところでWeb通販、エディオンダイレクトの仕事をしている。暮らしのデザインはもともとダイエー、OMCの1事業であったが、3年前にエディオングループになった。それに伴い、カタログ通販から、Web通販、家電販売という要素が加わった。それでも最近では、単なる通販モデルでは通用しなくなってきたので、抜本的に改革しましょうという話になり、Web2.0的要素を組み入れた通販システムの再構築をやることになった。まずはじめに私が手をつけたのは配送サービスのところ。これをフェーズ1とした。Web2.0とはまったく関係ないと思われるかもしれないが、配送の納期短縮はお客様サービスの向上という意味で非常に重要なので、まずはこれを優先してやることにした。そして、新しい受注システムを導入するにあたり、現在のバッチ処理をやめてリアルタイム処理にした。旧システムでは、バッチで物流システムと連携していたので、商品を受注して出荷指示がでるまでに2日、お客様にお届けできるには最短で4日かかっていた。それが新システムでは、その日のうちに出荷して、お客様には翌日にお届けできるようになった。フェーズ1は、今年の2月から開発、4月9日にサービスインなので、なんと2ヶ月で作ったことになる。面白いもので、実際に動くものを見せられると、人の意識は異なってくる。入社時と今では全く違う環境になった。今後、Web2.0システムへと大きく発展させるためには絶対に踏まなければならない一歩であった。

それから、今回を期にポイントを10%にさせていただいている。赤字覚悟の出血大サービスなのだが、これぐらいで赤字になるようであればだめである。今の冗長なシステムにメスを入れて、究極の低コストモデルを追及していかなければならない。それが競争力となる。「居ながらにして買って安心」を実現するためには、避けては通れない道であると信じている。

エディオンダイレクト フェーズ1

日曜日, 4月 15, 2007

萎縮する このエントリーを含むはてなブックマーク

ずいぶん久しぶりに書くこのブログ。決してネタがなくなったわけではない。忙しくて書く暇がないのであるが、一番の理由は萎縮してしまったことだ。会社を代表する一人として自分の記事が良くも悪くも多くの人に影響を与える。そのなかには株主もいることだろう。自分にとって都合のいい言葉を選んで書くのは、当たり障りのない面白くないものになる。唯一、発言できることは

 正論

これほど面白くないものはない。私は間違ったことはしてはならないのであり、正論を述べるべきだという圧力があって選択の余地はない。だから、私は口をつぐむ。

正論はときに最悪を生む。悪意をもっていようがいまいが結果としてそうなる場合がある。

まず、以下のエントリを読んで欲しい。これは、JavaScript、ActionScriptの分野でインスピレーションをかきたてられる愛読blogの一エントリである。

■[javascript]「勝手に添削 - JavaScript 入門」を勝手に添削

amachanの講義内容に弾氏が「勝手に添削」したことに対する反論である。誤解してほしくないのは、正論をいっているのは、amachanでも、弾氏でもなく、実はblogコメントの投稿者(=世間様)である。

「こういったやりとりこそ、blogの醍醐味であり、(amachanは)当然やるべきだ。」by 世間様

この大きな圧力は、amachanを苦しめるだろう。なぜなら、常にamachanは正しいことを言うはずだと仮定されており、amachanは萎縮してしまう。その結果、世間様に自分の進みたい方向じゃない方向に引っぱられる。(=言いたいことが言えなくなる)

正論はときに最悪を生む。正論を発する輩に遭遇した場合、正しいと思ってもすべて受け入れるのではなく、一歩下がってスルー(無視or沈黙)で対応するのも一つの方法だと思う。

どうか、口をつぐむことがないようにお願いしたい限りだ。私もがんばろうっと。

日曜日, 1月 14, 2007

ビジネス優先とはどういうことか その2 このエントリーを含むはてなブックマーク

先の投稿では偉そうに書いたのだが、よく思い出してみると、私も失敗していたことがあった。そのことについても触れねばなるまい。

Y運輸様の荷物追跡システムの最初のリリースでは、OS/390で動作するWEBサーバのCGIプログラムによるものだった。信じられるだろうか?AIXどころかS/390である。S/390で作ったのが失敗だったというわけではない。むしろ、その逆の話であった。

当時、OS/390は、UNIXファイルシステムの拡張がなされ、同時に、CコンパイラやWebサーバなどのいくつかのUNIXのプログラムが移植されていた。今ではLinuxも動作するので驚くことはないが、当時はオープン化の最初の段階である。その仕組みはまったく想像すらできなかった。どれもこれも、やっと動くというレベルであり、実用上のパフォーマンスは望めなかった。そのうえ、EBCDICコードである。どう考えても、AIXで作った方がいいにきまっている。しかしAIXは単なる開発機だ。そこで開発したものを、OS/390に移し、わざわざコード変換して動作させていた。繰り返しになるが、開発機の方がだんぜん速い。

私は技術者として非常に後ろめたい気持ちになり、こっそり比較表を作ってお客様に公開した。
その数時間後、IBMの営業にどなられた。

「S390を選択していただいたお客様の立場を考えろ。」

当時はすでにダウンサイジングが進み、F社はホストをやめてUNIXにしようとしていた。
だが、お客様はUNIXは尚早と考えている。一方、IBMはOS390のオープン化といった新しい可能性を追求していた。お客様は、ホストというプラットォームにおいて、「将来にわたっての」IBMの真価を見極めようとしていた。要するに、WEBサーバのパフォーマンスはあまり重要ではなかった。私は見せなくていいものを見せたのだが、幸運にも大事に至らず、お客様はOS390を支持してくださり、前代未聞のS390<->F連携システムによる、荷物追跡システムができた。その2年後、UNIXサーバがお客様内で認知され、ご導入いただきWebは移行された。F社ではなく当然のようにIBMのUNIXサーバが採用された。荷物追跡システムの成功により、e-BusinessはIBMというイメージは焼きついていたからである。さらに、基幹システムであるデータベースサーバも導入いただくことができた。いわゆる、WinBackであった。

ビジネス優先とはこういうことだった。

ビジネス優先とはどういうことか このエントリーを含むはてなブックマーク

まず、Reflex開発優先ではなく、リアルビジネスを優先すること。私はこの判断は間違いではないと思っている。ある程度作ったものをリアルの世界でも試してみて、そこで得られた結果が反映される。これはアジャイルの基本だし、Web2.0のサービスが往々にして「永遠にベータ」といわれるのはこういう理由からだと思う。

T社長の一言、「うちを実験場だと思って結構」。この言葉に釣られた感じはあるが、そもそも実験場にしたところで後ろめたいことは何もない。
結果としてお客様の満足度は高まるのはまず間違いない。これはIBM時代からやってきたことだし、お客様は決してだまされたとは言わなかった。その代わり、成功が絶対条件だ。

1997年、日本で初めてWebSphereを導入いただいたお客様は私に騙されたふりをしてくれた。
当時は
CGIに比べて品質、パフォーマンスに劣るServletを業務に使うなんて到底考えられなかった時代である。私は求められても比較表を書かなかった。ただ、将来のためにWebSphereを使ってほしいと説得しただけである。その後、Servletはアプリケーションサーバとなり、普通に使われるようになった。

実は、説得という意味では、お客様よりIBM社内の方がきつかった。当時では普通であったNet.Dataをなぜ提案しないのか、WebSphereのような不安定なものを導入して、リスクはいったい誰が取るのか、TCTという技術リスク検討MTGのときにいろいろ言われた。でもなんとかソフトウェア事業部を味方につけてやり遂げたのだった。

IBM社内のネガティブな点については、もっといいたい。

LAMPの兆しが出始めの
2002年末から2003年初頭、私はあるお客様の受発注システムで、Linux+PHPを提案した。2003年はIBMがオープンソースビジネスに本腰を入れるはじめた年で、その年の戦略キーワードにはLinuxの文字がはっきり書いてあった。私は驚きつつもIBMの戦略の意図は読み取れたので、AIXではなくLinuxで、WebSphereではなくPHPで提案した。1997年にWebSphereを提案した時代とは異なり、次のパラダイムが起きようとしていたのである。提案はお客様に受け入れられたのだが、いざプロジェクトがスタートという時期に、私の転属が決まり、そのプロジェクトは後任に任せざるを得なくなった。ところが、その後任は、私の提案を捨て去り、AIX+WebSpereで再提案をしたのだった。1997年に比べてTCTは簡単にクリアできるだろうが、今更WebSphereを提案することに、ITスペシャリストとして何の意味があるのだろうと私は思った。彼は1997年にWebSphereを提案できただろうか?あるいは、Web2.0全盛の今であれば、きっとその彼もチープ革命とかいって、LAMPを提案するかもしれない。だがそうじゃないだろうと思う。業界をリードするIBMであるならば、猫も杓子もWeb2.0の今よりも、もう少し早く提案しなきゃだめなんじゃなかろうか。それに、LAMPは少なくとも3年前に一度提案して破棄されたものなのだ。今のお客様に提案したところで、果たして受け入れてくれるか疑問である。私がお客様だったら、責任もって未来永劫、AIXとWebSphereのサポートをせよと要求するだろう。

1997年
  お客様の将来よりもその時のビジネス優先(Net.Data)
  その時のビジネスよりも将来を優先(WebSphere)

2003年
  お客様の将来よりもその時のビジネス優先(AIX+WebSphere)
  その時のビジネスよりも将来を優先(LAMP)

本当のビジネス優先とは、現在だけでなく、将来も担保してあげることなんじゃなかろうか。
それには、慧眼の持ち主でなければ成しえないとは思うが。





抱負 このエントリーを含むはてなブックマーク

あけましておめでとうございます。

いやあ、昨年は非常に忙しかったなあ。特に12月は地獄だった。12月29日に何とか片をつけ、真っ白な灰になって博多行き新幹線に飛び乗ったのだが、嵐が過ぎ去っても、しばらくは何もする気がおきなかった。まるで伸びきったゴムの切れる寸前。ただもうボーとして、息するのも面倒くさい感じ。こりゃあ、充電して弾力のある状態に戻さなきゃ今年一年は持たないぞ、ということで、今日まで特に何もせずに過ごしてきた。・・・ちょっと休みすぎかなあ。人間不思議なもので、何もしないとBlogに書くネタさえなくなる。こりゃいかん・・・、今日からまたがんばります。

今年は、ある会社のネットビジネスを手がける予定だ。Ajax、などWeb2.0バリバリで、
また、SaaSのモデルもやりたい。たぶん、その会社のCTOとして参加することになると思うが、正式に決まったらお知らせしたい。

あれだけ去年熱く語っていたReflexはなんだったんだ?と思わないでほしい。このビジネスでも、Relfe CoreやReflex iTextなどは、どんどん活用していくつもりだ。P2P機能は次のフェーズになるとは思うけど、まあ、リアルビジネスが優先されちゃうのは常ということで・・・。(いかんいかん)

今年もよろしくお願いします。

土曜日, 12月 23, 2006

[winny] 結論 このエントリーを含むはてなブックマーク

IBM時代のころをいろいろ思い出すと、自分の原点を見つめなおすことができる。私は待遇に不満があるわけではなかった。むしろ高く評価していただいたと思う。IBMに育ててもらったし、嫌いなわけではない。やめた今でもお付き合いをさせていただいている。というか、一番大きな取引先である。 それなのに・・・・なぜやめたか。 それは、Reflexを作りたかったからだ。 Reflexは、「P2Pで安全に商取引ができるインフラの提供」を目的としたミドルウェアであるが、なぜP2Pにこだわるかをここでちょっと説明したい。
一極集中から新しいパラダイムが生まれて分散へ流れ、それから、また集中に動く。 これをITにおける輪廻という。 (by IBM 中島DE)
YahooやGoogleといった巨大なポータルサイトもあるが、インターネットは、原理的にはIPによる個々のコンピュータによるネットワークである。すなわち、基本的に分散型であり、インターネットの特長を最大限に生かすには、P2Pのような分散型が最適であると考えられる。 今、WEB2.0という新しいパラダイムが生まれて、CGMという個人の情報が重要だと認識された。 CGMを最も効率よく流通させるのは、インターネットの特長を生かしたP2Pであることは、疑いようがない。 また、今後膨大なCGMが発信するようになると、1極集中型が破綻すると私は予想している。ムーアの法則がサチッてきている以上、横に広がる以外ないのだ。 なので、私は新たな流通基盤が必要となる時代は必ず来ると信じている。これがReflexを開発している動機である。 今は、WEB2,0は「あちら側」という言葉に代表されるように、巨大プレーヤーによる演出に目を奪われがちであるが、なんのことはない、Googleだって個々の情報で商売しているだけではないか。たしかに、すばらしい検索能力をもっているので、Googleがまるで情報を生み出しているような錯覚を覚えることはある。しかし「情報発電所」は勘違いであり、「発電」しているのは個々の情報発信者である。 P2Pは「あちら側」でもなく「こちら側」でもない。単に個々が連携しあって成り立つネットワークである。繰り返しになるが、これがインターネットの本質であると私は思う。P2Pの検索システムは、インターネットが存在する限り、破綻することのない無限の可能性をもったシステムである。Skypeは無限のユーザ数に耐えうるそうだが、要するに、そんなようなものだ。 インターネットに問い合わせるだけで、得たい情報を得ることができるようになった。しかし、現在は、Googleにしか問い合わせることができないのが問題だ。私たちの情報を無断で利用し、他に検索手段がないことにつけこんで、いろいろ商売を行っている。私はこのような「あちら側」を撲滅したい。Google八分という言葉をご存知だろうか。インターネットはもっと公平であるべきだし、自由であるべきだ。P2Pであれば誰からもコントロールされず、また、「あちら側」の撲滅が可能だと思う。 Reflexで「あちら側」の撲滅が可能とは到底思えないが、まずは、ここに述べたような分散型の理想のネットワークを実現させたいとは思っている。私はそのためにIBMをやめたのだった。 特定プレーヤーによる1極集中ではない、バーチャルで分散型のネットワークの実現。それがバーチャルテクノロジーという会社の目的だ。バーチャルには「本来の、本質的な」という意味がある。「バーチャル=仮」ではなく、「本来」のものを得るための技術という意味で、バーチャルテクノロジーという名前にした。 私は著作権破壊とか、ほう助とか、決して望んでいない。しかし、Reflexを開発し、公開することで、結果的にそうなってしまうかもしれない。一時は開発を断念しようかとも思ったが、今はそれで有罪になってしまうのであれば、やむをえないかなと思っている。 技術の進化は誰にもとめられない。

金曜日, 12月 22, 2006

[news] Donald F. Fergusonがマイクロソフトに? このエントリーを含むはてなブックマーク



あの、Don FergusonがIBMを退社してマイクロソフトに入ったという噂(※)がある。WebSphereを作り、今でもSOAのキーパーソンである彼がなぜIBMをやめなければならなかったか。詳しくはよく分からないが、本当にこの業界はこの手の話が多い。(※事実かどうかはまだ分かりません)

私がIBMにいたころは、戦略を考える際には、常に彼のことを念頭に置いていた。彼が今何を考えてどうしたいのか。皆で議論しても埒が明かないときは、彼の言葉を信じてそれに従った。まるで神のような絶対的な存在であった。私がIBMの事例を誰よりもはやく作れたのは、彼のおかげかもしれないと思っている。自慢話ここから==>

ちなみに、WebSphereを日本で最初に導入した実績を作ったのは私である。1997年であったがFirst Referenceにすることができた。それから、同年クロネコヤマト様の荷物追跡システムを設計し、2002年、Webサービスを使って連携するシステムを作った。1999年には東京海上様の代理店検索システム、2001年にはKDDI様のPayCounterシステムではSOAP認証を作った。2000年には岡村製作所様でIBM初のEJBによるWebEDIシステムを作った。また、RTS様で業界初のUDDIシステムmabotを設計した。

東京海上様の代理店検索システムは、全国の代理店情報を地図上にプロットして紹介する、いわゆるマッシュアップのはしりのようなシステムだ。MapFan様の地図を利用させていただいたのだが、最初の企業ユーザだとおっしゃっていたので、私が一番最初であることは間違いない。そのアイデアを転用して、2004年、XMLコンソーシアムでiPlatを設計した。これが出来上がるころに、googleマップがUSでオープンになって話題になったが、私たちはそれに刺激されながら作業していたのを覚えている。このときはまだAJAXもWeb2.0も騒がれていなかった。

<== ここまでが自慢話 このように、業界初のものを多く手がけることができたのは、恩師であるIBMの中島DE、それから、Fergusonの慧眼のおかげであった。本当に感謝しているが、こんなに簡単にやめられるなんて、寂しいかぎりである。(よく考えたら人のことは言えなかったりする) IBMは最近、あまり評判よくないようだから、特に、日本IBMについてこの先心配である。

追記:
 Google AJAX Search APIを担当するテクニカルディレクターは、かつてMicrosoftの一流エンジニア だったMark Lucovsky氏だ。


こちらはこちらで大変なのね。

もういちど、Fergusonの本を紹介しておこう。



日曜日, 12月 17, 2006

[Winny] 開発者がなぜ萎縮するか このエントリーを含むはてなブックマーク


まず、白田氏のこちらを読んでもらいたい。Winny事件判決の問題点 開発者が負う「責任」とは


極めて簡単に言えば、「Winnyが違法コピーに広く使われているってこと、知ってたでしょ。それにもかかわらず、Winnyの改良をしたでしょ。だから幇助」ということになる。この判決骨子の論理では、「画期的なソフトウェアを開発したプログラマが、実験的にリリースしたら、利用者に思いもよらない使い方をされてしまった」というだけでは幇助にならない。また仮に「思いもよらない使い方で反社会的な効果が生じてしまった」と認識した後に、とくにその反社会的な効果の拡大につながる積極的行為をしなければ幇助にならない。だから、「ヤバい」と思ったら配布公表を停止すればよいことになる。それ以上の責任、たとえばソフトウェアの回収とか削除までしなければならない等は、どこにも述べられていない。

 だから、この事件が一般的に「プログラマや技術者に無理解な不当な判決であり、今後新しい技術を開発するにあたって萎縮効果をもたらす」というのはやや誇張された主張で、金子氏や弁護団のみなさんがこの点を声高に言い過ぎると、かえって金子氏の立場の正当な要素を損ないかねないと危ぐする。もちろん、このくらい簡単に誇張して言わないとマスコミの人たちや一般の人たちに分かってもらえない、という気持ちも良くわかるんだけど。あくまでも「幇助概念」に関する法律論が主戦場である本件判決を、無理して別の価値に関する議論の文脈におくと、たぶん、なにかがゆがみはじめる。


私たち開発者にとって関心があるのは、開発したソフトを公開したときに、有罪になることがあるかどうかの1点だけだ。

この記事を読む限り、自由に開発して公開しても有罪にはなりえないが、著作権侵害に利用されていることを知りながら、著作権侵害を助長するソフトを開発し続けると有罪となる。

判決が出た後である現在では、Winnyを開発することは当然有罪になり、また、「それと同等の機能」をもったソフトを開発して公開することも有罪になると思われる。そうでなければ、名前を変えてWinnyを開発し続けられることになる。

一番の問題は、「それと同等の機能」を開発して公開すると有罪に問われる危険があるということ。「それ」とは、P2Pにおける匿名性をもったファイル交換技術だ。なぜなら、「それ」を実装したソフトは、Winnyでなくても、全く同じことが可能になるからである。

Reflexは、ここにも書いたが、 WinnyはITの核兵器なのか「それ」を実装している。そして、Winnyが著作権侵害に利用されていることを知りつつ開発したことになるので、使われ方によっては、金子氏と同罪になる危険性がある。なので、私は開発をストップせざるを得ないかなと考えている。

このように、判決が出たあとでは、明らかに対応が異なるのであって、これは萎縮ということになるだろう。白田氏の意見は、実際の現場をよくご存知ないのかなと思うしだいである。繰り返しになるが、私のように萎縮してしまう開発者は大勢いると思われる。

司法は、開発者が萎縮してしまわないような、判決をすべきであると思う。今のままでは、何をしたら大丈夫なのか、まるでわからない。少なくとも、Reflexを公開して有罪にならない補償はない。やはり、遠山の金さんに聞くしかないのかなあ。

金曜日, 12月 15, 2006

[winny] 司法ではなく立法の仕事? このエントリーを含むはてなブックマーク



いやあ、すばらしい記事だ。有罪の根拠を納得できた。
Winny裁判、罰金刑は重いか?軽いか?--自己矛盾を抱えた判決


いや、そんな倫理性の話でなくても、あちこちで「著作権を崩壊させる」と発言して国家権力に挑戦し、結果的に著作権侵害ファイルを蔓延させている以上、これを無罪とするというのは国家権力の側の判断としてはあり得ないように思われる。


司法としてはやむなしということか。ということは、あとは立法の仕事ということ?新しい時代の著作権法を作る動きを期待したいところだが・・・・。

この判決には、大いなる自己矛盾もある。氷室裁判長は、情状酌量の理由として「著作権侵害を目的にしたのではなく、新しいビジネスモデルを生み出すためだった」と述べた。しかし金子被告の意図が著作権侵害ではなかったのだとしたら、その行為がなぜ「著作権侵害の幇助」に問われなければならなかったのか? 意図はしていないが、結果的に侵害に利用されれば、それは「幇助」となってしまうのか? このあたりの問題は堂々めぐりの迷宮に入ってしまいそうになる気もするが、こうした自己矛盾がひそかに内在しているあたりにも、今回の判決の何とも言えない微妙さが浮き彫りになっているようであり、そしてこの事件の判断の難しさを体現しているようにも思えるのである。

よし、この本買おう。




[winny] 普通に考えると・・ このエントリーを含むはてなブックマーク



amachanに同感。
プログラムを作って公開した結果、有罪になるなんて、やっぱりおかしいと思う。

[prototype.js] 連想配列からXMLに変換するJavaScript このエントリーを含むはてなブックマーク



Prototype.jsを使うと連想配列からXMLに変換するコードを、こんなにシンプルに書ける。

DEMO

prototype.jsを使わないバージョン=>extractive.jsの中に含まれる


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>JSON2XML</title>
<script type="text/javascript" src="scripts/prototype.js"></script>
<script type="text/javascript">

var extension = {
 toXMLString: function() {
   return this.map(function(pair) {
     return "<"+pair.key+">"+ (
       typeof pair.value == 'string' ? pair.value : $X(pair.value).toXMLString()
     ) +"</"+pair.key+">";
  }).join('');
 }
}

function $X(object) {
 var hash = $H(object);
 Object.extend(hash, extension);
 return hash;
}

function test() {
  
  var aa = $H();
  
  aa.b = "ta </a>} : ke";

  var h0 = { root : { a : aa,
        b : "2",
        c : { d :"3", e:"4" },  
        f : ["5","6"]  
        }
  }

  var h = $X(h0);
  
  alert(h.toXMLString());
//  alert(h0.c.d);  
}

</script>
</head>
<body onload="test();"></body>
</html>


木曜日, 12月 14, 2006

[prototype.js] Event.observe() このエントリーを含むはてなブックマーク


いつも忘れるのでメモ

Event.observe(element, name, observer, useCapture)で登録したイベント処理を受けるときは、Event.element(e)を使う。
Event.observe(but1, 'click', showMessage, false);

function showMessage(e) {
alert('clicked: '+ Event.element(e).id) ); // but1
}



どうしたらほう助とならないのか・・遠山の金さんに聞くしかない このエントリーを含むはてなブックマーク

Winnyは、違法コピーを防止するような改善がなされなかったので、ほう助と認定された。氷室裁判長は、「無限定なほうじょの成立拡大も妥当ではない」といっている。ここでのポイントは、1.その技術の社会的での利用状況、2.提供する側の主観的な態度。

1、については利用者側がどう使うかは、開発の段階では未知である。結果的に違法コピーの道具にされることもありうる。そうなったときに防ぐ手段をとれるかどうか。少なくとも、Winnyに関してはなかった。

2、については、金子氏自身、「著作権のあり方への挑戦」といわれていたこともあったらしいので、ほう助と認定されたのかもしれないが、一方で「積極的な企図があったとは認められない」のがよく分からない。

では、どうしたらほう助とならないのか、つまるところ、開発者の態度をみて、裁判長が有罪か無罪かを判断するということなのか。ああ、遠山の金さんみたいな話だ。



[winny] 有罪の本当の理由 このエントリーを含むはてなブックマーク

判決では有罪となったわけだが、一方で、現在でもWinnyネットワークは厳然として存在している。ということは、Winnyを規制してすべての人が使用しない限り、法による情報のコントロールはできない状態になっている。有罪とされた本当の理由は、このへんじゃないかなと思う。その証拠に、量刑の理由は、Winnyを検索キャッシュに置き換えただけなのだが、全く当てはまることがわかる。検索エンジンとWinnyは、著作権侵害幇助というより、コントロールできるかどうかだけの違いだと私は思う。

情報規制は、お上によって正しく情報の峻別がなされることが前提で成り立つ話である。しかし、「コントロール≒権力」でもあるので、権力を利用して、私利私欲に走る輩が出てくることも心配だ。同じように心配している方もいる=>なにかNHKで..インターネットの匿名性について議論やってますが

言論の自由は、憲法というより、実質的にはインターネットの匿名性で保障されてると考えているのは私だけだろうか。

[winny] WinnyはITの核兵器なのか このエントリーを含むはてなブックマーク

Winny判決で驚いたのは、有罪となったということより、その刑の理由だ。「金子氏の著作権侵害幇助の企図は認められないが、著作権侵害のために利用されることを知りながら何も対策を講じなかったから有罪」だという。要するに、大変有害なソフトであるが改善されないから有罪だという。いくら作者だからといっても、それは無理というもの。P2Pネットワーク上のファイルを消すのは、技術的に不可能に近い。判決が逆ならまだよかった。ソフトが悪用されて侵害されたのは他者によるものであり、それを防ぐには技術的な理由があって対策を講じられなかった。なので、そのことについては罪には問えないが、著作権侵害幇助の企図があったので有罪。ソフトはあくまで人が利用するものであり、どのように使ったかを問題とする、いわゆる「包丁」の例えを適用するとわかりやすい。このままだと、銃刀法違反のような法律がITにも適用されるんじゃないかと不安を感じてしまう。

特定のソフトであればまだいい、実は、弊社で開発しようとしているReflexにも適用されてしまうんじゃないかと心配している。Reflexは、Overviewの「何が嬉しいか」を見てもわかるように、P2PをベースにしたCGMの管理ミドルウェアを目指したものだ。CGM(コンテンツ)があらゆるノードでキャッシュされているが、IDで特定できて、誰がいつ作成したかを確認できる。特定のノードにいなくても、どっかにキャッシュされていれば、自動的に検索されてダウンロードできる。暗号化とPKIを使うことで、オープンな環境で安心して商取引ができることを目指したものだ。しかし、適当な署名を作って公開することも、やろうと思えばできる。当然、証明書が偽造されていることが分かるので、信用できないことはすぐに分かるのだが、それがたとえ信用できないものであっても、リスクを承知で入手することはできる。すなわち、匿名のファイル交換が実質的にできてしまうのだ。このソフトを公開したらどうなるのだろう。私は著作権幇助を企図していないけれども、利用者はどう使うか分からない。判決を知った今であれば、もちろん、匿名のファイル交換ができない仕組みにするとは思うが、もし知らないで公開してしまったら、金子氏のように有罪となってしまうのだろうか。私は、こんなリスクをしょってまでReflexを開発するつもりはない。設計の大幅な見直しか、あきらめざるを得ないだろう。私のように感じている者は日本中に大勢いるはずだ。司法は、著作権を主張する者の利益もそうだが、日本のIT業界全体の利益も考えて判断すべきだと思う。今回の判決は、イノベーションに取り組んでいるIT技術者のモチベーションに大きく影響を与えることだろう。

原爆を発明したアインシュタインは有罪か、使った者が有罪か、それとも両方なのか。
アインシュタインを有罪とする法律が当時はなかったから無罪だという人がいたが、どうなんだろう。

Winnyは原爆のような存在で、昨日、それを発明した人に罪が言い渡された。
著作権侵害幇助の企図は認められないが、大変有害なものであり、改善されないので有罪だそうだ。


水曜日, 12月 13, 2006

[winny] Winny 量刑の理由 このエントリーを含むはてなブックマーク



私のBlogにはちゃんとCopyrightが付いているにもかかわらず、勝手に検索キャッシュにコピーして、私の意図とは異なる利用のされかたをされ、利益を得ている輩がいる。その輩には以下を言い渡す。まあ、罰金刑が相当だろう。

量刑の理由

 被告は、検索キャッシュを開発、公開することで、これを利用する者の多くが著作権者の承諾を得ないで著作物ファイルのやりとりをし、著作権者の有する利益を侵害するであろうことを明確に認識、認容していたにもかかわらず、検索キャッシュの公開、提供を継続していた。

 このような被告の行為は、自己の行為によって社会に生じる弊害を十分知りつつも、その弊害を顧みることなく、あえて自己の欲するまま行為に及んだもので、独善的かつ無責任な態度といえ、非難は免れない。

 また、正犯者らが著作権法違反の本件各実行行為に及ぶ際、検索キャッシュが、重要かつ不可欠な役割を果たした▽インターネットにデータが流出すれば回収なども著しく困難▽インターネットの利用者が相当多数いること、などからすれば、被告の検索キャッシュの公開、提供という行為が、本件の各著作権者が有する公衆送信権に与えた影響の程度も相当大きく、正犯者らの行為によって生じた結果に対する被告の寄与の程度も決して少ないものではない。

月曜日, 12月 11, 2006

[Google Calendar][JSON] Google CalendarでBlogのエントリー このエントリーを含むはてなブックマーク

Google Calendarのコメント情報をJSONで読み、Blogのように時系列で表示するJavaScriptを作ってみた。ここを参照=>(デモ説明

カレンダーに自由に書き込んでもらって結構なのでぜひ使ってみてほしい。こういう使い方はカレンダーの想定外かもしれないけど、ちょっとした情報共有にはこれで十分事足りると思う。

技術的なポイントは、
  •  エントリーをソートする( feed.entry.sort() で、sort中に更新順となるような条件を指定した)
  •  ISO8601からDateへの変換(d.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/,'$2/$3/$1 $4'))・・9時間足してねえ
  • エントリーのlinkを元にコメントのリストをJSONPを使って作成する(document.write()だとIEで動かないのでdocument.createElement()を使ってscriptタグを作成した)
  •  4行目のIFRAMEは埋め込みカレンダーを横に出すため
  •  30秒おきにリロード(この動きがかっこ悪い)
 
© 2006-2015 Virtual Technology
当サイトではGoogle Analyticsを使ってウェブサイトのトラフィック情報を収集しています。詳しくは、プライバシーポリシーを参照してください。