2009年5月29日金曜日

dijit.Tooltipを動的に作成する方法

dijit.Tooltipを動的に作成する方法をメモしておきます.

var nodeId = "";
tooltipElement.innerHTML = "test";
var tooltip = new dijit.Tooltip({connectId: [nodeId]}, tooltipElement);
tooltip.startup();


nodeIdは,ツールチップの対象となるノードのIDです.このノードをポイントすると,ツールチップが表示されます.
tooltipElemenは,ツールチップ本体です.
connectIdには,ツールチップの対象となるノードのIDを収めた配列を指定しないとうまく表示されません.

connectIdの指定方法には,まんまとはまってしまったのですが,ページ[1]のとおりにするとうまく解決しました.感謝です.

[1] [solved] dijit.Tooltip doesn't work in 1.0 ???

2009年5月19日火曜日

情報距離と圧縮距離

今月の人工知能学会誌の文献紹介[1]で興味深いキーワードを目にしたので,メモしておきます.

そのキーワードとは,情報距離と圧縮距離です.両者は,「二つのデータ間の距離を圧縮の度合いによって測ろう」という考え方のもとで使われる尺度のようです.

ちなみに,文献紹介では,Helmerという方の論文[2]が紹介されています.論文では,構造的な類似を求めるのに上記の尺度を使っているみたいです.

[1] 相澤 昌子: 文献紹介, 人工知能学会誌, Vol. 24, No. 3, pp. 458-459, 2009-05
[2] Helmer, S.: Measuring the structural similarity of semistructured documents using entropy, Proceedings of the 33rd International Conference on Very Large Data Bases, pp. 1022-1032, 2007

2009年5月10日日曜日

JavaScriptにおいてCSSのプロパティの設定ができない問題

CSSのプロパティに数値が設定できないという問題に遭遇しました.

var element = document.createElement("div");
element.style.width = 100;
element.style.height = 100;


その問題とは,上記のように要素の幅と高さに数値を設定しようとしてもできないというものです.

半日つぶした結果,それらの数値に単位をつけていないことが原因(FireFoxの問題みたい)だということがわかりました.

そういうわけで,上記のコードを下記のように修正すると,思った通りの結果になります.

var element = document.createElement("div");
element.style.width = 100 + "px";
element.style.height = 100 + "px";


[1] FireFoxの標準モードでは、エレメントのstyle.width,heightに数値での設定が出来ない, http://d.hatena.ne.jp/onozaty/20060729/p2

2009年5月8日金曜日

JavaScriptで実数を整数に変換する方法

JavaScriptで実数を整数に変換する方法をメモしておきます.

var integer = Math.ceil(realNumber); // 切り上げ
var integer = Math.floor(realNumber); // 切り捨て

2009年4月9日木曜日

JavaScriptで数値を文字列に変換する方法

JavaScriptで数値を文字列に変換する方法をメモしておきます.

var string = new String(1);

2009年3月8日日曜日

JavaScriptからWordPressへコメントを投稿する方法

JavaScript から WordPress へコメントを投稿する方法をメモしておきます.
  • XML-RPC には,JavaScript のライブラリである Mimic を使用
  • コメントの投稿には,WordPress独自のAPIである wp.newComment を使用
  • wp.newComment のパラメータは,ブログID,ユーザ名,パスワード,エントリID,コメントに関する情報(配列ではなく,オブジェクト)

コードで記すと以下のようになります.

var comment = new Object();
comment.content = "コメント";
var request = new XmlRpcRequest(url, 'wp.newComment');
request.addParam("ブログID");
request.addParam("ユーザ名");
request.addParam("パスワード");
request.addParam("エントリID");
request.addParam(comment);
var response = request.send();


[1] Mimic
http://mimic-xmlrpc.sourceforge.net/
[2] wp.newComment
http://codex.wordpress.org/XML-RPC_wp#wp.newComment

2009年3月4日水曜日

[続]XML-RPCでのWordPressへの投稿に問題があるみたい

XML-RPCでのWordPressへの投稿に問題があった件の続きです.

この問題は,PHPが使っている libxml2 ライブラリの不具合に起因するようなのですが,バージョン2.7.3では,それが解消されているそうです[1].

そこで,Fedora の libxml2 のバージョンを調べてみると,2.7.3でした.それでも問題は起こっているので,今度は PHP が使っている libxml2 のバージョンを調べてみました(phpinfo()で).そうすると,その時点の PHP では2.7.1の libxml2 を使っていることがわかりました.

そういうわけで,PHP を自前でコンパイルして,インストールしてみました.結果はグッドです.ネットの情報の通り,2.7.3の libxml2 を使うと,問題が解消しました.よかった.

ちなみに,B2Evolutionというブログソフトウェアもインストールしてみたのですが,これはPHPで実装されているので,WordPressと同様の結果になりました(XML-RPCで正しく投稿できませんでした.PHPが悪いので当然なんですけど.後で気づきました).

[1] PHP と libxml2 の関係
http://www.mail-archive.com/freebsd-users-jp@jp.freebsd.org/msg03301.html