2007/01/31

PHP勉強会

PHP勉強会で、rhacoバージョンのWorkStyleの話をしてきた。
PHP自体が好きかと言われると微妙だけど、rhaco自体はなかなかいい感じ。
Javaにも早くGenericViewを取り入れねば。


発表資料:workstyle-rhaco.pdf

2007/01/23

Oracleのよくわからないチューニング

Oracle上のIN句を使っているSQLで、実行計画がIN句の引数毎に実行計画が枝分かれしてしまっている場合、ANALYZEコマンドで実行計画が改善されることがある。

-- 表の全データのうちの10%を使用して、統計情報を作成
ANALYZE TABLE テーブル名 ESTIMATE STATISTICS SAMPLE 10 PERCENT;

-- 表の全データを使用して統計情報を作成(時間がかかります)
ANALYZE TABLE テーブル名 COMPUTE STATISTICS;

-- 表の統計情報を削除する
ANALYZE TABLE テーブル名 DELETE STATISTICS;

株式会社エスロジカル

INDEXのANALYZEもある。
ANALYZE INDEX インデックス名 VALIDATE STRUCTURE

あー、でもなんで改善するのかよくわかんね。

2007/01/22

WorkStyle 1.0b

WorkStyleのversion1.0bをリリースしました。
主な変更内容は

  • タスク一覧に全件表示機能を追加。
  • Groovyを1.0に更新。
  • 細かい修正
です。

Groovyは1.0にアップデートしたけれど、
正直なところEclipseのGroovyプラグインがまだまだ完成度が低い状態なので気持ちよく開発できる状態ではないため、全部Javaに戻してしまおうかどうか思案中。
ちなみに、不満に思っているのは下記の点。
  • ソース補完がまだまだ
  • リファクタリング機能がない
  • デバッグ時、ステップ実行に入れない
  • Groovyプラグインのコンパイルまわりがまだあるべき姿を模索中な感じ
ソースがシンプルになるのは嬉しいんだけどなぁ。
JavaがGroovyの文法で書けるようにならないだろうか。
型推論とクロージャさえ導入すればなんとかなる気がするんだが。

Subversionから変更ログを取得する方法

Subversionでは日本語で変更コメントを書いている場合、UTF8に変換され保存される。
日本語コメントを含むSubversionのログをMac OS Xで取得する方法は下記の通り。
# export LANG=ja_JP.utf-8
# svn log http://workstyle.svn.sourceforge.net/svnroot/workstyle/workstyle/trunk
リビジョンを指定したい場合は
# svn log -r 140:154 http://workstyle.svn.sourceforge.net/svnroot/workstyle/workstyle/trunk

2007/01/21

WorkStyleモックアップ更新

WorkStyleのモックアップversion 1.2.3をリリースしました。
今回からはリリースの場所をsourceforge.netに変更たので注意してください。
既にソースはsourceforge.netのsubversionを使って管理していましたが、これでリリースも同一箇所にまとめたことになります。

今回の変更内容は以下の通り。

  • タスク一覧に全件表示機能を追加
  • Ajax Pagesが余計なファイルをロードしようとしてしまうバグを修正

2007/01/15

アルミの船を空中に浮かべる方法


空気より重く、アルミより軽い気体を使えば良い。
水より重い気体があれば、「天空の城ラピュタ」のように空中に湖を作ることもできるだろう。

--
追記:
間違えた。アルミより軽い必要はない。

2007/01/14

iPhoneは携帯電話じゃない、ケータイだ

iPhoneの一番の特徴は電話機能があることだ。
ただし、iPhoneは電話をベースに+αしていく形で作られたものではない。
スティーブ・ジョブズがMacworld SF 2007のキーノートで「killer app is making calls」と言ったのは電話であることがiPhoneの必須条件ではなかったからだ。
電話機能はiPodやメール、ブラウザと同レベルのアプリの一つにすぎず、もっと言えばGoogleマップやカレンダーなんかとも同レベルの機能にすぎない。
キーノートでのプレゼンの順番がiPod→Phone→Internetだったのも、iPhoneが電話である、という印象を少しでも薄めるためだ。一番目では残りがおまけに見えてしまうし、三番目では真打ちになってしまう。Phoneに特異な位を与えずにすむのは二番目だけだ。
iPhoneの特徴を三つにまとめたことにキリスト教の三位一体が影響を与えているのは間違いないが(少なくとも欧米における全ての三という数字に影響を与えているからね)、父と子と聖霊が全て同格であることから電話機能の特異性の軽減を期待しただろうと推測したり、三位一体である神を人間に伝えたのが二番目に配置されている子であるキリストであることからPhoneにジョブズが何を期待しているかを推定したりするのは、端的に言って、ただの考え過ぎだ。

そこまでしてジョブズがPhoneの特異性をなくしたかったのはなぜか?
それは実在するiPhoneではなく、可能性としてのiPhoneを伝えたかったからだ。
何か新しいモノを作るということには、二つのレベルがある。
一つは、 潜在的なモノを現実的なモノにすること。もう一つは可能的なモノを実在するモノにすること(※1)。前者は現実を広げ、後者は実在を広げる。今回Macworldで発表されたiPhone自体は、UI(機能も含めての意味でのUI)が圧倒的に好みであることを覗けば、例えばX01HTのようなスマートフォンやiPod、ZaurusなどのようなPDAと比べてどの程度実在世界を広げたかというと、それほどたいしたことはない。単にスーパースマートで超かっこいいだけだ。それだけでもアメリカ移住したくなるほどだけど。
だけどそれでも、それはiPhoneが広げた現実ほどにはたいしたことがない。
iPhoneは「モバイルなインターネットと電話網に接続することができる情報機器」である。携帯電話はこの定義の可能性の一つでしかないし、PDAも同様だ。この原点まで戻ることによって分かるのは、iPhoneが電話網を再発見したということである。電話機と電話網は常に一体だったため、これまでは電話機の可能性が電話網の可能性だった。iPhoneとほとんど同じ機能を持つスマートフォンも結局のところ電話機の+αとしてPDAがついたものである以上、電話網の可能性を広げることはなかった。だが、電話機でないiPhoneには、電話網を新しい未知のネットワークとして見ることができる。だからこそ、iPhoneは電話を再発明しなくてはならなかった。いまとなっては電話網はもはや電話にしか使われないものではない。まだない何かによって使われうるネットワークなのだ。まだ今は何ができるかも分からないし、実際にはほんの小さな可能性かもしれない。だけども、電話網は例えばhttpほど可能性を酷使されてきただろうか?人間に対して音声を送るプロトコルとしては使われてきたけど、人間以外のものにはどの程度送られている?音声の可能性はどの程度掘り下げられてきた?などと、ぱっと思いつくだけでも結構な広がりがありそうだ。
また、インターネットと電話網というネットワーク同士を接続する機器としての可能性もある。キーノートではGoogleマップから電話網へのハイパーリンクをデモしていたが、他にも道はあるだろう。今回、iPhoneにVoIPが載っていないことをいぶかしむ人もいたが、例えばSkypeがインターネットの世界から、サーバ(の裏の電話網への接続機器)を通してようやく電話網に出られるのに比べて、iPhoneは直接電話網につながっている。わざわざそんな遠回りをすることにどれだけの優先度があるだろうか?それよりは例えばPhoneからは電話網もVoIPや音声チャットも同一に扱えるようなアプリを考えた方がよかないか?キーノートでは個別にかけられた二回線の通話をつなげることで三者通話に移行するデモをしていたが、別に三者とも電話である必要はない。ちなみについでに言っておけば、Life is beautifulが出した問題

ここで問題である、アップルはいったい全体、なんでiPhoneを使って直接iTune Music Storeから購入できるようにしなかったのだろうか?

 ジョブズは、自分が「これは絶対に必要」と思った機能を落とすようなことはしない。つまりこれは、「iPhoneからのコンテンツの直接購入」と いう機能を、ジョブズが(1)そもそも必要ない、と感じたか、(2)あった方が良い機能だがプライオリティは低い、と考えたという証拠である。
に対して、「Macを母体としたエコシステムに組み込みたいと考えているから」と考えている人が結構いたが、その人たちはジョブズがなんでApple Computer Inc.をApple Inc.にしたと考えているのだろうか?もうComputer中心じゃないよと社名を変えてまで宣言しているというのに。

※1 潜在的←→現実的、可能的←→実在的。二つの軸は直行する。つまり潜在的で可能的なもの、潜在的で実在的なもの、現実的で可能的なもの、現実的で実在的なものがある。詳しくは「分裂分析的地図作成法」参照。「存在論的、郵便的—ジャック・デリダについて」の解説の方が分かりやすい。というか分裂分析的地図作成法はちゃんと読み切れてない…。