« 2006年09月 | メイン | 2006年11月 »

2006年10月31日

IPAフォーラム 2006 での講演スライド

 先日 (2006年10月24日) に開催されたIPAフォーラム2006 (OSS コンファレンス) にて「コミュニケーションソフトウェアを創るということ ~OSSの可能性」というタイトルでお話をさせていただきました。賛成反対を含め、刺激的な話をしようと思ったのですが、短すぎたのは失敗 orz

 その際に使用したスライドをアップします。よろしければごらんください。


[最初から] [戻る] [次へ]

投稿者 kazuho : 2006年10月31日 18:09 | コメント (1) | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月23日

JavaScript のベンチマーク

 Japanize 等の関係で、最近 JavaScript のベンチマークを取る機会が増えてきました。今までは毎回ワンライナーを書いて計測してきたのですが、そろそろめんどくさくなってきたので、 HTML Form にしてみました。

続きを読む "JavaScript のベンチマーク"

投稿者 kazuho : 2006年10月23日 12:01 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月20日

re: javascript vs perl - オブジェクトのメモリー効率

というわけで、間違っていることを実証してみました。

javascript vs perl - オブジェクトのメモリー効率 - 404 Blog Not Found

 言語仕様のメモリ効率性を考えるのにあたって、(メモリの潤沢な環境向けの) 特定の実装間の比較をしても意味がないと思います。「perl のソースコードよりも SpiderMonkey のソースコードのほうが小さい」というような優劣の比較に (ほとんど) 意味がないのと同じです。

 また、シンセティックなベンチマークもどうかと思います。たとえば、弾さんのコードをちょっといじれば、以下のようにプロトタイプ指向 OO のメモリ効率の良さを強調したテストを作ることだってできるわけです (5つのメンバ変数のうち4つがデフォルト値であるようなオブジェクトの大量生成)。

続きを読む "re: javascript vs perl - オブジェクトのメモリー効率"

投稿者 kazuho : 2006年10月20日 04:31 | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月19日

JavaScript は、なぜプロトタイプベースなのか

 決して専門ではないので、以下、間違っていたら指摘してください。

 JavaScript がプロトタイプベースであることに対する一番妥当な説明は、クラスベースのオブジェクト指向言語よりもプロトタイプベースの言語のほうが、ランタイムの構造が単純になり、かつ、メモリ使用量が小さくなるからでしょう。

続きを読む "JavaScript は、なぜプロトタイプベースなのか"

投稿者 kazuho : 2006年10月19日 13:56 | コメント (1) | トラックバック (2) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月18日

JavaScript を学ぶ上で読むべきウェブサイト

 JavaScript について議論する際、良く挙げられる参照文献は ECMA-262 (日本語版) です。

 しかし、どちらかというと ECMA-262 は JavaScript の処理系を実装する人に向けた文書なので、JavaScript を使いたい人には向きません。

 私は、 JavaScript のユーザーには、mozilla developer center

が良いのではないか、と思っています。

 Mozilla のドキュメントかよ、と思うかもしれませんが、これらはいずれも Netscape DevEdge から引き継がれた、由緒正しき文書です。

 たとえば、オブジェクトの継承についても、理論的な説明に始まり、Plain Old JavaScript でどう書けばいいのか、丁寧に説明してあります 。もちろん、実際に JavaScript を書く際には prototype.js 等のラッパーを使ってもいいとは思いますが、元来のやり方を理解しておいて損はないと思います。

 また、古い JavaScript バージョンからの変更点についても書いてあるので、互換性を確認する際にも役に立ちます。

 なお、より古い JavaScript/1.3 当時の文書は、docs.sun.com に転がっています。 (Client-Side JavaScript Guide, Client-Side JavaScript Reference)

 人が何で勉強しているかは知らないので外しているかもしれませんが、参考まで。

2006/10/19追記: Core JavaScript 1.5 Guide の邦訳は、今月翻訳完了したばかりのようですね。訳者さんすごい。

投稿者 kazuho : 2006年10月18日 16:47 | コメント (2) | トラックバック (2) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

JavaScript の String 型を継承する

 javascript - プロトタイプ的継承 (javascript - プロトタイプ的継承) について。

 結論から言うと、String 型も継承っぽいことができます。こんな感じ。

function String2(s) {
  this._s = s;
}
String2.prototype = new String();
String2.prototype.valueOf = String2.prototype.toString = function () { return this._s.toString(); }
String2.prototype.x = function (c) {
   var s = '';
   while (c--) s += this;
   return new String2(s);
}
var s2 = new String2("abc");
alert(s2.x(2).split(''));

 実体の持ち方が多少変わっちゃいます厳密に言うと継承とは違うんですが、valueOf と toString を除く全ての String.prototype.XXX は、任意の型を this として呼び出せるので、このように書くことができるのです。そのための注が、ECMA の各メンバ関数の説明にだらだらとついています。

14:32 変更: より直截な例に変更。

投稿者 kazuho : 2006年10月18日 14:14 | トラックバック (2) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月17日

OSS コンファレンスで講演

 IPA フォーラム 2006 の OSS コンファレンスで講演をすることになりました。タイトルは「コミュニケーションソフトウェアを創るということ ~OSSの可能性」

IPA フォーラム 2006

 何を考えながら Japanize を作っていたのか、また、今何を思っているのか、ということを中心に話をさせていただくつもりです。

 入場料は無料 (ただし事前登録が必要) です。ご興味をおもちの方がいらっしゃいましたら、お越しくださいませ。

投稿者 kazuho : 2006年10月17日 12:15 | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月16日

JavaScript で Generic Programming

 再帰呼び出しのスタック間でデータを共有する場合は、以下のように仮引数を使わなければならない。

IT戦記 - Perl で再帰呼出し時のスタック間データ共有

 について、弾さんがクロージャを使って解決する方法を提示されています。それはそれでいいと思うのですが、JavaScript の場合は、もうひとつの書き方があります。Function.prototype.call を使う手です。

続きを読む "JavaScript で Generic Programming"

投稿者 kazuho : 2006年10月16日 11:23 | トラックバック (1) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月13日

Japanize 拡張機能 0.7.1 リリースのおしらせ

 本日 (2006年10月13日)、Japanize の拡張機能をバージョンアップしました。主な変更点は以下の2点です。

  • 「翻訳データの更新方法」が「定期的に更新」に設定されている場合に、「Japanize: [Exception... "Component returned failure code: 0x80004005...」というメッセージが表示されることがある問題を修正しました
  • Google Docs のような <iframe style="display:none"> タグにデータを読み込んだ後にスタイル属性を変更して表示するケースにおいて、翻訳がなされない問題を修正しました

インストール方法:
 バージョンアップした拡張機能をインストールするには、Japanize のウェブサイトからダウンロードするか、Mozilla Firefox の「ツール」メニューから「機能拡張」を選択し、「更新を確認」をクリックすると出現する「今すぐ更新」ボタンを押してください。

extupdate.jpg


注: Mozilla Firefox において、 style="display:none" に設定された iframe では DOMContentLoaded イベントが発生しないようです

投稿者 kazuho : 2006年10月13日 17:09 | コメント (16) | トラックバック (0) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月05日

Japanize 拡張機能バージョンアップのおしらせ

 本日 (2006年10月5日)、Japanize の拡張機能をバージョンアップいたしました。

Google Spreadsheet の画面写真
例: Google Spreadsheet

 新しいバージョンでは、下のような翻訳に関わる機能が追加になっています。これにより、Google Spreadsheets のようなウェブアプリケーションも翻訳できるようになりました。

続きを読む "Japanize 拡張機能バージョンアップのおしらせ"

投稿者 kazuho : 2006年10月05日 17:20 | コメント (5) | トラックバック (2) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

2006年10月02日

Ajax な HTML ページのソースコードを表示する

 勢いだけで書く bookmarklet 第2弾です。

 多くのウェブブラウザでは、メニューからウェブページのソースコードを表示することができます。しかし、この方法で表示される HTML はダウンロード時のデータなので、Ajax を多用しているウェブサイトのコードを解析する際には役にたちません。

 Ajax により改変された、現在表示中の HTML のソースコードを確認するには、以下のようなブックマークレットを使うと便利です

 javascript:void(window.open('', '', 'scrollbars=yes,dependent=yes').document.write('<plaintext>' + document.body.innerHTML))

 Japanize の翻訳データ作成等にお使いいただければ幸いです。

注: ただし、表示されるのは <body> タグ内のみとなります

投稿者 kazuho : 2006年10月02日 11:55 | コメント (1) | トラックバック (4) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク