ログ日記

作業ログと日記とメモ

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

画像もDBに格納して管理する - Wicket編

PHPからJavaに移ると、アップロードされたファイルの格納場所に戸惑う。 画像をアップした場合、PHPならindex.phpと同じ階層にuploadImageとかいうディレクトリを作ってそこに置けばいい話なんだが…。 大抵はコンテキストルートの外にディレクトリを作ってそ…

相関サブクエリの書き方が分かってきた

SQL

やっとできた。 FROM句に相関副問い合わせは指定できない*1 し、where句での指定では選択した値を持って来れない。 相関サブクエリでひたすら検索していたら http://jutememo.blogspot.com/2010/11/sql-4-select.html このページが見つかった。 なるほど、fr…

SQLが分からない

SQL

2日ほど悩んでる。 おかげで変な技術は身に付いた。 連番生成とか。 例えば 次のような一行だけデータを持つテーブルがあります。データの中身は重要ではありません。 CREATE TABLE OneRow (col1 VARCHAR(8) NOT NULL, col2 VARCHAR(8) NOT NULL, col3 VARCH…

wicket-auth-rolesをカスタマイズする その2

昨日の続き。 権限の一カ所集約はやめて、リンク先ページクラスの権限がないBookmarkablePageLinkに非表示処理を追加する。 AppAnnotationsRoleAuthorizationStrategy.java public class AppAnnotationsRoleAuthorizationStrategy extends AnnotationsRoleAu…

wicket-auth-rolesをカスタマイズする

wicket-auth-rolesは便利なんだけどもう少し痒いところに手が届かない感がある。 wicket-auth-rolesを使った場合はページクラスに対して@AuthorizeInstantiationを使用すれば簡単に認証制御が可能なのですが「全てのPageクラスに対してアノテーション付ける…

squeezeでvncサーバーを起動

sudo aptitude install vnc4server vncserver -geometry 1400x1050以上。 パスワードを聞かれるので設定する。 終了は vncserver -kill :1 特に設定をいじらなくてもWindowsXPの前から使っていたRealVNCで接続出来た。 ポートはログに書いてある。上記なら普…

squeezeにTeX環境を入れる

tex

aptitude search texlive を眺めていたら、texlive-full というメタパッケージを発見。 多言語のパッケージも入ってしまうが、一気に全部インストールできるのは楽なのでこれを指定してインストールした。 あとは日本語用コマンドのptex-binとその提案パッケ…

GWT2.3.0 + Gears

GWT

GWTを2.1.1から2.3.0にバージョンアップしたらGearsが動かなくなったのでメモ。 GWT2.2.0からはWEB-INF/deployディレクトリが生成されるようになって、容量節約のためにそれを削除したいとかいう問題もあるのだが、Gearsを使うにあたってはエラーが出て動か…

Ubuntuを入れたりsqueezeを入れたり

新しいGWTを使うためにUbuntuを入れた。バージョンは10.10の日本語Remix。 しかしi7のCPUで12スレッドあるんだけど8スレッドしか認識せず。 /sys/devices/system/cpu/kernel_max が8になってる。 サーバー用カーネルイメージはapt-lineを書き換えずに入れよ…

GWT DesignerがGeneratorのクラスを読み込めない

GWT

gwt.xmlに <generate-with class="mydomain.rebind.service.TransServiceGenerator"> <when-type-assignable class="mydomain.client.service.TransService" /> </generate-with> こんなふうに書いて、ソースコード生成を試している。 エラーなく動くことを確認したが、GWT Designerを表示しようとすると落ちるようになった。 ログにはClassNotFoundExceptionが出ていてTransServiceGeneratorを見つけられな…

Chrome 12 が出てしまった…

今作っているページを見てたら今日になって動かない。 自動でアップデートがかかってChromeが12になってしまった。(Windows用betaでは) Gearsは完全になくなっていくのかねぇ…。 gwt-google-apisを使っているんだけれど、ブラウザがChromeの場合はHTML5の…

DockLayoutPanelなどのLayout系パネルがGWT Designerで見えない

GWT

久々にGWTに戻ってきた。 Wicketで簡単なAjaxは可能だけれど、複雑な処理は別途JavaScriptのライブラリを使ってくれという方針だし、それならJavaScriptを使う処理が多い場合はやっぱりGWTかなぁと。 で、以前から起きていたのかバージョンアップしたからか…

GoogleCLが少し使いやすくなっている

前はgoogle calendar list の結果はタイトルだけしか取得できなかったけど、version 0.9.13からは時間が入るようになっている。 これでやっとまともに使えるレベルになったかな?

Wicket 1.5 では今のところはReloadingWicketFilterを使わない方針で

Tomcatの起動ログで 致命的: The web application [/myapp] registered the JBDC driver [org.postgresql.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregi…

ITエンジニアって何だろう

ITをエンジニアリングする人、情報技術の問題を科学的な積み重ねによって解決する人、情報技術の応用研究の成果を使って何かを作る人。 本当にそういうことをやっている人は少なからず居るんだろうが…実際にやっている人は自分たちのことをITエンジニアとは…

IComponentResolverとpropertiesファイルのtips

以前IComponentResolverについて書いたんだけど *1 *2 、この必須チェックが予想以上に便利で使いやすい。 それで、リスト表示でも使いたくなったので少しだけ汎用化した。 EntityComponentResolver.java import java.lang.reflect.Field; import javax.pers…

ModalWindowにキャンセルボタン

ModalWindowにOKボタンとCancelボタンを作るとする。そしてonSubmitで何かの処理を行いウィンドウを閉じる。 このとき、WindowCloseCallbackの中で問答無用でAjaxRequestTarget#addしていると、Cancelボタンを押したときに処理を中断するっていうことができ…

Wicket 1.5 でファイルダウンロード

Wicket 1.5 になってAbstractResourceStreamWriterがかなり変わってる。 AbstractResourceStreamWriterはwicket-coreにあるんだけど、IResourceStreamやAbstractResourceStreamはwicket-utilにある。 rc2だからまだ作ってる最中なんだろうか。 取り敢えずAbs…

Redmineのチケット一覧で作業時間の記録を表示させる

CVSで表示する方法はあった。 $REDMINE_PATH/app/redmine/helpers/issues_helper.rb @@ -206,6 +206,7 @@ l(:field_due_date), l(:field_done_ratio), l(:field_estimated_hours), + l(:label_spent_time), l(:field_parent_issue), l(:field_created_on), l…

トランザクションIDの回収はPostgreSQL 8.1から8.2で変わっていた

なんとなくWikipediaを見ていたら 8.1 contribより提供されていた自動バキューム (autovacuum) 機能が本体に統合された。不要領域の監視が効率化され、コマンドで発行した VACUUM との連携が可能になった。 8.2 トランザクションIDの周回がテーブル単位で管…

稼働済みのHDDで後からRAIDを設定する

Debian squeezeでの作業ログ。 念のためバックアップが完全に取れているマシンで作業。 パーティションを切る。 fdisk /dev/sda でパーティション情報を見て、同じものを/dev/sdbに作る。 パーティションタイプをfd(RAID)にする。 RAIDの設定。 aptitude i…

squeezeが出てたのでアップグレード

待ちに待っていたんだけど、最近チェックしていなかったので気付かなかった。 のでアップグレード。 とりあえず元々squeezeで使っていたものを更新。 apt-get update apt-get upgrade apt-get dist-upgrade前回はaititudeが推奨されていたが、今回からまたap…

s2wicketとかブラウザバックとか

Not serializable exception や injectDependencyのエラー や ClassCastExceptionが出て数日ハマった…。 最終的には以下のパッケージ構成と設定でやることになりそう。 com.example.app | +- service +- entity +- wicket +- session +- page NamingConventi…

Nexusが動かない

Tomcatで動かないからbundleバージョンを使ってみたんだけど、こっちも動きが怪しい。 jvm 1 | 2011-03-12 21:01:30 WARN [@qtp-9518166-11] - org.apache.shiro.mgt.DefaultSecurityManager - Delegate RememberMeManager instance of type [org .apache.sh…

やっとm2eclipseでmavenからjettyが起動できた

runjettyrunを使おうと思って少し試してみると、終了がうまくいかない。jetty6だとXAConnectionImpl でLinkageErrorが出るし、jetty7だと終了がエラーになる。終了はできているみたいなんだけども…WindowsのEclipseだと特にエラーも出なかったがDebianだと動…

Wicketで現在アクセスしているページのURLを取得する

RequestとかWebRequestとかのメソッドを調べたけどそれらしいメソッドはない。 getUrlで得られるURLにはホスト名などは入っていないようだ。 正解はUrlRendererクラス。 RequestCycle.get().getUrlRenderer().renderFullUrl( Url.parse(urlFor(MyPage.class,…

Wicket1.5でIComponentResolverを使ってフォームコンポーネントをadd

public boolean addForRender(Component component, MarkupContainer container, MarkupStream markupStream) { container.internalAdd(component); component.prepareForRender(); try { if (markupStream == null) { component.render(); } else { compone…

Eclipseの動きが怪しいので前の設定に戻した + Jettyを入れた

プラグインを色々入れると動きが怪しくなった。 GWT系はまだいいとして、XMLが見れなくなったのが痛い。 HTMLもテキストエディタじゃないと見れないし…。 ヘルプ → Eclipseについて → インストール詳細 → インストール・ヒストリー から適当な状態を変更して…

S2WicketがWicket1.5の自動リロードonで動いた

前回*1の続き。 原因が分かった。 Wicket1.4のFilter#initは public void init(FilterConfig filterConfig) throws ServletException { initIgnorePaths(filterConfig); this.filterConfig = filterConfig; String filterMapping = filterConfig.getInitPara…

S2Wicket難しい

昨日はコンパイルが通って1ページ表示できるところまでやったが、どうもそれだけじゃ無理っぽい。 WebPageを継承したクラスを更に継承し、それをmountPage()で変えたURLにアクセスすると Last cause: Parameter clazz must be an instance of com.mycompany.…