rotatelogs を使う
Tomcatが動くサーバがお亡くなりになったので再構築を行った。
ログのローテーションに rotatelogs を使っているようなのだが、パスに通っていない。
今回壊れなかった方のサーバを見ると、/usr/sbinにあったのでコピってみたが以下のメッセージが出て動かない。
/usr/sbin/rotatelogs: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
Apachで特定のURLにBasic認証をかける
ネットに転がっているサンプルだとディレクトリだったり拡張子だったりの指定で、URLを対象にしたものがなかったのでメモ
<LocationMatch "/aaa/bbb/ccc"> AuthType Basic AuthName "Secret Zone" AuthUserFile /etc/httpd/.htpasswd Require user xxx </LocationMatch>
chromeでoptionのclickをbindしても反応しない
2つのリストを連動させたくて、一方のリストのoptionのclickをbindしていた。
firefoxだと問題なく動いたが、chromeだと動かず。
json.forEach(function(e) { jQuery('#リスト1のID').append( jQuery('<option />') .html(e.name) .val(e.id) .click(function() { jQuery('#リスト2のID').val(e.id2); }) ); });
idをキーに連携させるのならval()でできるが、id2をキーにしたかったのでそのままでは動かない。
そのため、新たに属性をセットして、selectのclickをbindして解決。
json.forEach(function(e) { jQuery('#リスト1のID').append( jQuery('<option />') .html(e.name) .val(e.id) .attr('id2', e.id2) ); }); jQuery('#リスト1のID').click(function() { jQuery('#リスト2のID').val(jQuery('#リスト1のID option:selected').attr('id2')); });
いまさらStrutsのActionFormでハマった
昔過ぎてどうやっていたか忘れていて小一時間ハマったのでメモ
複数のIDを渡したくてListを使ったのだが、なかなかうまく行かなかった。
最初は単純にsetter/getterを用意したが、List#setでIndexOutOfBoundsが発生した。
private List<BigDecimal> ids = new ArrayList<BigDecimal>(); public void getIds() { return ids; } public void setIds(List<BigDecimal> ids) { this.ids = ids; }
自動的にリストのサイズを拡張するListの実装を作って対処。
public class AutoResizeArrayList<E> extends ArrayList<E> { @Override public E set(int index, E element) { for (int i = size(); i <= index; i++) { add(null); } return super.set(index, element); }; @Override public E get(int index) { return super.get(index); } }
次に、List#get()でしたものがナゼかStringになってしまう現象に遭遇。
これは、プロパティがセットされる際にgetIds()したリストへset()しているが、その時にStringがセットされていた。
(Genericsだとこう可能性はあることは知っていたが、初めて遭遇した)
そこで、setIds(List
ちなみにsetIds(List
Table Sorter のエラーメッセージでハマったのでメモ
TinyTable JavaScript Table Sorter
というjavascriptのライブラリを利用している。
さっき管理ツールにソート機能を追加するために久しぶりに利用して、見事にハマったのでメモ。
TypeError: T$$(...)[0] is undefined t.h = T$$('thead', T$(e))[0].rows[0];
こんなエラーメッセージが出るんだけど意味がわからず。
以前に利用したときのhtmlと比較したら、/
PostgreSQLで「ァ」と「ア」を区別せず検索した
とあるシステムで、カナ検索が出来ないという指摘を受けた。
コードを読んでみるとおそらく「フアンタ」のように登録して欲しいところ「ファンタ」と入っていたので、likeじゃ検索出来ていなかった。
で、かなり力技だけど、こんな関数を使って解決しました。
create or replace function to_large_text(text) returns text AS ' SELECT translate(upper($1) ,''-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨワヲンァィゥェォャュョヮぁぃぅぇぉゃゅょゎ '' ,''−0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨワヲンアイウエオヤユヨワあいうえおかやゆよわ ''); ' language 'sql';
2013/8/30追記
「ポッカ」とかが変換できていなかったので修正
create or replace function to_large_text(text) returns text AS ' SELECT translate(upper($1) ,''-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨワヲンァィゥェォヵヶッャュョヮぁぃぅぇぉゃゅょゎ '' ,''−0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨワヲンアイウエオカケツヤユヨワあいうえおかやゆよわ ''); ' language 'sql';
Jenkinsでsvnからリビジョンを指定してビルドする方法
プラグインとかあるみたいだけど、お手軽にやるためのメモ。
単純に「設定」→「ソースコード管理システム」→「Subversion」のリポジトリURLの末尾に「@<リビジョン番号>」とする。