<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
  xmlns:georss="http://www.georss.org/georss"
  xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  >
<channel>
  <title>Pebble JP</title>
  <link>http://tanalog.com/pebble/</link>
  <description>Pebble日本語化＆改造ログ</description>
  <language>ja</language>
  <copyright>Pebble_JP project</copyright>
  <lastBuildDate>Mon, 25 Aug 2008 02:03:21 +0900</lastBuildDate>
  <generator>Tanalog</generator>
  <docs>http://backend.userland.com/rss</docs>
  <image>
    <url>http://pebble.sourceforge.net/common/images/powered-by-pebble.gif</url>
    <title>Pebble JP</title>
    <link>http://tanalog.com/pebble/</link>
  </image>
  
  <item>
    <title>Pebbleのローカライズ状況</title>
    <link>http://tanalog.com/pebble/2008/08/25/1219597401156.html</link>
    <description>
      リポジトリ（/trunk）を見てみるとログイン後の管理メニューがローカライズ対象になっています。たぶん次のバージョンからだと思います。これでPebbleが完全にローカライズできることになります。現在開発の様子を見ながら日本語リソースを作ってみています。#しかし「Unpublished entries」は「下書き」のままでいいのかな？「非公開」も「未公開」もしっくりこないけど。そして、このブログの役目も終わりです。Luceneの検索など完全に日本語が通らなかったり、テンプレートの自由度がなくなったので...
    </description>
    <content:encoded><![CDATA[
      
      <p>リポジトリ（/trunk）を見てみるとログイン後の管理メニューがローカライズ対象になっています。たぶん次のバージョンからだと思います。<br />
<br />
これでPebbleが完全にローカライズできることになります。<br />
現在開発の様子を見ながら日本語リソースを作ってみています。<br />
<br />
#しかし「Unpublished entries」は「下書き」のままでいいのかな？<br />
「非公開」も「未公開」もしっくりこないけど。<br />
<br />
そして、このブログの役目も終わりです。Luceneの検索など完全に日本語が通らなかったり、テンプレートの自由度がなくなったのでカスタマイズは難しくなったりでまだやる事はあるのですが。。<br />
でも、いろいろ勉強になりました。</p>
    ]]></content:encoded>
    
    <category>Blog News</category> 
    <comments>http://tanalog.com/pebble/2008/08/25/1219597401156.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2008/08/25/1219597401156.html</guid>
    <pubDate>Mon, 25 Aug 2008 02:03:21 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>Pebble2.2あたりから重くなってきた？</title>
    <link>http://tanalog.com/pebble/2008/02/13/1202832822672.html</link>
    <description>
      FCKEditor、DWR、scriptaculousにprototypeと、Javascriptライブラリ利用が増えたせいでしょうか、Pebbleが少しずつ重くなってきているような気がします。また、サーバー側も一部しか使っていないのだけど、Spring、DWRなどを使っていますのでパフォーマンスが悪くなってきているのかなと。キャッシュ（ehcache）などで速度アップをしているけど追いついていないのでしょうか？Pebbleはライトウェイトなブログであって欲しい！そう思っています。
    </description>
    <content:encoded><![CDATA[
      
      <p>FCKEditor、DWR、scriptaculousにprototypeと、<br />
Javascriptライブラリ利用が増えたせいでしょうか、<br />
Pebbleが少しずつ重くなってきているような気がします。<br />
<br />
また、サーバー側も一部しか使っていないのだけど、<br />
Spring、DWRなどを使っていますのでパフォーマンスが<br />
悪くなってきているのかなと。<br />
<br />
キャッシュ（ehcache）などで速度アップをしているけど追いついていないのでしょうか？<br />
<br />
Pebbleはライトウェイトなブログであって欲しい！<br />
そう思っています。</p>
    ]]></content:encoded>
    
    <category>Blog News</category> 
    <comments>http://tanalog.com/pebble/2008/02/13/1202832822672.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2008/02/13/1202832822672.html</guid>
    <pubDate>Wed, 13 Feb 2008 01:13:42 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>SoftReference</title>
    <link>http://tanalog.com/pebble/2007/11/15/1195069516161.html</link>
    <description>
      ここの書込みをしていないですね。最近Pebbleの解析をしていないのであまりネタがありませんが、少し覚書きなどに使おうと思います。ブログのエントリーをXMLでファイルシステムに保存し、起動時にエントリーを（時には全て）配列に読み込み、必要に応じLuceneでインデックスを作成する。RDBMSを使わずとも十分な検索パフォーマンスが得られ、さらにメンテナンス性も高く申し分ない構造ですが、複数ブログの場合はエントリー数は膨大になってしまうのが欠点です。何らかのキャッシュシステムが必要になってきます。Peb...
    </description>
    <content:encoded><![CDATA[
      
      <p>ここの書込みをしていないですね。<br />
最近Pebbleの解析をしていないのであまりネタがありませんが、少し覚書きなどに使おうと思います。<br />
<br />
ブログのエントリーをXMLでファイルシステムに保存し、起動時にエントリーを（時には全て）配列に読み込み、必要に応じLuceneでインデックスを作成する。<br />
<br />
RDBMSを使わずとも十分な検索パフォーマンスが得られ、さらにメンテナンス性も高く申し分ない構造ですが、複数ブログの場合はエントリー数は膨大になってしまうのが欠点です。<br />
何らかのキャッシュシステムが必要になってきます。<br />
<br />
Pebbleではこれを、<br />
java.lang.ref.SoftReference を使って、エントリークラスの配列（日単位）をガベージコレクション（FullGC）が作動した際に自動的に参照が切れるようにして開放の候補にさせています。<br />
<br />
GCがVMの実装依存であるため、またJDK6でも構造がかなり変わっているので不安な面もありますが、ほぼ問題なく動いているように思います。<br />
<br />
Java特有のデザインではありますが、大変実装がしやすく、メンテナンスしやすいです。他のシステムでも応用ができると思います。<br />
<br />
最近はRDMSを使用しないシステム開発こそが最も「幸せ」なのではないかと感じています。<br />
<br />
またXMLパースですが、Pebbleでは XML->ObjectにSAX、Object->XMLにDOMを使っています。今だとJAXBを使うことも出来ますし、また軽量にXML->ObjectだけJakarta CommonsのDigesterを使うのもありです。<br />
<br />
[追記]<br />
Pebble2.xからはehcacheを使って効率をあげています。<br />
やはりコントロールが出来ないのがネックなんでしょうね。</p>
    ]]></content:encoded>
    
    <category>Blog News</category> 
    <comments>http://tanalog.com/pebble/2007/11/15/1195069516161.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2007/11/15/1195069516161.html</guid>
    <pubDate>Thu, 15 Nov 2007 04:45:16 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>TrackBackToken</title>
    <link>http://tanalog.com/pebble/2007/01/24/1169566955011.html</link>
    <description>
      スパム対策で2.0から実装されたTrackBackToken。10分の有効期限で、そのトークンは20分に一度タイマータスクで削除している。このスレッド、動いてないような気がします。匿名クラスで定義していて、そこからTrackBackTokenManagerクラスのメソッド（isValid）を呼ぶとダメなのでは？TimerTaskを継承してちゃんとクラス作る必要ありか。.NETのDelegateがあると便利？
    </description>
    <content:encoded><![CDATA[
      
      <p>スパム対策で2.0から実装されたTrackBackToken。<br />
10分の有効期限で、そのトークンは20分に一度タイマータスクで削除している。<br />
このスレッド、動いてないような気がします。<br />
匿名クラスで定義していて、そこからTrackBackTokenManagerクラスのメソッド（isValid）を呼ぶとダメなのでは？<br />
TimerTaskを継承してちゃんとクラス作る必要ありか。<br />
<br />
.NETのDelegateがあると便利？</p>
    ]]></content:encoded>
    
    <category>Bugs</category> 
    <comments>http://tanalog.com/pebble/2007/01/24/1169566955011.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2007/01/24/1169566955011.html</guid>
    <pubDate>Wed, 24 Jan 2007 00:42:35 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>スレッドセーフでないListの多用</title>
    <link>http://tanalog.com/pebble/2007/01/20/1169293018354.html</link>
    <description>
      ブログエントリーからはじまってコメント、トラックバックなど、PebbleではArrayListが多用されています。しかし、ArrayListはVectorに比べ軽量ですがスレッドセーフではありません。アクセスが多いブログだと「java.util.ConcurrentModificationException」がログに大量に吐き出されています。
    </description>
    <content:encoded><![CDATA[
      <p>ブログエントリーからはじまってコメント、トラックバックなど、PebbleではArrayListが多用されています。<br />しかし、ArrayListはVectorに比べ軽量ですがスレッドセーフではありません。<br />アクセスが多いブログだと「java.util.ConcurrentModificationException」がログに大量に吐き出されています。</p>
      <p>複数のスレッドからListにアクセスするには、Collections.synchronizedListでラップして、かつイテレーション処理を synchronized ブロックで囲うのが本来の姿です。<br />
しかも参照のみの場合でもこの例外が出るためその修正は広範囲にわたり、パフォーマンスに影響があります。<br />
<br />
Pebble2.0以降でも追加、削除の部分だけしか synchronized 指定はないのでこの現象が出ていると思います。<br />
Pebbleに限らずマルチスレッドでのArrayListの多用はデッドロックを招く危険性があり大きな問題です。<br />
<br />
（タグの foreach はどうなっているんだろ？）<br />
<br />
J2SE5.0で追加された CopyOnWriteArrayList は書き込み時だけコピーが生成される便利なクラスで、synchronized の指定も要らないのでこれを使うのがベストかと思います。<br />
</p>
    ]]></content:encoded>
    
    <category>Bugs</category> 
    <comments>http://tanalog.com/pebble/2007/01/20/1169293018354.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2007/01/20/1169293018354.html</guid>
    <pubDate>Sat, 20 Jan 2007 20:36:58 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>コメントスパム</title>
    <link>http://tanalog.com/pebble/2006/07/03/1151913638539.html</link>
    <description>
      海外サイトからのコメントスパムが増えてきましたので、コメント・トラックバックの受付を一時的に停止します。Pebbleでこの操作をするには、プラグイン設定の、エントリーデコレーターの部分に、pebble.decorator.DisableResponseDecoratorを追加することで一時的にすべてのレスポンス受付を停止することができます。追記：これでは既に登録されたアドレスに送られてしまうのでNGです。やはり認証機能が必要です。
    </description>
    <content:encoded><![CDATA[
      
      <p>海外サイトからのコメントスパムが増えてきましたので、コメント・トラックバックの受付を一時的に停止します。<br />
Pebbleでこの操作をするには、<br />
プラグイン設定の、エントリーデコレーターの部分に、<br />
<blockquote>pebble.decorator.DisableResponseDecorator</blockquote>を追加することで一時的にすべてのレスポンス受付を停止することができます。<br />
<br />
追記：<br />
これでは既に登録されたアドレスに送られてしまうのでNGです。<br />
やはり認証機能が必要です。</p>
    ]]></content:encoded>
    
    <category>Blog News</category> 
    <comments>http://tanalog.com/pebble/2006/07/03/1151913638539.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2006/07/03/1151913638539.html</guid>
    <pubDate>Mon, 03 Jul 2006 17:00:38 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>サーバー移行でブログが表示されない[FIXED]</title>
    <link>http://tanalog.com/pebble/2006/06/12/1150100949582.html</link>
    <description>
      Windows2003サーバーにブログをインストールした場合。通常問題なく動作するが、他のOSで動作させ保存したブログデータをコピーするとエラーログに日付の変換が出来ないエラーが出てブログが表示されない。「Couldn&#039;t parse date of ･･･」
    </description>
    <content:encoded><![CDATA[
      <p>Windows2003サーバーにブログをインストールした場合。<br />通常問題なく動作するが、他のOSで動作させ保存したブログデータをコピーするとエラーログに日付の変換が出来ないエラーが出てブログが表示されない。<br />「Couldn't parse date of ･･･」</p>
      <p>原因：<br />
JVMのロケールの違いで月のパターン「MMM」の解釈が違うため。<br />
たとえば、ja_JPで「6」の場合、<br />
en_USでは「Jun」となる。<br />
<br />
Windows2003サーバーのWeb EditionはMUI（Multilingual User Inteface）によって日本語がサポートされ、ベースが英語版のためJVMのデフォルトロケールが「en_US」にセットされている。<br />
<br />
解決方法：<br />
他の環境のデータを移行する場合に、Tomcatの起動オプションを使ってそのロケールに合わせる。<br />
<br />
-Duser.language=ja<br />
-Duser.country=JP<br />
-Duser.region=JP<br />
<br />
本来格納されるデータの日付形式は、ロケールに依存しないフォーマットである必要があります。<br />
しかしパターン「MMM」によって期待する「Jun」などの表記はRFCで標準化されているので日本語ロケールでそのパターンがないのが問題とも言えます。<br />
（「MMM」で「Jun」、「MMMM」で「6月」といった拡張が必要かも）<br />
<br />
とりあえず、上記オプションで対応しますが、書式パターンについては今後互換性を保って修正します。</p>
    ]]></content:encoded>
    
    <category>Bugs</category> 
    <comments>http://tanalog.com/pebble/2006/06/12/1150100949582.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2006/06/12/1150100949582.html</guid>
    <pubDate>Mon, 12 Jun 2006 17:29:09 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>Tagがすぐに反映されない[FIXED]</title>
    <link>http://tanalog.com/pebble/2006/04/20/1145526427970.html</link>
    <description>
      Pebble1.9で、エントリー投稿直後にタグを表示しても出てこないです。SimpleBlog.javaで、public void blogEntryAdded(BlogEntryEvent event)などの処理があるにも関わらずどこからも呼ばれていない。イベントをパラメータとしているので、EventDispacher周りを見たがどこにも見当たりません。リスナーにもそういう処理は無いように思います。なので、BlogEntry.javaのstore()、remove()内で強制的にコールしたらうまく...
    </description>
    <content:encoded><![CDATA[
      
      <p>Pebble1.9で、エントリー投稿直後にタグを表示しても出てこないです。<br />
<br />
SimpleBlog.javaで、<br />
public void blogEntryAdded(BlogEntryEvent event)<br />
などの処理があるにも関わらずどこからも呼ばれていない。<br />
イベントをパラメータとしているので、EventDispacher周りを見たがどこにも見当たりません。リスナーにもそういう処理は無いように思います。<br />
なので、BlogEntry.javaのstore()、remove()内で強制的にコールしたらうまくいきました。<br />
<br />
[後記]<br />
うまくいっていませんでした^^;<br />
このバージョンにあるエントリーリスナーでSimpleBlog.blogEntryAddedを呼び出すものはないようです。宙ぶらりんみたいです。<br />
BlogEntry.setTag()で強引にタグにエントリーをセット。</p>
    ]]></content:encoded>
    
    <category>Bugs</category> 
    <comments>http://tanalog.com/pebble/2006/04/20/1145526427970.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2006/04/20/1145526427970.html</guid>
    <pubDate>Thu, 20 Apr 2006 18:47:07 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>最近の修正まとめ</title>
    <link>http://tanalog.com/pebble/2006/03/23/1143122376172.html</link>
    <description>
      今年に入ってTANALOGは大きな機能追加などはしていませんが、ここのところ細かな修正を入れているのでまとめておきます。大きな修正は4月以降になると思います。
    </description>
    <content:encoded><![CDATA[
      <p>今年に入ってTANALOGは大きな機能追加などはしていませんが、ここのところ細かな修正を入れているのでまとめておきます。<br />大きな修正は4月以降になると思います。</p>
      <p>特にコミュニティサイト向けの拡張が多いです。<br />
<br />
・オンラインサインアップ機能<br />
　（管理者へのメール通知つき）<br />
・メニューをシンプル版とフル機能版の２通り用意<br />
・グループアクセス機能（サイト内ユーザーのみ閲覧）<br />
・日付変更機能<br />
・アクセスランキング集計機能<br />
<br />
などです。<br />
<br />
今後グループアクセス機能にブログを見るだけの読者登録機能を追加予定など、会員制のブログポータル機能を追加していきます。<br />
<br />
さらに、タグをポータルでも集計して表示する機能も開発中です。<br />
<br />
ところでPebble2.0のローカライズはどうすればよいのかな？<br />
構造とか変わったのか調査する必要があります。</p>
    ]]></content:encoded>
    
    <category>Changes</category> 
    <comments>http://tanalog.com/pebble/2006/03/23/1143122376172.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2006/03/23/1143122376172.html</guid>
    <pubDate>Thu, 23 Mar 2006 22:59:36 +0900</pubDate>
    
    
  </item>
  
  <item>
    <title>Pebble 2.0</title>
    <link>http://tanalog.com/pebble/2006/02/19/1140278230310.html</link>
    <description>
      サイモン氏のブログにPebbleの2.0作成中！とありますね。初めてのメジャーバージョンアップとなるわけで、その概要はいかに･･･
    </description>
    <content:encoded><![CDATA[
      <p>サイモン氏の<a href="http://www.simongbrown.com/blog/" target="_blank">ブログ</a>にPebbleの2.0作成中！とありますね。<br />初めてのメジャーバージョンアップとなるわけで、その概要はいかに･･･</p>
      <p>すでに彼のブログは2.0ベースになってるからほぼ出来てるみたい。<br />
見た目はあんまり変わってないような気がしますし、構成もあまり変わってない模様です。<br />
<br />
<b>Java5-JSP2.0&Servlet2.4</b><br />
新らしのも好き？のPebbleとしては当然か。<br />
でもTomcat5.5はまだ不安定な要素も残っているので、ちと怖いか･･･<br />
メリットはExpression Language（EL）での記述でしょう。<br />
<br />
<b>新セキュリティ機能</b><br />
詳しくは知らないですが、Webコンテナ標準の認証機能では不十分というのは同感。Acegi security systemはWebコンテナ標準と互換性が高いので実装も楽そうです。<br />
「Remember me」が出来るのは便利そう。<br />
<br />
総じてPebble2.0は期待が持てそうです。<br />
ただ、Pebbleは導入が楽で小規模向きというコンセプトに魅力を感じてたので、あまり欲張りにならないで欲しいですね。<br />
ただ、コンテンツをRDBMSに保存するのはオプションとして欲しいです。<br />
いま実験的に立ち上げているサイトで100ユーザまでマルチユーザーの実証ができていますが、それ以上だと現在の構造では難しいかもしれません。<br />
<br />
ちなみにTomcat5.5(5.5.9)では落ちることがあります。ログを吐かないので原因はまだわかりません。<br />
<br />
あ、それとELを使うのであればテーマファイルの構造がまた大きく変わりそうですね。これだけは勘弁して欲しいところ。<br />
Velocityなどの汎用テンプレートエンジンを介すか、MovableType構文の互換エンジンを作るなど、何か対策しないといつまでたってもテーマの種類は増えそうに無いですね。</p>
    ]]></content:encoded>
    
    <category>Blog News</category> 
    <comments>http://tanalog.com/pebble/2006/02/19/1140278230310.html#comments</comments>
    <guid isPermaLink="true">http://tanalog.com/pebble/2006/02/19/1140278230310.html</guid>
    <pubDate>Sun, 19 Feb 2006 00:57:10 +0900</pubDate>
    
    
  </item>
  
  </channel>
</rss>
