2009年2月12日木曜日

ペアプロ・ザ・ウェブ

小野さんという方のペアプログラミングについてのブログを拝見しました。

たしかに。実際、なぜこのペアプロにたどり着いたかと言えば、RoRで動的にテーブルを作るにはどうしたらいいか、つまり、MySQL AdministratorみたいなGUIアプリケーションのWebバージョンを(RoR)で作るにはどうしたらいいか、を漁っていて、でした。どこからともなくhttp://www.mamezou.net/mamenight/documents/mamenight024/mame_rails_xpjug.pdfというデータに行き着き、そのスライドにあったXPJUGをググって、やっぱりエクストリーム系か、と思ったところでペアプロが頭に浮かんで、ウェブ上でペアプロってどうなんてるんだろう?ということで目にしたわけです。

特にプレッシャーを利用するという点、非常に分かる気がします。なので勢いペアプログラミングしたくなりましたが、今思い出しましたが、実は過去に何度となくペアプログラミングってしてきてるんですよね。もちろん「ペアプロやりまーす」と宣言してやるわけではなく、極自然に。制御系って実機がないとデバッグできなかったりするわけですが、私はICEを使えない環境でROM焼きした経験からか、まず机上で解決しようとするわけです。逆にとりあえずステップ実行して、わけもわからずprint文を入れたら動きました、というのはなかなか受け入れられないわけです(気持ちはわかりますよ)。そんなとき、岡目八目がよく効きます。でもこれは立場の強さ(私が上)というプレッシャーも重要で、さもなくば相手の目を誤摩化して、その場をやり過ごそうとしたりするから困ったものです。XP流のペアプロの場合、二人の力関係と誠実さの問題をどう解決しているでしょうか。

それと、見られたい願望についてですが、私のように願望がマイナスなプログラミングが嫌いな人間には、どう作用するのでしょうか。しかもアジャイルが大の苦手ときている私には。。

実際これだけオープンソース全盛の時代にあっても、自分に直接関係ないコードを見たい人っていうのは、どれだけいるのかという問題もあります。有名なオープンソース(例えばLAMP)ならいざ知らず、私の書いたどうってことないプログラムに、誰も関心は持たないでしょう。

考えていてもしょうがないので、ウェブでやるなら、リアルタイムとそうじゃないのと2通りあると思うのですが、特にリアルタイムじゃないほうが面白そう。これはペアプロとは呼べないかもしれませんが、ウェブならではの面白さが隠れてそうな気がします。そのための積極的なツールは見当たらないので、レイヤをサポートしたコードビューに、コードそのものと、コードに対するコメントやこうした方がいいんじゃない?コードを書けたり、逆に誰かに書いてほしいコードに関する説明を先に書いておけるとか、そういうペアというよりいわゆるコラボなツール。Project Kenaiのような新しめのコードホストにぜひ取り入れてほしいです。

まあ...自分でやりますか。

2009年2月5日木曜日

良いわがまま

例えばある言語で誰かが使っていない変数やメソッドに小さいアイコン(黄色いビックリマークとか)を表示して欲しいと思ったとします。でも評価するタイミングの問題もあって、使うまで常に表示されてしまうのが気に入らないと思う人もいるでしょう。スペルチェックみたいな感じでプリビルド的に走って欲しいとか。

そういう「わがままさ」が肝です。

使っているか否かという判定は言語処理系が担当し、表示系がユーザの望むタイミングで取得してコードビューに反映とすると、処理系にもっと静的解析系の機能を入れる必要があります。なぜならもちろん現状のツールのように、ツール自身で翻訳系の処理を行なうことも出来ますが、それは無駄以上に整合性の問題があるからです。

ところが処理系自体に手を入れられないとそうも言ってられません。かといって処理系自体を作るかと言えばコード解析にバックエンドは(全ては)必要ない。であればコード解析に必要な部分だけ新規に作るか、オープンソース系であれば言語処理系を改造するかになります。いずれにしても結局は整合性がないコード解析ツールになっていきます。

そうならないためには、突き詰めれば、異なるアプリケーションのコードをどこまで共有できるかということであると同時に、どこまで細かい単位で共有できるか。それが、気に入る気に入らないを左右する問題と、整合性とを、同時に解決することになるのです。

もちろんコードのリポジトリは膨大になるかもしれません。ですがまあ、そんなこと気にしないで、どこまでやったらどうなるのか、見てみることにしましょう。これは概念交換機よりもっと古くて基本的な考えですが、いつか何とかしたいですね。

2009年2月4日水曜日

WebArchive Extractor

FirefoxでWebページを別名で保存すると、表示に必要なファイルをまとめて保存してくれるのはとても嬉しいのですが、Finderで表示したとき、アプリケーションの「パッケージの内容を表示」みたいに(Finder自身で)展開してくれてもいいのに、と思うのは私だけでしょうか。

みんなどうしてるんだろうということでググりました、ありました。ずばり、WebArchive Extractor.

1つの

いまのところ全てのアラートをthunderbirdにまとめるというのがベスト。といってもthunderbirdというのはメタファに過ぎません。代表アラートシンボルは1つでよく、アプリケーションも1つでいい、という話です。

あ、これは今書きながら思いついたことですが、アプリケーションが1つでいい、というのは(自分の中では)新しい! いままでコンピュータが1つになるという方向でモノを考えていましたが、アプリケーションが1つになるという考えの方が上手く行きそうです。概念交換機には、まさにうってつけです。

tablesorter

テーブルをJQueryを使って簡単に表示できるんじゃないかなと思ったら案の定、tablesorterとflexiGridが見つかりました。どちらもJQueryのプラグイン(JQueryに明確な”プラグイン”という基準や仕様があるかは分かりません)。まずはソートができてページネーション機能まで付いているtablesorterから行ってみたいと思います。

ところで、気がつけばGoogleドキュメントのガジェットが充実の一途(ろくに見てないで適当なこと言ってます)。こうしたガジェットをGoogle以外で使えるのかどうかわかりませんが、いずれにせよJavaScriptやFlashなどにより、小技の効いたアプリを簡単に作れるようになって来ているというのは本当に素晴らしいことです。

いずれオープンなショーケースとなるのはもはや時間の問題。在り方が問われます。結果を見てみましょう。

2009年2月2日月曜日

見たいんだけど見れない。でもRSSじゃないし。

気になるサイトも重たいと足が遠のく。そこでバックグラウンドでサイトにアクセスしスループットをスタッツするウィジェット。スループットの測定であることをサイト側で分かるようID(ブラウザ種別を修飾するとか)をつける。

似て非なるもの

メニューじゃなくて右メニュー。