こりゃ、失敗プロジェクトだ。信太郎)こいつが、ビジネス書だっていうのは、そういうことだ。ビジネス書は、ビジネスマンの血肉となり、つまり自信となる。デバッグもテストもプロトタイピングもできない世界で自信を保つには、自分自身による実績の積み重ねと、実績の積み重ねをした他人の教えの学習が必要だ。いうのが、実態ではないか、と僕は考える。いうわけで、この「自信」については、ダックタイピングがどうこうというのは、まったく問題ではない。それでは意味が通じないから自信となるわけがない。(デベロッパー一人一人の顔が見えれば、その顔色を見て、自信となったり、逆に不安となったりするだろうから、規模の問題というのは正しい)したがって、たとえば、IBMでもNTTデータでも良いけど、世間様の規範となりうる大きな人たちがたとえばJavaScriptだけで第8次オンラインシステムを構築して、安くて(開発のみならず運用=実行時も)速くて、しかもカスタマーからの感謝の言葉と、日経BPの賞賛記事が出まくれば、大規模開発=JavaScriptという動的言語による開発、っていう選択がプロジェクト全体の大きな自信となる。東証の新しいシステムがHaskellで作られて日経BPに賞賛記事が書かれて、稼動後1年なんのトラブルもなく、富士通(じゃないかも知れないけど)が成功事例としてそこらじゅうで宣伝しまくれば、大規模開発=関数言語というか成功したHaskellによる開発、ってのが規範となり、その選択をすることが大きな自信となる(おそらく、最初にそのプロジェクトをGOした人たちはイノベータとして社内外で高く評価されることになる)。20年後には、(今、動的言語で自信を付け始めた人たちがヘゲモニーを握っているので)大規模システムはRailsで作られるようになるわけだし、そのころの若い開発者(まだ生まれてなかったり3歳くらいだったりする)は、「げー、動的言語で開発かよー、だっせー」とか「なんで関数型言語みたいな信頼性が低い(ということに、その時代の先端パラダイムではなっている)のを使わなくちゃならんのだー」とかの怨嗟の声が巻き上がるようになる。そこで「大規模開発は動的言語と相場が決まっているようだけど、なんで???言語は向かないってされてるのでしょうか?」というような疑問が出てきたりするのだろうな。#大規模開発=プロジェクトチーム全体で顔が見えない開発、と考えるとだいたい概念的にはOKではなかろうか。データベースのサイズとかクライアント数とか、コードの総行数は関係ない。GNUプロジェクトは大規模だけど、大規模開発じゃない(ESRによると伽藍建築だそうだけど)。いや、顔が見えないじゃなくて、利害が複雑で、プロジェクト全体の目的が曖昧になりやすい、というか末端の開発者がプロジェクトの全体の目的をわかっていない(教えられていない)開発を大規模開発と呼ぶというのが正しいかも。#技術的には、ダックタイピングがあるから大規模開発に向かないというのは考えにくいと思う。interface継承(実体が伴わないから、どのような実装をも許容してしまう)があるJavaで大規模開発が行われているし、performで呼び出す名前の衝突がありえるCOBOLでも行われているというのがその証左だと考える。#なんか、オチの部分は意図せずに、こないだ読んだ羽生さんの『Railsが普及した次の世界を想定すると......』みたいになってしまった。いう輪廻転生みたいなというか、万物流転なことを言い出すってのは、ようするにそういうのを見てきたってことでもあるから、羽生さんも年を取ったな、ということなんだろう。とそれを受け入れ可能(使う/使わない/気に入る/気に入らない/知る/無視するという選択肢があるのは当然)だってことなんですな。[つまりそれは「(ヒトマワリオオキナ)変化ヲ抱擁セヨ」ということですね。来年のRubyKaigiのオフィシャルスポンサーにマイクロソフトが登場して、Silverlight+IronRubyのテクニカルスポンサーセッションをしたりとかが見られたりするんだろうか?で、ノベルもオフィシャルスポンサーになってて、Moonlight+IronRuby(Monoの上で動けば)のテクニカルスポンサーセッションがあったり。SunがJavaApplet+JRubyのテクニカルスポンサーセッションをやってみせたり。実際にそうなった状態を想像すると、あまりおもしろくなさそうな気がするわけだが、おもしろいかどうかだけじゃなくなるのが2008年なんだろうか(とか勝手に予想してみたり)。おもしろくないとつまらないからなぁ。プログラムをおもしろくするのには、レースコンディションを導入すると良い。解決するのが効率的か、とか。見分けるのが難しいのだが、思わぬところに穴があってNullPointerExceptionしてしまったり。それぞれを代表するちからびとが入場してきて、ということは、後楽園ホールの地下を借りれば良いだろうな。マージャン卓みたいなところで、決められたお題をハック開始だ。そこに、オーガが乱入してきてコアを吐かせるとか。オーガだから、プロプラエタリは嫌いだろうしな。テクノロジーゲリラで、やりたいひとはやれば良いだけなのだが、愛は確かに重要だ。NetBeansはインストールしてあるのに、JavaでプログラミングするときにEmacsを起動して、結局APIはHTMLを眺めながらコード書いている自分がいたりするわけで、それはEmacsを愛してるからだ。ついてちょっと考えてみる。立場的に佐官ではなく尉官の下のほうという前提。取得できるから)とか野心があるとすると、内部でどうにかしなければならないわけだから、取り得る戦術は比較的限られてしまうかも。考えつくのは分割戦術だ。大規模であってまともなアーキテクチャが採用されていれば、システムは分割され、いくつかのサブシステムが疎結合されているはずだ。その中には、障害耐性要求やパフォーマンス要求が比較的低く、長期的には利用されないことがわかっているサブシステムがあるだろう。なければ、そういうサブシステムの必要性を指摘して需要を喚起すべきだ。それによって、そのサブシステムに対する適用というのが取れる。後はそのサビシステムに対するコミットメントの問題となる。コミットメントが見えないから信用がおける方法を取っているというのが実情のはずだ。そのサブシステムが成功すれば、次は適用領域が拡大できる。逆に適用結果が思わしくなければ、コミットメントに従い、リカバリーするしかない。したがって、開発速度は非常に重要となる。[バキネタがくるとは。rjb-1.0.6Rjb(RubyForge)JRubyに合わせてRubyスタイルのメソッド名も使えるようにした。正直なところ、Rubyスタイルにメソッド名を変えることは、あまり良いアイディアとは思わないのだが(JRubyと異なり、Rjbを利用する場合、Javaのクラスを知っている開発者がそれを利用するわけだから、Javaのメソッド名を知っていることが前提となるはずだ)、名前忘れたがJRubyの来日した一人から、「requireしてるところとか別にすれば、Javaオブジェクトを利用するコードがCRubyとJRubyで共用できるよね」とかその点に関しては尤も至極なことを囁かれたので、まあ、それは正しい、と思ったわけで、1.0.6。JRubyの変換規則を調べて実装したわけではないので、実は互換性が取れていないかも知れないので、気づいた点があれば御教示いただければ直します。CRuby+Rjbで作っておいたソースが、JRubyにほとんどそのまま移行できるというようなシナリオは、たしかにあるでしょう。逆にJRubyで作ったらパフォーマンスがだめだめなのでCRubyで動かすってのもあるだろうし。InstallerをVS6版からVS2005版に切り替えたため、幾つか変更しています。1.0.6が、以前からの変更点となります(rdocは今回ドロップしてサイズを半減させてます)。インストーラ構成をゼロからやり直しているため、不備があるかも知れません。いうわけで、もしよろしければ、試してみて以前のバージョンより欠けているライブラリなどが見つかりましたら、本記事のツッコミで教えていただけると幸いです。一応、一週間後くらいを目処にinfoseek.co.jpのほうも更新します。追記:肝心なこと忘れてた。ゆき菜パッチを適用しています。-wでend警告が入ります。これが欲しかったんだよなぁ。基本的に全然同意できないのですが、かっこいい。おもしろおかしい王座王位決定戦こういうのがあるからスラドを眺める気になるんだよな。リソースなのかRPCなのかREST魂ってのはありそうだな。ぶくまこめんとを眺めて思った。complexTypeとか出てきてること考えると、SOAPツールキットみたいなものを使って実装したんじゃないかと思える。すれば、実装の考え方はRPCだろうし、エラーコードはその関数の実行結果であって、関数呼び出しのレイヤーの結果とは別にするのは素直にみえる。なくてリソースの取得と見ればステータスコードを使えというのはもっともだ。RPCなら専用クライアントがあるのが(暗黙の)前提となるから、話は合うのだが、その一方で、そんなものなくても利用できるんだから(+多分、そんなものなしで利用してほしいと考えているようにもとれる)、だったらRPCとしての実装じゃなくて、リソース取得としての実装にすれば良いじゃんというのももっともだ。これって、結構、おもしろい問題だな。#自分で想像している以上に、自分が貴族的に考える(エラーコードは別じゃん)ことに新鮮な発見があったので、細かく書いてみた。pResult);問題というのがあって、fooのように実装するか、barのように実装するかというのが問題だった。一般論(MSの推奨だと思う)としてはbar実装をする。S_OK;}でも、おれはこれはくだらないと思って、foo実装が多かった。}}ミソの部分でIErrorInfoを作れるからだ。これに相当するのがレスポンスボディ部のテキストということなんだろう。すると、実際にはボヘミアンな考えをしてたってことだな(むしろ、その後に貴族化したらしい)。(追記:ちょっと違うな。呼び出し失敗は呼び出し失敗ということと、例外を使うと付加情報が多いことが理由だから、こっちはやはり意味を重ね合わせてるようだ)ちなみにfooとbarを呼び出すクライアントのコードは次のようになる。日曜は映画の日なのでカリブの海賊を見て来た。[DVD](ハンス・ジマー/ジェリー・ブラッカイマー)子供がはまりにはまっているんだが、1と2は見てないので、どんなものなんだろうか(子供はテレビで見てた)。なんか、スターウォーズの4〜6で、主役の男女よりもハンソロのようなアウトロー風味の風来坊が人気抜群で、2作目の最後では敵に捕らわれるわけだが、3作目でちゃんと主人公たちに奪還してもらえて、みたいなところもあったりするんだが、そのくらいスターウォーズは良いフレームワークを提供してるってことなんだろうか。それにつけても、食べ物じゃないものを人はどうしてああも気持ちが悪いものとして描くんだろうか。昆虫を食べない人たちは、昆虫を気持ち悪く描くし、鶏肉を食べない人たちは、鶏を気持ち悪く描く。鯨を食べない人は、鯨を悪魔として描く(船長の片足食ったり、木の人形を飲み込んだり、ヨナまで呑み込んでしまう)。他人を受け入れがたい人たちは、まずは人間を食べるところから始めればよいのではないだろうか。すれば、気持ちの悪いタコ船長じゃなくて、とってもかわいいオズワルドとかタコのはっちゃんみたく見えてきて親しみがわくだろうから。リソース/RPCクライアント側に立てば、実装がWebアプリケーションかWebサービスか静的なファイルの返送かはまったく関係ない。いうか、世界系なんだから、そんなものを気にしてもしょうがない(逆に言えば気にしなきゃまずい方面はあるし、その場合は、クライアントは当然のように必要になってバグが増える(ということはあり得ないから、そのあたりはノイズだな))。リクエスト出す側に軸足を置いてみるのか、それとも、サーバーの実装方法によってレイヤーが違うんだから、それぞれのレイヤーごとにきちんとエラーを返さなきゃだめじゃん、とレスポンス返す側(というより、両側そのもの側)に軸足を置いてみるのか、の違いのようだ。すれば、貴族とボヘミアンっていうよりは、キュロット(パンが食えなきゃ菓子食いな)とサンキュロット(おれたちに食い物を寄こせ)というほうが適切かも(元の分類方法は別にして)。なくて王の立場(飯の確保と輸送路の確保と輸送手段の確保と輸送計画と......飯が置き去りにされてしまったり)かも。すげぇ発見こりゃいいや。Silverlight。いうか、この歌はシルバーライトの歌だったのか。アイアイアイアンパイーソンアイアイアイアンルビーィーィーィーいろんな言語でオフショアだyo!シルバライット、シルバライット!Moonlightより、ポップで好きだ(でも、もう2度と聴かないけどな)。追記:いや、もう4回くらい聴いてるけど。(今日は午後からイベントなんで会社に行ってないのだった)惜しみない称賛。詳細を教えていただけないですか?あと、RubyLife.exeは、ASRのsamplesに入っている、ScriptControlを利用してRuby本のLifegameを自分のフォームに描画するVBのプログラムです。お金はモチベーションになるよ中国の言い回しに親子三代が「贅沢に暮らせる」金額というような表現がある。現在の日本円に換算するとざっと、最低8億円くらいだろうか(軽く試算したが、ちょっと足が出るような気もする)。1年間死ぬほど働いて成果を上げたら成功報酬が8億円と言われたら、おれだったら確かに死ぬ気ではたらくよ。7億9千万円程度じゃいやだね。ほかの人も同じか、もう少し高く勘定してるかも(9億円とか)。それが労働価値より高すぎると考える程度の端金しか出ないんだったら、そりゃモチベーションにはならないだろうなぁ。#金銭って絶対価値でしか考えてもしょうがないように思うが、そこを相対的な価値をもって成功報酬にしようとするのは間違ってるように思う。なると好きになりますよね。好きになるとあばたもえくぼで可愛く見えると。あの連中ははなからタコ食べないじゃないですか。山下さんとcut-seaさん(実は名前知らない)がおもしろいおもしろいかわいいかわいいオリザ最高、いきなり会議で奥さんはまりまくりとか力説するので、あまりの迫力に押されてつい買ってしまって読んだ。雅之)確かにおもしろいわ。本で2位とすごいことになっている。巻数が書いてないので、買えない。いうか、人気あるんだな(本屋で平積みずーっとされてたのは見てるから人気あるってのはわかっていたはずだが、いかに、口コミが購買行動に影響するかを身をもって知るとか)。断言すると、本当におもしろそうに思えるから不思議だ(題材的にはおもしろくないはずはないから、そりゃおもしろそうなわけだが)。MD3あとで書くつもり。Jasperは、レイトバインディング。ActiveRecordだなぁ。いうか、レイトバインディングを主流にするつもりなんだろうか、とか。インテリセンスを実装するとしたら、初回アクセス時に取り出してキャッシュするとかかな。LINQの本命はやはりペトポタか、というか、TableAdapterはどうなるんだろうかガクブル。いう問題に対して、エンティティをオブジェクトとして多重継承でプロセスをからめる方法はオブジェクトグラフを固定化してしまうからあまりよろしくないのではないか、ではコンポジションでプロセスを挿入していくという方法はどうだろうか(そこにインターフェイスを決めるのか、それとも名前で決めるのか)、レイヤリングで分担ではどうか、アスペクトやデコレータによる外ざしはどうか、またはミキシンなど(オブジェクトではなく、関数の外ざし)はどうか、とか。書いてみると、いろいろな手法があるな。書きながらふと思ったが、そもそもCでやってれば、全部関数テーブルでシンプルに解決するように思えてきたけど。そのあと、NyaRuRuさんやakirameiさんや荒井さんと談笑。生成したTypeはアンロードできないのでAppDomainごと殺して解放する野蛮な手法とか、それに対してDynamicMethodとか(記憶違いかも)。#メモのつもりが結構、長い。[こちらこそありがとうございました。それにしても、本当に100ですね。[皆さん、有難うございます。JSONPプロポーザルこれって歴史的な(ブ)ログだなぁ。イッポリット、アイバリット先生リムポポー。何気なく、リズムを取って、ふと思いついて検索すると、2件しかない。?でも、アイバリットで検索すると、兵庫の動物病院ががんばってて、やたらと引っかかる。アイバリット先生は、↑というわけで、動物のお医者さんだ。ドリトル先生じゃないよ。この先生、とにかく動物が悲しいことになっているのは耐えられない。どこにだって出かけていっては、動物の病気や怪我を治療する。ある日のこと、アイバリット先生が寝ていると、電話がかかってきた。もしもし、アイバリットですが、と眠い目をこすりながら電話に出ると、向こうからすっかり困り果てて取り乱しまくっている女の声がする。わたし、くまですが、うちの坊やが元気がないんです。アイバリット先生は帽子をかぶり、黒いかばんに診察道具やら薬やらを詰め込むと飛び出した。今度はアフリカか、遠いぞ。先生、港から船に乗り、アフリカに着いた。病気で泣いてる坊やだよ。その子なら、山を7つ越えたところでさぁ。それは大変、急がなきゃ。先生、どんどこ山登り、山下り、さあさあ、残るはあの高い山。これはびっくり、まるで壁。ここであきらめたら、熊の坊やがかわいそう。先生、どんどこ崖のぼる。あっと危ない、足すべらした。まっさかさまに落ちてくよ。そこにワシが飛んできた。先生咥えて、背中に乗せた。アイバリット先生、どこ行くの?山の向こうで熊の子が、病気で泣いているんだよ。それなら、このままひとっ飛び。アイバリット先生、リムポポー、リムポポー。先生、先生、お待ちしてました、熊のかあさん、駆けてきた。おやおやなんともなさそうだ?いったい、どこが痛いのかな?お指が痛いのえーんえん。ああああ、これはトゲですな。するけど、がまんして。ほーら抜けたよ、大丈夫。坊やにっこり、嬉しそう。アイバリット先生リムポポー。いうような感じのお話というか、韻がのりのりの散文詩だったような(よく覚えてない)。#あさまししたいよりむぽぽー。童心社のいわさきちひろが絵を描いている箱に入ったでっかな本(童話集だと思うが)だった。童心社の本自体、3ページ分しかないしな。あ、あいばりっとせんせいだったのか。子供が自分で読む本だからひらがななのか、りむぽぽ〜。暗号の世界はとても深いので考えもしないようなことが行われているわけで、実装攻撃という手法を初めて聞いたときはびっくりしたものだ。耐タンパ性を有する機器というと、5年くらい前は、こじあけるとショートしてROMを焼くとかだったわけだが、今では実装攻撃に対しての耐性も求められてるらしいし(まだ調査中だったり)。いうようなことを考えると、絶対無いとはいえないわけだけど、それにしても、それなんてCompJapanという感じだな。保育園の時に、園で配布されたましたよ。[のんびりおっとりした、でも洗練された絵で、ぼくも大好きです。”あんたも大きくなったらアイバリット先生みたくならないといけないよ”と母親に言われました。ASP.NET実行時にコントロールの名前を得るのではない使い方、例えばブックマークレット用アンカータグ、にコントロール名を埋め込むことを考える。問題はコントロールのネストなどのUIの変化によって名前が変わることだ。ブックマークレットを想定した以上、これが問題となることは明らかだ。すれば、クエリに利用する名前はコードビハインドで実際のコントロールの名前(name属性値)にマップするのが良いだろう。楽しそうゴキブリ対処法の無駄なくわしさといきいきとした書き方がいいね。標準配備することが望ましいいや、そんなこたないって。初心者には少々困難を伴うかもしれない初心者って......。[ひょっとするとすでにご存じかもしれませんが、一応。[どうもありがとうございます。同一バージョンについてはupgradecodeを変えてはいけないってことですね。toruby#4とちぎに行ってきた。高橋さんといっしょに。外延でいくつか気づいた点。・西那須野には、公民館がすぐ近くに2つある・牧場が多いみたいだ。・5時くらいだと牛は牛舎にはいない(ただしサンプリング数は1つ)・東北自動車道は、ETCパラダイス。・目白駅の左横に謎の階段がある・三島通庸の銅像。治安維持法の先駆者にして明治圧政の象徴的な自由への弾圧者としては知ってたけどインフラ作りもしたという側面はあったらしい。......朝鮮半島での日本人の振る舞いの先駆者でもあったわけか。箱もの行政の先駆者とも言えるかも。銅像という表現にふさわしい人物であるな。