Pebble日本語化&改造ログ
TrackBackToken
スパム対策で2.0から実装されたTrackBackToken。
10分の有効期限で、そのトークンは20分に一度タイマータスクで削除している。
このスレッド、動いてないような気がします。
匿名クラスで定義していて、そこからTrackBackTokenManagerクラスのメソッド(isValid)を呼ぶとダメなのでは?
TimerTaskを継承してちゃんとクラス作る必要ありか。

.NETのDelegateがあると便利?

スレッドセーフでないListの多用
ブログエントリーからはじまってコメント、トラックバックなど、PebbleではArrayListが多用されています。
しかし、ArrayListはVectorに比べ軽量ですがスレッドセーフではありません。
アクセスが多いブログだと「java.util.ConcurrentModificationException」がログに大量に吐き出されています。

続きを読む...


サーバー移行でブログが表示されない[FIXED]
Windows2003サーバーにブログをインストールした場合。
通常問題なく動作するが、他のOSで動作させ保存したブログデータをコピーするとエラーログに日付の変換が出来ないエラーが出てブログが表示されない。
「Couldn't parse date of ・・・」

続きを読む...


Tagがすぐに反映されない[FIXED]
Pebble1.9で、エントリー投稿直後にタグを表示しても出てこないです。

SimpleBlog.javaで、
public void blogEntryAdded(BlogEntryEvent event)
などの処理があるにも関わらずどこからも呼ばれていない。
イベントをパラメータとしているので、EventDispacher周りを見たがどこにも見当たりません。リスナーにもそういう処理は無いように思います。
なので、BlogEntry.javaのstore()、remove()内で強制的にコールしたらうまくいきました。

[後記]
うまくいっていませんでした^^;
このバージョンにあるエントリーリスナーでSimpleBlog.blogEntryAddedを呼び出すものはないようです。宙ぶらりんみたいです。
BlogEntry.setTag()で強引にタグにエントリーをセット。

Tagsでの日本語処理まとめ
GETメソッドでの日本語処理でゴタゴタしてたところの整理。
結局バグではなく、環境の違いで混乱しただけの模様^^;

続きを読む...


Tagsでの日本語処理[FIXED]
1.9でタグによる検索が出来るようになりました。TagCloudなんてのも面白いですね。
でちょっと気になったのですが、タグに日本語を使用した場合でも一見うまく動いているのですが、よく見るとURLのパラメータがエンコードされてないです。

続きを読む...


通知メールのFrom文字化け[FIXED]
これはJavaMailの問題かと思われますが、通知メールの送信者名に漢字が入ると受信したメーラーで文字化けします。通知メールのFromはブログ設定で設定したEMailアドレスで、名前はブログ名となっているためブログ名が漢字だとこの現象が出ます。

Windowsサーバーではこのエンコードが「Shift_JIS」となっており本来JIS(ISO-2022-JP)とすべきです。しかし、Windowsのメーラーの多くはこれをちゃんとデコードするので問題ありませんでした。
今回Linuxで動作させたところ、エンコードが「ISO-8859-1」となり、メーラーでは「??????」となってしまいます。

カテゴリーでエントリが表示されない[FIXED]
カテゴリー選択で、全てのエントリーがされない。ただし比較的新しいエントリーは表示される。

RSSリーダーでの更新不良
Pebble1.6ベースの時からRSSフィードの日付に問題がありました。
日本語の曜日になってしまっていた所は直し、タイムゾーンを無理やりUTCに設定していましたが、これがうまく認識されていなかったようですので、TANALOG1.2から日本時間JSTにしました。

フォーマット(2005年1月1日0時0分の場合)
RDF1.0:"2005-01-01T00:00+09:00"
RSS2.0:"Sat, 01 Jan 2005 00:00:00 +0900"

RSS2.0は、RFC822表記で、RDFはW3C推奨Format。
ちょっと統一性がない感じがします。
でも本来ならばUTCの"2005-01-01T00:00Z"も認識するはずですが。

ファイル、テーマ編集で文字化け[FIXED]

ファイルでのHTML、テーマでのJSPファイル編集で日本語文字化けが発生する。

Shift_JISファイルが正常に表示、ただし保存すると化ける。UTF-8は表示も化けてしまって保存するとさらにおかしくなってしまう。


テーマ更新後コンテナを再起動すると元に戻る[FIXED]

テーマファイル(CSSやJSP)をコンテキストルートの/themes/ブログID以下にコピーしてWEBコンテナを再起動すると古い状態に戻ってしまう。



カテゴリー選択するとタイトルが重複[FIXED]

カテゴリーを選択するとブラウザのタイトルが「ブログ名 - ブログ名」というふうに重複して表示される。

本来ならば「ブログ名 - カテゴリー名」となるべき。


コメント表示でHTMLタグが無効[FIXED]

サイドバーでのコメント要約表示は以前からタグがそのまま表示される問題がありましたが、Beta2からでしょうか、本文内のコメントでもHTMLタグが無効となってしてタグがそのまま表示されてしまいます。新規追加されたHTMLDecolatorあたりが問題でしょうか。


エントリー削除後にページが表示できない[FIXED]

エントリーを新規作成、コメントを追加、エントリーを削除する。という手順を同じセッション内で行った場合に削除の時点でエラーが発生し、その後トップページがエラーで表示できない。
追記:同じセッションでなくてもエラーとなる模様。エラーはRemoveBlogEntry後のサイドバーでのRecentCommentsの表示でNullExceptionが発生。コメントのあるエントリーを削除した場合に何か残っているような感じ。

再現するかは不明だが、エントリーが削除できない現象も発生している。この場合一見削除できたかのようだが何度行っても削除できていない。


ページ内検索で日本語が使えない[FIXED]


検索結果で日本語が文字化けするだけでなく、検索そのものが出来ていない様子です。


Eメール通知で文字化け[FIXED]

コメント、トラックバックの投稿通知をするに設定。
メールタイトル、本文の内容などが文字化け。(ローカライズもされていない)
エントリー投稿の通知も同様と思われます。


静的ページが保存できない[FIXED]


表題の通り。US版での動作は確認していません。


他のユーザBlogへ移動すると前の情報が残る[FIXED]


MultiUserモードで他のユーザBlogへ移動した際、前にカテゴリが選択されていた場合、その設定がセッションに残ってしまっているようで、エントリーがない、などの表示になることがあります。



カテゴリAllをクリックすると正常に戻ります。どこかのタイミングでクリアする必要があります。




トラックバックする要約文にタグが残る[FIXED]

こちらのエントリーから他のブログのエントリーにトラックバックPingを送信する際、HTMLタグがついたままになっている。
編集できる状態で表示されるため、削除すればよいが面倒である。

また、サイドバーのコメント文の要約についても同様。


RSS,RDFフィードで日付がない[FIXED]


タイトルのとおりで、RDF1.0では更新日付のタグがない。

RSS2.0で日付のフォーマットが違う。(日本語の曜日が...)

当然、RSSリーダーでうまく表示されないということになります。


コメントで名前を日本語にするとエラー[FIXED]


コメント投稿で名前に日本語を入れて情報保存をする設定で投稿するとエラーが表示されます。ただしコメントは投稿できているので何度も投稿してしまいます。


XML-RPCでの投稿で文字化け[FIXED]

XML-RPCで投稿すると文字化けします。

使用クライアントは、ubicast Blogger。

加えて、MovableTypeのAPIがサポートされていないのですね、ubicastではBloggerAPIのみという設定がないのでエラーが出てしまいます。


JSPで日本語にすると文字化け[FIXED]


すべてのJSPファイルにおいて日本語で記入すると文字化けします。



文字コードはUTF-8で保存しています。Shift_JISなどでも同様に文字化けとなります。(化けた表示はUTF-8とは異なる)




ごあいさつ

Pebbleは、Javaで作成されたオープンソースのブログサーバソフトです。

Tanalogを立ち上げるにあたって、このPebbleをベースにすることにした理由は沢山あります。他のブログとの比較など詳しくはカテゴリ"Other Blogware"にて書いて行きたいと思います。

ここでは、Tanalog用にカスタマイズするにあたって修正を施した記録を残すことが目的です。その多くは日本語化ですが、マルチユーザ機能や投稿フォームなどの改造、あるいは新しいDecoratorなどの追加なども含まれるかもしれません。
何のためにここに記録するか?
まずは自分たちの備忘録のため、そして日本のPebbleユーザ(いるのかな?)に多少なりともご活用頂ければとの思い、そしてPebbleの作者でありプロフェッショナルJSPの著者でもあるSimon Brown氏にいつかは貢献できればとの思いで情報をオープンにします。

ご要望があればソースコードも開示します。また、御本家に対してプロポーザルもできればと思っております。(がしかし英語が得意ではありません)