Pebble日本語化&改造ログ
  全カテゴリ | Blog News | Bugs | Changes | Other Blogware
Pebbleのローカライズ状況
リポジトリ(/trunk)を見てみるとログイン後の管理メニューがローカライズ対象になっています。たぶん次のバージョンからだと思います。

これでPebbleが完全にローカライズできることになります。
現在開発の様子を見ながら日本語リソースを作ってみています。

#しかし「Unpublished entries」は「下書き」のままでいいのかな?
「非公開」も「未公開」もしっくりこないけど。

そして、このブログの役目も終わりです。Luceneの検索など完全に日本語が通らなかったり、テンプレートの自由度がなくなったのでカスタマイズは難しくなったりでまだやる事はあるのですが。。
でも、いろいろ勉強になりました。

Pebble2.2あたりから重くなってきた?
FCKEditor、DWR、scriptaculousにprototypeと、
Javascriptライブラリ利用が増えたせいでしょうか、
Pebbleが少しずつ重くなってきているような気がします。

また、サーバー側も一部しか使っていないのだけど、
Spring、DWRなどを使っていますのでパフォーマンスが
悪くなってきているのかなと。

キャッシュ(ehcache)などで速度アップをしているけど追いついていないのでしょうか?

Pebbleはライトウェイトなブログであって欲しい!
そう思っています。

SoftReference
ここの書込みをしていないですね。
最近Pebbleの解析をしていないのであまりネタがありませんが、少し覚書きなどに使おうと思います。

ブログのエントリーをXMLでファイルシステムに保存し、起動時にエントリーを(時には全て)配列に読み込み、必要に応じLuceneでインデックスを作成する。

RDBMSを使わずとも十分な検索パフォーマンスが得られ、さらにメンテナンス性も高く申し分ない構造ですが、複数ブログの場合はエントリー数は膨大になってしまうのが欠点です。
何らかのキャッシュシステムが必要になってきます。

Pebbleではこれを、
java.lang.ref.SoftReference を使って、エントリークラスの配列(日単位)をガベージコレクション(FullGC)が作動した際に自動的に参照が切れるようにして開放の候補にさせています。

GCがVMの実装依存であるため、またJDK6でも構造がかなり変わっているので不安な面もありますが、ほぼ問題なく動いているように思います。

Java特有のデザインではありますが、大変実装がしやすく、メンテナンスしやすいです。他のシステムでも応用ができると思います。

最近はRDMSを使用しないシステム開発こそが最も「幸せ」なのではないかと感じています。

またXMLパースですが、Pebbleでは XML->ObjectにSAX、Object->XMLにDOMを使っています。今だとJAXBを使うことも出来ますし、また軽量にXML->ObjectだけJakarta CommonsのDigesterを使うのもありです。

[追記]
Pebble2.xからはehcacheを使って効率をあげています。
やはりコントロールが出来ないのがネックなんでしょうね。

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

.NETのDelegateがあると便利?

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

続きを読む...


コメントスパム
海外サイトからのコメントスパムが増えてきましたので、コメント・トラックバックの受付を一時的に停止します。
Pebbleでこの操作をするには、
プラグイン設定の、エントリーデコレーターの部分に、
pebble.decorator.DisableResponseDecorator
を追加することで一時的にすべてのレスポンス受付を停止することができます。

追記:
これでは既に登録されたアドレスに送られてしまうのでNGです。
やはり認証機能が必要です。

サーバー移行でブログが表示されない[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()で強引にタグにエントリーをセット。

最近の修正まとめ
今年に入ってTANALOGは大きな機能追加などはしていませんが、ここのところ細かな修正を入れているのでまとめておきます。
大きな修正は4月以降になると思います。

続きを読む...


Pebble 2.0
サイモン氏のブログにPebbleの2.0作成中!とありますね。
初めてのメジャーバージョンアップとなるわけで、その概要はいかに・・・

続きを読む...


1 2 3 4 5 6 7 次へ≫