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

erasureの働きがよく分からない

clazz.getAnnotation(Xxx.class)はキャストする必要がある? - yvsu pron. yas はてなブックマーク - clazz.getAnnotation(Xxx.class)はキャストする必要がある? - yvsu pron. yas java.lang.Class(およびそのスーパーインタフェースjava.lang.reflect.Annota…

プログラミングの本質は問題解決

発端: 【プログラミングとはどういうものかという本質】とは何だと思い… - 人力検索はてな 力武健次――在野の孔明、問題解決の彼岸にみたプログラムの本質 (1/8) - ITmedia エンタープライズ 自分もプログラマの仕事の本質は問題解決だと常日頃言ってるし、プ…

.mayaaファイルのフォーマットを編集時にチェックする

S2StrutsなどでMayaaを使う時にお世話になっているmayaaファイル。修正後に再起動は不要とは言え、実行しないとエラーが分からないのはとても不便だ。できればEclipse(+WTP)上で編集時にチェックしたい。 .mayaaファイルはXML形式なので、スキーマ言語での定…

オーバーライドされたメソッドの元のメソッドを呼び出す実験

お題: Overrideされた、元の(スーパークラスの)メソッドを 呼び出す方法ってないですかね? Overrideされた元のメソッドを呼び出す方法 - 谷本 心 in せろ部屋 方針 JavaHouse-Brewers36709 Re super クラスのメソッドの呼び出し方によるとinvokespecialを…

ついでなのでアイデアメモ

例によってまとまってないし知識もあいかわらず不足なのだけど…… テンプレートエンジンを関数型言語として扱う話関連で参考になりそうなエントリ 圏論やモナドが、どうして文書処理やXMLと関係するのですか? - 檜山正幸のキマイラ飼育記 (はてなBlog) どう…

HTMLコンポーネントにHTMLの断片を引数的に渡す

テンプレートエンジンでの部分HTMLはファーストクラスたりえるのかどうか。 例: 会員登録フィームの繰り返し部分を部品化する 単純な登録フォームにも繰り返し部分がある。 例: 新規会員登録フォーム ... <form action="/register.confirm" method="post" enctype="multipart/form-data"> <table class="config"> <tr> <th class="row">ユーザー名<span class="require">(必須)</span></th> <td> </td></tr></table></form>

HTMLテンプレートの再帰でツリー型のデータを表示する

ツリー構造を持ったデータを、Mayaaのテンプレートを再帰的にinsertすることで表示する ソース こういう階層構造のデータがあったとする package sample.model; import java.util.Arrays; import java.util.List; public class SampleUtils { /** 階層構造を…

データの一覧をグループ毎に表示するMayaaプロセッサ

タイトルのものを作ってみた。 背景 DBから取得した値を一覧表示するようなページで、デザイン変更があってデータをグループ毎に表示しなくてはいけなくなることが時々ある。(これの下二つのような感じ) そういう時は、アクションなどでループを回してデータ…

続・不動点関数のJava実装

fix()からのfix()への言及を無くす 前回のでほぼ完成していた。 Bridgeから呼んでいるFixUtils.fix()を展開してやるだけ /** ブリッジ的なもの */ public class Bridge { private FuncMaker funcMaker; public Bridge(FuncMaker funcMaker) { this.funcMaker…

不動点関数(反則版)のJava実装

自分の頭の悪さを晒すようで恥ずかしいんだけど、勉強中に作ったクラスを上げるよ。 Y combinatorが分からない HTMLテンプレートと関数型言語の接点を探るべく関数型言語の勉強を始めたのはいいけど、さっぱり要領を得ない。Java でラムダ - IT戦記のY combi…

テンプレートエンジンと関数型言語(思案中)

HTMLテンプレートと関数型言語の関係について、引き続き思案中。 まだかなり浅いんだけど一旦output。 関数型っぽいと思うところ あらかじめ用意したテンプレートに値を渡すと出力用の文字列が帰ってくるという時点で、まずは関数っぽい。 変数値write系のタ…

レイアウト側の属性を制御する

Mayaaのレイアウト共有機能では、タグ単位での置き換えは可能だけど、レイアウト側のタグの属性のみを置き換えることは普通の方法では出来ないようだ。 コンポーネントのinsertの場合とは違い、extends時にbindingで変数を渡すことができない。その代わりにp…

HTMLテンプレートと関数型言語について

HTMLテンプレート上からのデータアクセスを遅延評価することで遅延ローディングによるパフォーマンス劣化を防ぐ作戦(lazy loadingにはlazy evaluationで対抗作戦)について、最近少し本気で考えている。 そこでいろいろ気づきつつあるのは、「HTMLテンプレー…

コード値の表示をtaglibでおこなう

Strutsでデータベースの内容を表示するとき、コード(ID値)で格納されている値を名称で表示したいことって結構あります。 (例えば性別を1→「男」、2→「女」で表示するとか) アクションでデータを取得した際に処理を書いて名称に変換したり、名称に変換するプ…

テンプレート切り替え機能を拡張する

Mayaaには一つのmayaaで複数のテンプレートを切り替える機能がある。(参考: 3-10. テンプレート切り替え : Documentation - JavaServer Templates "Mayaa") たとえば利用者の使用言語に合わせてその言語用のHTMLを使う、というような用途が想定されているら…

Media KEGのKLSを自動でタグ付けする(手抜き)

去年KenwoodのMedia Keg HD60GD9ECを買ったのはいいけど、タグ付けが面倒臭くてずっと放置していた。最近いろいろ試してプログラムからタグ付け出来るのが分かったので、ある程度自動で付けられるようにしてみた。 背景 Media Keg HD60GD9ECは高音質が売りの…

真・plist形式のxml読み込み用digester-rules(およびクラス)

iTunesでライブラリとして読み込まれた楽曲の情報は、所定のディレクトリに「iTunes Music Library.xml」というファイル名で保存される。今回、このファイルの内容を読み込む必要があったので、読み込み用のプログラムを書いてみた。 iTunes Music Library.x…

AJAX+Comet+空メールでメールアドレスを入力

Webフォームでメールアドレス登録する際に、誤入力防止の為のメールアドレス確認欄が必要かどうかという議論があるけど、それなら手入力しなければ良いよね、と思う。PCブラウザの場合はAJAXが使えるので、「空メールを送信したその場でフォームに反映」とか…

あと、最近自分的に熱いキーワード

「データベースリファクタリング」 データベース・リファクタリング - データベースの進化的設計 スキーマ変更に合わせて自動的にソースコードを変更することはできるだろうか?この一年で一番目から鱗が落ちた言葉は「ソースコードは所詮テキストファイル。…

折角なので今考えていること

はてブで書いたことなんだけど、「エンティティ」+「ロール」+「ワークフロー」+「補助的な問い合わせ条件」っていうのをフレームワーク化できないかと思案中。これは、d:id:terazzo:20071113:1194974612で考えていた「リソース」+「権限認証」+「ワークフロ…

Commons関連の検索の誤ヒットが激しいようなので

Refererみてると、Commonsのアレを検索して間違ってアクセスされているみたいなので、過去のソースコードを一部変更(Class型の変数名をaClassに修正)。 "Commons aClass"と言う名前のプロジェクトが作られないことを希望。

AWStatsのutf8_decode.plの高速化

アクセスログに%エンコードされない生検索語が入っていないという前提だけど、DecodeEncodedStringの&PackPercent;の前にreturn unless (/%/);を入れるだけで相当高速化できる気がする。というか出来た。 実サイトで採った20万行ぐらいのログを掛けてみたけ…

ショートカットでファイルを切り替えるだけのEclipseプラグイン(作り方)

WEB+DB PRESS Vol.43のEclipse特集を読んで以来、積極的にショートカットを使うようにしている。特にJUnitのCtrl+9とかDoltengのCtrl+3~6とかで関連ファイルとの切り替えが出来るのは本当に楽だと思う。 TestCaseじゃなくても、組になったファイルを交互に編…

LINQが気になる

WEB+DB PRESS Vol.43に載ってたC#のLINQって機能が気になる。隣のクラスの一番可愛い子ぐらい気になる。自分の求めていた物に方向性がかなり近いっぽい。 メモリ内のコレクションとDB内のレコードが同じ書式で問い合わせ出来る。グループ化や集約演算も使え…

OO厨(?)の俺がFizzBuzz書いてみた

お題: 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 どうしてプログラマに・・・プログラムが書けないのか? …

もっと形式的に出来ないか

プログラミングは好きだけど同一物の反復は苦手です。 アクションを書くのが嫌 アクションを書くのが嫌だ。心の底から嫌だ。本当に面倒だ。複雑なロジックを呼び出しているならまだしも、フォームで入力した値を元にごにょごにょして最後にデータベースに突…

それWebL○gicで出来るよ?

ここの日記は、成果だけ書くようにして、あんまり思考の過程は書かないようにしようと思ってたんだけど…… 主にStrutsで、アクションで処理した結果をテンプレートで表示するプログラムを毎回毎回書いていて段々嫌になって来た。最初はどの辺が嫌か、つまり何…

DIの定義ファイルと環境毎の設定ファイル

コンポーネント(あるいはBean)の初期値を設定するのに、DIの定義ファイル(Seasarならdiconファイル)のプロパティ値を設定する仕組み(Seasarならpropertyタグ)を使えば良いじゃないという考え方もあるようだけど、細かい数値や文字列を定義ファイルに一杯書く…

続・設定ファイルの内容をAOPでオブジェクトに設定する実験

(前回の続き)ConstructorInterceptorを使った設定ファイル内容のオブジェクトへの自動適用の仕組みを作ったものの、ターゲットとして想定していたDI+AOP環境であるSeasar2では(そのままでは)ConstructorInterceptorを使用できないようなのでその辺をなんとか…

設定ファイルの内容をAOPでオブジェクトに適用する実験

開発環境と本サイトなど、異なる環境でプログラムを動作させる場合、環境に応じてソースコードの変更をおこなわなくても済むように設定値を設定ファイルに外出しするというのは割と一般的だと思う。しかし、その設定値を使うクラスにとって設定値(例えば、メ…