2009年9月17日木曜日

dojox.gfx の createImage で画像が表示されない

dojox.gfx の createImage を使って画像を表示できないという問題の解決方法をメモしておきます.

surface = dojox.gfx.createSurface(parentNode, 400, 300);
image = surface.createImage({x: 0, y: 0, width: 400, height: 300, src: "image.jpg"});
image.rawNode.removeAttribute("fill");


[1]のページを手掛かりに読み進めてみると,上記の関数によって作られる SVG の要素に値が none の fill 属性が設定されていることが原因のようです.この問題はすでに解決済みのようですが,正式版(バージョン1.3.2)にはまだ反映されていないようです.

そういうわけで,とりあえず,上のコードの3行目を追加してみました.これで原因となっている属性を消せるので,画像が表示されるようになります.

[1] Surface createImage fails on Firefox 3.5

2009年9月13日日曜日

Eclipse Galileo に Subversive をインストールする方法

Eclipse Ganymede に Subversive をインストールしたので,その手順をメモしておきます.
  1. 「Help」 -> 「Install New Software...」を選択
  2. 「Work with」で「Galileo - http://download.eclipse.org/releases/galileo」を選択
  3. 「Collaboration」 -> 「Subversive SVN Team Provider (Incubaion)」を選択
  4. 「Next」を選択
  5. 「Next」を選択
  6. 「I accepted the terms of the license agreements」を選択
  7. 「Finish」を選択
  8. 「Help」 -> 「Install New Software...」を選択
  9. 「Add」を選択
  10. 「Name」に「Subversive SVN Connectors」と入力
  11. 「Location」に「http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/」と入力
  12. 「OK」を選択
  13. 「Subversive SVN Connectors」->「SVNKit 1.3.0 Implemenation (Optional)」を選択
  14. 「Next」を選択
  15. 「Finish」を選択
  16. 「Yes」を選択

[1] Eclipse Galileo (3.5)にSubversiveをインストールする方法

2009年9月12日土曜日

Dojoで独自モジュールのクラスを作成する方法

Dojoで独自モジュールのクラスを作成する方法をメモしておきます.なお,以下の内容は,Dojoライブラリに含まれるdojo.jsを${APPHOME}/js/dojo/dojoに配置した状況で,${APPHOME}/jsにmizomemoモジュールのHogeHogeクラスを定義し,そのインスタンスを${APPHOME}/hogehoge.html内で生成する場合の説明です.

1. ${APPHOME}/js/mizomemo/HogeHoge.js の内容を次のようにする.

dojo.provide("mizomemo.HogeHoge");

dojo.declare("mizomemo.HogeHoge", null, {
  // フィールドやメソッドを定義する
});


2. ${APPHOME}/hogehoge.html の内容を次のようにする.

<script type="text/javascript" src="js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true, modulePaths: {'mizomemo': '../../mizomemo'}"></script>
<script type="text/javascript">
<!--
dojo.require("dojo.parser");
dojo.require("mizomemo.HogeHoge");

dojo.addOnLoad(function() {
  var hogehoge = new mizomemo.HogeHoge();
});
// -->
</script>


[1] Dojoのモジュールシステム

2009年6月6日土曜日

JNIにてjava.lang.UnsatisfiedLinkError

「java.lang.UnsatisfiedLinkError」という例外に遭遇した場合の対処方法をメモしておきます.

この例外は,JNIを通して利用するDLLが環境変数PATH等にない場合に生じるみたいです.したがって,解決方法は以下のようになります.

・環境変数PATHにDLLが置かれたディレクトリのパスを追加する.

[1] JNIメモ(Hishidama's Java native interface Memo)

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

2009年2月28日土曜日

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

Fedora 10上で WordPress 2.71をインストールしたのですが,XML-RPC での投稿がうまくいかなくなってしまいました.いろいろ調べた結果,どうもその WordPress が使っている libxml2 というライブラリに不具合があるみたいです.詳しい内容は以下のサイトで書かれています.

問題が解消するまで,前に使っていた Roller に戻ろうかな.うーん.どうしよう.

[1] Problems With libxml2 For WordPress XML-RPC Users
http://josephscott.org/archives/2008/12/problems-with-libxml2-for-wordpress-xml-rpc-users/

2009年2月27日金曜日

Subversionにてリポジトリ内のディレクトリの配下にあるファイルの一覧を表示する方法

Subversionにてリポジトリ内のディレクトリの配下にあるファイルの一覧を表示する方法を以下にメモしておきます.

svn ls 表示したいファイルが置かれたディレクトリのURL

2009年2月10日火曜日

yum にパッケージを自動更新させるための方法

yum にパッケージを自動更新させるための方法を以下にメモしておきます.

su -
yum -y install yum-fastestmirror
yum -y update
yum -y install yum-cron
service yum-cron start
chkconfig yum-cron on
exit


[1] Fedora 10初期設定 - Fedoraで自宅サーバー構築
http://fedorasrv.com/fedora10-init.shtml

2009年1月30日金曜日

Webアプリケーション起動時にサーブレットを開始する方法

Webアプリケーション開始時にサーブレットを開始する方法をメモしておきます.

servlet 要素内に load-on-startup 要素を記述します.load-on-startup 要素の内容には開始する順番を表す0以上の整数値を指定します.小さい値ほど早く開始されます.

<web-app>
  <servlet>
    <servlet-name>servlet</servlet-name>
    <servlet-class>hogehoge.Servlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
</web-app>

2009年1月29日木曜日

Tracで「Permission denied」と表示されるエラー

Tracで「Permission denied」と表示されるエラーに遭遇したのですが,その解決方法をメモしておきます.

vi /etc/httpd/httpd.conf/trac.conf
----------------------------------------
<Location /trac>
  SetEnv PYTHON_EGG_CACHE /tmp # <-追加
</Location>
----------------------------------------


ちなみにエラーメッセージは以下のような感じです.

The following error occurred while trying to extract file(s) to the Python egg
cache:

[Errno 13] Permission denied: '/.python-eggs'

The Python egg cache directory is currently set to:

/.python-eggs


[1] Tracのインストールでハマる (.python-eggsのパス)
http://d.hatena.ne.jp/mahata/20080624/1214284997