2008-01-01から1年間の記事一覧

Firefox 3 と CakePHP

最近何だか相性が悪いみたい。CakePHP 1.2RC2 + Firefox 3 でここ半年ほど利用していたのだが、いつからか、セッションが切れる現象が起こっている。一方、IE7ではまったく問題なく動作している。 Firefox 3 は頻繁に更新しているのだが、Firefox の仕様変更…

ウェブで画面遷移と同時にファイルダウンロードする

sourceforge などのダウンロード画面では、"Downloading..." と表示されると同時に、 ダウンロードのダイアログが表示される。どうやってるのかな?と思ったのだが、 ダウンロード先の URL を、インラインフレームに記述しているだけだった。例:downloading…

bash の引数を配列にセットする

引数を配列にセットするには、 args=("$@") でいいらしい。サンプル(test.sh): args=("$@") argn=$# for i in $(seq $argn) do echo ${args[$i-1]} done 実行例: $ bash test.sh "This is a pen." "Hello World." This is a pen. Hello World.

WindowsXPにて、ファイルのプロパティで「セキュリティ」タブを表示させるには

簡易ファイルの共有を無効にすることで利用できる。http://support.microsoft.com/kb/307874/ja [スタート] ボタンをクリックし、[マイ コンピュータ] をクリックします。 [ツール] メニューの [フォルダ オプション] をクリックし、[表示] タブをクリックし…

開いているポートを調べるには

http://builder.japan.zdnet.com/news/story/0,3800079086,20385203-2,00.htm より、 netstat -lnptu

ロードバランサー経由でSSL通信

以下の構成の場合、アプリケーションサーバはただHTTP通信を行っているのと何ら変わりない。 ブラウザ -> (SSL通信) -> ロードバランサ -> (HTTP通信) -> アプリケーションサーバ 課題:アプリケーションサーバでブラウザがSSL通信中かどうかを知りたい。 ア…

synergy でマウスとキーボードの共有(その2)

「半角/全角」キーを利用するには、パッチが必要らしい。http://naname.jp/index.php?Synergyもしくは、Windows側で「IME-オン/オフ」を 「Shift + Space」など別のキーに割り当てると良い。http://yoosee.net/d/archives/2006/12/05/004.html

起動スクリプトの設定

Debian の場合、update-rc.d というコマンドを利用する。(ちなみに RedHat 系だと chkconfig) /etc/init.d/tomcat を追加する場合: # update-rc.d tomcat defaults 90 10 Adding system startup for /etc/init.d/tomcat ... /etc/rc0.d/K10tomcat -> ../ini…

Redmine のチューニング計画

パフォーマンスがいまいち。ベースが Rails だからっていうのが大きいかもしれないが、できる限りチューニングしていきたい。まずは、データベースから。パフォーマンスを考えるなら PostgreSQL より MySQL の方がいいのかもしれない。PostgreSQL のテーブル…

Debian (etch) に Redmine 0.7.3 インストール (実運用編)

前回は Redmine を単体で動かしてみるだけだったが、今回は 運用に耐えられるように Apache + Passenger + PostgreSQL で Redmine を動かしてみる。 パッケージのインストール できる限り Debian のパッケージで済ませたい。 aptitude install apache2 postg…

任意の関数を指定する。

PHP

これはどう呼んだらいいのかな? コールバック?*1 PHP では、指定した関数を変数を介して実行することができる。 Cの関数ポインタともなんか違うような気がする。う〜む。以下の例では、hoge() と fuga() を $f を介して実行している。

CakePHP 1.2 でアクション名にPHPの予約語を使う(未確認)

アクション名が PHP の予約語だった場合は、routes で別名に書き換えることで対処できるかも?(未確認)例えば、/controller/list と Controller::viewList() というメソッドを関連付けてやるには、 'viewList')); http://book.cakephp.org/ja/view/542/Rout…

CakePHP で 任意の View を指定する方法

コントローラの $this->render() の 第3引数でファイル名を直接指定できる。 $this->render(null, null, VIEWS.'foo'.DS.'bar.ctp')この時に、定数 "VIEWS" を使うと表記がすっきりする。

CakePHP で 自動的に View を呼ばない方法

$this->autoRender = false とすれば、View が自動的に呼ばれなくなる。 autoRender = false; } }

CVS のキーワード置換しないオプション

-ko オプションを使うといいらしい。Subversion の場合、デフォルトではキーワード置換しないようになっているので心配無用。CVS や Subversion では、$Revision: $ などと記述しておくと、コミット時にそのときのリビジョンの値に置換してくれる。たとえば…

PHP の elseif/else if

PHP

http://php.net/manual/ja/control-structures.elseif.php より。"elseif" でも "else if" でもほぼ同じ動作だが、一つだけ違う点がある。パースエラーになる例:

CakePHP で Model::find() の結果を加工

PHP

Model::find() の結果を、モデル名のキーを取り除いた配列に加工したい。配列の加工は、Set クラスを使うと便利らしいが、好みの形にならないので、色々悩んだ結果、array_map() と、array_shift() を組み合わせると良いことが分かった。 User->find('all');…

PHPの閉じタグは書かない方がいい

PHP

プログラムのみのコンテンツを含まない PHP ファイルの最後には、閉じタグ(?>) を書かない方がいい。(自分が入れた)変な改行コードや空白に悩まされるかもしれない。

CakePHP を利用する際の DocumentRoot

cake (=CakePHP を展開したディレクトリ)や、 cake/app 以下を Apache の DocumentRoot に設定しても動作するようになっているが、 cake/app/webroot がベスト。

war ファイルを展開する

jar -xvf hoge.war

画像の一部を別ファイルに保存する。

Java Image I/O API ガイド を読みながら、プログラムを作ってみた。gif 形式の画像の左上4分の1の部分を png 形式で保存している。 import java.awt.image.BufferedImage; import java.awt.Rectangle; import java.io.File; import java.util.Iterator; imp…

CakePHP 1.2 で複数チェックボックス(その3)

http://book.cakephp.org/ja/view/193/options-multiple「'multiple' => true」は、知っていたが、 「'multiple' => 'checkbox'」なるものがあるとはしらなんだ。 input("User.hobby", array('type' => 'select', 'multiple' => 'checkbox', 'options' => ar…

Tomcat 6.0.18 のロギングの設定

標準のロギングAPIと同様に設定ファイルを指定する。 CATALINA_OPTS="-Djava.util.logging.config.file=${CATALINA_HOME}/conf/logging.properties"logging.properties の雛形が conf ディレクトリに用意されているので、これをカスタマイズして使う。

CakePHP のオンラインマニュアル

PHP

CakePHP のオンラインマニュアルは日々進化してる。日本語ページでは、翻訳が追随していない場合は、「This text may be out of sync with the English version」って表示されるようになったみたい。これは便利かも。ほかにも、英語ページが Pending 状態で…

Ubuntu 8.04 に VMWare Server 1.0.7 のインストール

遅ればせながら、VMWare Server を1.0.7 にバージョンアップしてみた。特に注意することは、古いバージョンは、vmware-uninstall.pl でアンインストールすること。うっかり上書きしようとすると面倒この上ないことになる。古いバージョンをアンインストール:…

Tomcat Native library とは?

catalina.out に以下のログが出力されている。何だろう?と思った。 The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: う〜む。どうやらそういうライブラ…

ログギングの設定ファイルの指定

Java のロギングAPIは、デフォルトでは、$(JAVA_HOME)/jre/lib/logging.properties を参照する。以下の様に、コマンドラインオプションで設定ファイルを指定できる。 java -Djava.util.logging.config.file=logging.properties クラス名

サンプルプログラム

何のために書いたか忘れてしまったが、念のため残しておく。 class HogeNumber def initialize(v) @value = v end def *(other) @value * other end def coerce(other) if Integer === other then [other,@value] else [Float(other),Float(@value)] end end…

cron 実行時の PATH

cron から呼び出されたスクリプトには、/usr/local/bin にパスが通っていないことが分かった。今まで、スクリプトからの外部コマンドの実行に失敗していた・・・。/etc/crontab の設定にはちゃんとPATHが書いてあるのだが、どういうわけか引き継がれないらし…

Tomcat 6.0.18 の仕様変更

Tomcat 6.0.18 にバージョンアップしたところ、以下のような技が使えなくなった。 <jsp:include page="<%= "sub.jsp" %>"> <jsp:param name="attr" value="<%= "a" + "b" %>"/> </jsp:include>どうもJSP 2.0の仕様に準拠したためエラーになる様だ。 https://issues.apache.org/bugzilla/show_bug.cgi?id=45015以下のようなエスケープが必要らしい。 <jsp:include page="<%= \"sub.jsp\" %>"> </jsp:include>