開発

JSONIC 1.2.7 リリース

http://jsonic.sourceforge.jp/前回リリース後に報告され溜まっていた不具合修正を吐き出したのもあるけれども、何と言っても今回のバージョンから Maven Central Repository に登録されました。まぁ、いままで登録してなかったのは、やり方がさっぱりわから…

AntでScriptdefを使ってIFタスクを作る

今回も技術ネタ。お、まるで技術ブログみたいだ(w閑話休題。ANTでIF分岐を行おうとしたら、targetを分けてif/unlessで処理をわけるのが常套手段である。しかしながら、たかだか、特定の条件でメッセージを変えたいくらいのことでtargetを分けるのはずいぶん…

1px solid指定のテーブルで外枠だけ色を変える方法

例によって今回も経済の話はなし。政治がこうどうしようもない状況では、どんな政策も通らないわけで、やや虚しさを感じてしまう(暑いので単に夏バテしているだけではという話もある)。それはともかく、結構前からtableのボーダーの優先順位に関しては、苦…

JSONIC 1.2.6 リリース

http://jsonic.sourceforge.jp/ずいぶん久しぶりな気もしますが、二、三不具合修正を行ったのでリリースとあいなりました。変更点は以下の通りです。速度も微妙に向上してますが、気付かない程度のレベルなので…… [不具合] preformatの中でループ中に変換先…

Antで内容が更新されたファイルを抽出する

本来書こうとしていた内容が頓挫してしまったので、技術ネタでお茶をにごすなど。個人的に長らく謎であったAntで内容が異なるファイルの一覧を抽出する方法がわかったので書いておく。Ant便利なんだがいろいろ説明不足な気が…… <resources id="diff"> <restrict> <fileset dir="new" includes="*.txt" /> <compare when="ne"> <control> <fileset dir="old" includes="*.txt" /> </control> <content /> </compare> </restrict> </resources>

svnant で作成・更新・削除したファイルを同期

Subversionは素のまま使うことは少なくだいたい TortoiseSVN か eclipse 上から使うので普段は困らないのだが、いざバッチ処理的に使いたいと思った場合に困ったことになる。なぜなら svn コマンドは更新したファイルだけは commit で更新されるが、新規と削…

JSONICのパフォーマンス向上はここらが限界

「Jackson vs JSONIC、結果はJacksonの圧勝」に対向するため、数日に渡ってJSONICのパフォーマンスチューニングを行ってきましたが、ここらで限界というところまできてしまいました。jacksonに速度で負けている理由の大半は、IOのバッファリングにあるらしく…

続・逆襲のJSONIC! ……まだまだ駄目です。

引き続き遅そうなところを調査した結果、どうもAppendableが悪さをしているような雰囲気。Appendableの各メソッドはCharSequenceになっているものの、CharSequenceは配列コピー系のメソッドがなく、JDK付属のStringBuilderのソースを読むと instanceof で分…

逆襲のJSONIC! ……ならず

某所にてJSONICなんて目じゃないぜ、とばかりにJacksonに圧倒的差を付けられてしまい涙目状態だったわけですが、ちょっとはがんばってみようというわけで今日一日かけてパフォーマンス・チューニングしてみました。チューニング結果は次の通り(ソースはリン…

現在開いているウィンドウがダイアログか判定する

IEでは昔からshowModalDialog、showModelessDialogを使ってダイアログを表示できるのだが、何でこう適当な仕様になってしまったのか window.open とAPI仕様に互換性がまるでなく、ダイアログ特有の不具合も多々ある。 window.opener で親ウィンドウを取得で…

JSONIC 1.2.4 リリース

Google App Engine上でjava.net.InetAddressが使えなくなって不具合発生という話が、実は1.2.3も動いてなかったということがわかりいろいろと修正するはめに。環境が存在しない場所で開発することの難しさを味わったリリースでした。まったく、いつになく苦…

JSONIC 1.2.1 リリース

http://jsonic.sourceforge.jp/とりあえずリリース。内容的にはベータ1とほぼ同じ。バグがいくつか見つかったので修正してはいるけど。

JSONIC 1.2.1 beta1リリース

不具合が見つかったので、開発してリリースしてなかった新機能とともに一旦ベータ版をリリースしました。バイナリ互換性は保ててるはずだけど、問題があったら教えて欲しいです(あとSlim3で問題ないかどうかも)。リリース内容は以下の通り [不具合] JSONの…

JSONIC 1.2.0 リリース

http://jsonic.sourceforge.jp/JSONIC 1.2.0リリースしました。変更点は先日書いたので、ベータ4からの変更点のみ書いてく。 RESTServletにもerrorsの設定を追加しました WEBサービスAPIにてerrors設定がない場合は、Exceptionの情報をクライアントに返さな…

JSONIC 1.2.0 ベータ4リリース

ものすごく難産でしたが、1.2.0の最終ベータ版をリリースしました。特に問題がなければ、一週間以内に正式リリースしたいと思います。1.2のリリースに関しては、出す出す言って結局リリースできていなかったので、気が重い状況が続いてましたが、これでやっ…

Primary Keyの代わりにUnique Indexを使う意味

タイトルだけ読むとIDの話に見えるかもしれないけど、違う話。先日、データベース設計について打ち合わせをしていたら、Oracleでは、Primary KeyよりもUnique Indexを使った方がトラブルが少ないので、今回は、Primary Keyは使わない方針としたいとのこと。…

S2JDBCのSQLファイルではOGNL使えない

中身読んだら、ドットで分割してプロパティ探しに行ってた。てことは、配列すら使えないのか。S2JDBCってパラメータに複数の引数を渡せないのは微妙に不便だよな。設計思想としてはBean作れってことなんだろうけど。開発が、Tiger以前てことも影響してるのか…

JSONIC 1.1.2 & 1.2.0 beta3リリース

一昨日リリースしたbeta2にひとつ致命的なバグがあったのと、ちょうど良いタイミングで既存のバグ報告があったので、まとめて修正してリリースしました。運悪く昨日落としてしまった人には本当に申し訳ない感じですが……

JSONIC 1.2.0 ベータ2 リリース

微妙な変更点多いですが……JSONIC 1.1からの差分だとこんな感じです。 JSON encoder/decoderにて処理中に限りメソッド情報をキャッシュするように変更しました。 JSON.encode(or format)およびJSON.decode(or parse)にてJSONHint(type=Serializable.class)を…

ValueTypeインターフェイスって必要だよな

ValueTypeとか書くとC#の値型と勘違いされそうなんだが、そうではなくて単項目値か否かを判定するインターフェイス。何に使いたいかと言うとJSONICなどで未知の型に出会った時、objectとして展開すべきかtoString()で文字列として展開すべきか判断するのに使…

S2JDBCでPersistenceConventionImplのnoNameConversionプロパティが効かない

Seasar2の不具合なのか、それとも仕様なのかよくわからないが、SQLファイルからBeanに詰め込む際、PersistenceConventionImplのnoNameConversionが効かない。例えば、以下のSQLを select AAA_BBB_CCC from TEST 次のようなBeanに詰め込みたいのだが、うまく…

JSONIC 1.2.0-beta1リリース

http://jsonic.sourceforge.jp/なぜかbeta1になってしまいますた。無念。機能的には実装できているが、サンプルの用意ができなかったのが致命的。一応、下記が変更点です。ProduceアノテーションとREST時のメソッド名変更以外に新機能らしきものが全然ないじ…

JSONICの次バージョンからwinstone対応やめます

Seasar2でFORM RESTモードが動かないという報告があった。その件は重々承知していたので週末使って対応した。jsonic-1.2という形で来週あたりリリースする予定。Seasar2でFORM RESTが動かないのは、JSONICの1.1系ではapplication/x-www-form-urlencodedで送…

レミングス

なぜ、わざわざプロジェクトを失敗させる方向に誘導しようとするのだろう。謎だ。

JSONIC 1.1.1 リリース

http://jsonic.sourceforge.jp/日々使っていて作った本人が困るケースに対応した。具体的には、setContextしなくても内部クラスのインスタンスに対しencode/decodeできるようにしたことと、jettyでクラスのロードに失敗する点。基本的には1.1と変わってない…

勘弁してください……

「役所の方が電話をかけてこられたのは5月28日ころだった。複数のITベンダーに相談したところ、システム構築に数百億円から1000億円もかかるという。来年4月末までと期間が限定されているシステムにそんな大金はかけられない。それで環境省や経済産業省は…

フラグ・区分・コード

データベース設計といえばエンティティの設計が目立つけれど、その一方でフラグ・区分・コードの設計も重要な要素である。フラグは2値であらわせるものということで良いのだが、区分とコードは使い分けが難しいと考える人も多いようだ。都道府県は区分なのか…

S2ContainerFilterがgetParameterを呼んでしまっている件

久々にJSONICを触っていて気付いたのだが、Seasar2のS2ContainerFilterが内部でHttpServletRequest#getParameter(String name)を呼んでしまっているせいで、JSONIC側でHttpServletRequest#getInputStream()を呼んでもデータを取得できず、はまってしまった。…

良品計画の開発手法

良品計画は独自の開発手法を採用することで、システム開発の短期化とコスト削減を図った。2006年12月に再構築したMD(マーチャンダイジング)システムを皮切りに、08年12月までに約130のアプリケーションを社内で開発。一方で、IT 投資の売上高比率は04年の1…

NTTデータは人材に恵まれている

若い時にプログラムを書こう、必ず人生の豊かさに繋がる/山下徹 NTTデータ社長はてブを見ると批判的な書き込みが多いが、私は感動した。こんなまともなことを言う人がNTTデータにはいるのか、しかも社長をやっているのか、と。内容を読む限り、決して絵空事…