商品の情報収集が捗るブラウザ拡張『はてなレビュー』を作りました

『はてなレビュー』というブラウザ拡張を作ってみました。 Chrome拡張版とFirefoxアドオン版を用意しています。 何を提供するもの? Amazonの商品ページに、カスタマーレビュー以外の情報収集の手段として、その商品について言及しているエントリーを人気と…

Readabilityを初期設定のままで使うとリストが公開されちゃってる件

Readabilityのリストって非公開だと思っていませんか?自分は勝手に非公開だと思っていましたが違うようです。事の発端は「ReederのReadability連携が便利!」という以下の記事を見て、Reederではなくlivedoor Readerを普段使いしている自分も、Readability…

「ATNDBK(アテンドバック)」というサービスを作りました

昨日11/07にATNDBK(アテンドバック)というサービスをリリースしました。http://atndbk.org/名前から想像がつくようにATNDがらみのサービスで、ATNDで開催されたイベントにトラックバック機能を提供するサービスです。 トラックバックを受け付けるWebサービス…

『Javaルールブック』

TwitterのTL上で本書に関するツイートを何度か見かけて気になっていたので、本屋でパラパラ見て「これは会社に一冊あると良さそうだ」と思い、勤め先用の書籍として購入して貰いました。Javaルールブック ?読みやすく効率的なコードの原則作者: 大谷晋平,米…

Mac/iPhoneを分解するなら必見のサイト『iFixit』

最近Macbookの熱がずっと高めだったので、先週末に冷却ファンの掃除とヒートシンクのシリコングリスの塗り替えをしました。ネットで大体の手順を調べて、「1時間くらいで出来そうだな」と思って夜に始めたのが間違いの始まり。いざ裏蓋を開けてみたら、見て…

SmartyでPHP関数を呼ぶ方法

Smartyを使っていて、0埋めされていない現在の月の値(1〜12)を出力したい時に、 {$smarty.now|date_format:"%m"} では、01〜12の2桁の値が出力されるし、%m以外に月の値を出力できる変換指定子もないので困りました。date関数が使えれば楽なのになぁ、と思…

XLSBeansで文字化け発生

XLSBeansを使っていて、”×”(バツ、かける)の入ったセルが、読み込んだ後では”ラ”に文字化けする問題が発生しました。解決策がないかググってみるとこんな資料を見つけました。JExcelApi - blanco Framework システム構成←[注意]パワーポイントへのリンクで…

検証用アノテーションでバリデータが動く仕組み

ActionCustomizerで検証用アノテーションから設定情報を構築している。バリデータが実際に動くのはActionWrapperの中。ちょっとした拡張を試みる時にいつも忘れるので自分用にメモ。

『Seasar2 徹底入門』

『Seasar2 徹底入門』を読みましたが、これは良書! Seasar2使いの方は必携の一冊ですね。Seasar2徹底入門 SAStruts/S2JDBC対応作者: 竹添直樹出版社/メーカー: 翔泳社発売日: 2010/04/20メディア: 大型本購入: 10人 クリック: 270回この商品を含むブログ (3…

データバインディング式で比較演算子を使う際のバッドノウハウ

唐突にAdobe Flexのお話。Flexにはデータバインディングという便利な機能があるのですが、今回、とあるボタンの有効/無効の切り替えのために、 <mx:Button label="実行" enabled="{ hogehoge.length < 5 }" /> という比較演算子を使った条件を書くと Error: The value of attribute "enabled" must not contain the '<' c</mx:button>…

データベースACL利用時のプラグインコントローラへのアクセス制御方法

Cake のデータベースACLについて勉強するべく、CookBookにある開発例 『http://book.cakephp.org/ja/view/641/Simple-Acl-controlled-Application』 を試してみました。実際にやってみて、『プラグインコントローラへのアクセス制御はどうすれば?』という疑…

CakePHPのリハビリ中

次の案件はCakePHPを使えそうな感じなので、ただいまリハビリ中。 一年ぶりなので忘れていること多いなぁ。。。9ヶ月も放置していたこのブログですが、またマイペースにCakePHPネタでも書いていこうと思います。まずは難解なACL周りを理解せねば。

ファイルアップロードの上限サイズを超えてもindexメソッドに制御が移らないケース

ファイルアップロードの上限サイズを超えた場合について、SAStrutsのサイトでは以下のように記述されています。 アップロードされたファイルのサイズが、あらかじめ決められた上限(struts-config.xmlのcontrollerタグのmaxFileSize属性の値) を超えた場合、S…

Hot Deploy利用時に、Hot Deploy対象外クラス内でHot Deploy対象クラスを使うための正しい作法は?

「Hot Deploy」「Hot Deploy」連呼によって、今までで一番長いタイトル。。気を取り直して本題を。SeasarのHot Deploy機能はアプリケーションサーバーの再起動不要で修正コードがすぐに反映されるという便利な反面、ちょっとフレームワークの拡張をした時に…

いつのまにかSeasarユーザーのためのハブサイトが出来ている!

検索していたらたまたま見つけたサイト。 seasar-users.jp へようこそ! このサイトでは Seasar を使って高品質な Web アプリケーションを開発するための情報を提供しています。 Seasar を既に利用されている方だけでなく、これから Seasar を利用してみよう…

S2RequestProcessorとインターセプターは相性が悪い?

ActionMessagesExceptionをキャッチしたら前ページへ、@Execute(roles="xxx")で権限なし例外があったら指定されたページへ、それ以外の例外は指定したページへ・・・みたいな感じにしたかったんだけど、ちょっとうまくいかない。というのも権限チェックはS2R…

実行メソッドのindexメソッドは必ず必要?

SAStrutsに限った話ではないですが、WEB-INF/web.xmlに以下のように404エラーのエラーページ設定を入れておけば、存在しないURLへアクセスすると指定したエラーページへ遷移させることが出来ます。 <error-page> <error-code>404</error-code> <location>/WEB-INF/view/error/404NotFound.jsp</location> </error-page> 色々なURLを打…

ActionFormについて思うこと

先々週辺りに発覚したActionのpublicフィールドの予期せぬ自動バインドの問題。→参照:ぱる日記 これを受けて次のリリースからはActionFormの使用を推奨するようで、それに伴ってか、ActionForm周りで色々と動きがありそうです。 ActionFormの名前はxxxDtoか…

Entity単位のServiceに共通の親クラスを持たせる

元ネタは続・SAStruts + S2JDBCのアーキテクチャに載っていたServiceで共通的に使うメソッドを共通親クラスに抽象化したメソッドで持たせるという考え。ジェネリクスを使ったクラス設計なぞしたことが無い自分には良い刺激を受けました。 元記事ではユースケ…

HOT deployとCOOL deployで挙動が違う?

少し前に各所で話題にのぼっていたid:cypher256さんの一連のSAStruts関連のエントリー。実際の案件に適用しての話なので、すごく参考になります。このエントリーの中で@Reset アノテーション - cypher256's blogを試してみたのですが、なぜか動かない。 デバ…

メッセージの渡し方

生StrutsのActionクラスではsaveMessagesメソッドを使えば、ビューへメッセージを渡せますが、SAStrutsではどうやって渡すのか調べてみたら、ActionMessagesUtilというユーティリティクラスが用意されていました。Actionクラスでの使い方は以下のような感じ…

カレントパスを気にせずにjspにcssファイル等のパスを指定する方法

同じjspを使う場合であってもurlが/employeeと/employee/indexなどとカレントパスが異なる場合があるので、jsp内でcssファイルなどを相対パスでベタ書きした場合には、どちら一方は正しくないパスとなってしまいます。なにかSAStruts側で用意されていないか…

global-exceptionsでキャッチできるのはRuntimeExceptionのサブクラスのみ?

Exceptionのサブクラスをstruts-config.xmlのglobal-exceptionsに定義していもキャッチできず、RuntimeExceptionのサブクラスであればキャッチできました。これって生Strutsの仕様だったかなぁ?S2Strutsを使っていた時にはExeptionのサブクラスでもキャッチ…

インターセプター内でもJdbcManagerがインジェクションされる

Action用のインターセプター内でDB接続したかったので色々試していたら、Actionと同様にJdbcManagerをpublicフィールドで定義しておけば自動的にインジェクションされた! public class HogeInterceptor extends AbstractInterceptor { public JdbcManager j…

JDBCレルム認証で権限管理

『Executeアノテーションでつけられるroles属性によって、ユーザのロールによってアクセス制御をかけることができる』ということは、 マニュアルを見れば一目瞭然なのですが、DBを使ってユーザー認証をした後にロールをどうやってセットすればよいのかが分か…

SAStrutsことはじめ

次のJAVA案件をSAStruts+S2JDBCでいってみようかと現在調査中。Seasar2の経験はSeasar2.3+S2Struts(設定ファイル有)+S2Daoの構成で数回あります。 過去の資産があるので、わざわざSAStrutsを使う必要も無いかと思ったのですが、 ここのところずっとPHP…

CakePHP善戦、しかし圧勝したのは...

PHP

何の話かというと、先日行われていた次のアンケート。自分としては意外(?)な結果が。PHPプログラマーの方でPHP用フレームワークを使っている方へアン… - 人力検索はてな「現在使っている」「自分がフレームワークを選ぶ場合」の両方でpradoが圧倒的に票を獲…

モデルの指定列からselectタグを作るのに便利な方法

1.1系ではModel::generateList()メソッドを使えば、モデルから指定した列のkeyとvalueがペアとなった配列が取得でき、selectタグを作るのに便利でした。 1.2系ではそのgenerateList()は非推奨メソッドとなり、 「1.2系ではgenerateList()の代わりにModel::fi…

訪問済みリンクの文字サイズを大きくするというアイディア

訪問済みリンクの文字色は変える というのは、ユーザビリティ的には常識だと思います。かのヤコブ・ニールセン博士も過去に取り上げています。参照:訪問済みリンクの色は変えるべし – U-Site 訪問済みリンクの文字サイズを大きくする という方法を見かけた…

Eclipse PDTで日本語マニュアルサイトを開くようにする設定

Eclipse PDTでは、PHPネイティブの関数にカーソルをあててマウスの右クリック⇒「PHP マニュアルを開く」を選択するとPHPマニュアルのページを開くことが出来ます。関数の使い方を忘れた時などに重宝するので、知っておくとちょっと便利です。ただ、デフォル…