You are using IPv4 :(

Habari 0.5.2がリリースされました。

habari-logo.png10月18日にHabari 0.5.2がリリースされました。
テンプレートエンジンへの変数の受け渡しに致命的なセキュリティ上の問題が見つかったため、これを修正するためのマイナーアップデートです。
新機能の追加はありませんが、Habari 0.5を使ってる方全てに推奨されるアップデートです。
Habari 0.5を使っている方は早急に0.5.2にアップデートしてください。

Rate It! (Average 0.00, 0 votes)

Habari 0.5.1がリリースされました

habari-logo.png9/19にHabari 0.5.1がリリースされました。
Atom Publishing Protocolにセキュリティ上の問題が見つかったため、これを修正するためのマイナーアップデートです。
新機能の追加はありませんが、Habari 0.5を使ってる方全てに推奨されるアップデートです。
Habari 0.5を使っている方は早めに0.5.1にアップデートしてください。

Rate It! (Average 5.00, 1 votes)

Habari に乗り換えるべき10の理由

habari-logo.pngサーバインストール型のブログツールと言えばWordPress、Movable Type等がメジャーですが、よりCoolで新しいHabariというブログツールがあります。
既存のブログツールから乗り換えてでもHabariを使うべき10の理由を紹介します。

  1. 洗練された管理インターフェース Monolithと命名されたインターフェースはAjax技術を利用しており軽快に動作します。[screencast]
  2. メディアサイロ FlickrやYoutubeなどWebサービス上にアップロードしたファイルにHabariから簡単にアクセスすることが出来ます。[screencast]
  3. 対応データベースが豊富 MySQLの他にPostgreSQL、 SQLiteにも対応しており、今までMovable Typeぐらいしか選択肢がなかったような環境でもインストール可能です。
  4. セキュアである データベースアクセスにPDO(PHP Data Object)を使用しており、PDO::prepare経由でSQLを実行しているのでSQLインジェクションが行われにくくなっています。
  5. 豊富なプラグイン 2008/09/01時点でHabariのプラグインリポジトリには101個ものプラグインが登録されています。
  6. マルチサイト対応 一度インストールするだけで複数のブログを運営可能です。そのため個別にアップデート、プラグインのインストールを行う必要はありません。
  7. 簡単に移行出来る WordPress、S9y用のインポートプラグインが同梱されています。インポートプラグインを使えば今まで書きためた記事、タグ、ユーザ、コメント、トラックバックをそのままHabariに移せます。(Movable Type用のインポートプラグインも開発中)
  8. 優れた拡張性 Habariはforkではなく1から開発されているため過去の遺産に縛られず、MVC構造、オブジェクト指向等、先進的な設計になっており拡張性にも優れています。
  9. 多言語対応 Ver 0.5から5つの言語が本体に同梱されています。さらにコミュニティによって24カ国語への翻訳も進められています。
  10. Great Community Habariは強力なコミュニティによって開発、支えられています。万が一分からない事に遭遇してもhabari-usersや、habari-devIRCできっとあなたの助けになれる人がいるはずです。

Habari Project

Rate It! (Average 4.50, 2 votes)

Habari 0.5がリリースされました!

予定より1ヶ月ほど遅れましたが本日14時頃にHabari 0.5がリリースされました :D
今年2月に公開された0.4から5ヶ月ぶりのメジャーアップデートです。
0.5での主な変更点は以下のとおりです。

  • 新しい管理インタフェース(Monolith)
  • デフォルトの英語以外にデンマーク語、ドイツ語、日本語、中国語繁体字の4つの言語ファイルを同梱
  • 3つのテーマを同梱
  • データベースバックエンドとしてMySQL、SQLiteの他にPostgreSQLをサポート
  • セッションハンドリングの向上
  • 限定的なUTF-8のサポート
  • WordPress、Serendipityからのデータインポートプラグインを同梱
  • SQLiteバックエンド使用時のセキュリティ向上
  • プラグイン向けに新しく書き直されたFormUIクラス
  • その他沢山の修正

リリースアナウンス
ダウンロード

Habari 0.5での日本語の対応状況についてですが、デフォルトで日本語の言語ファイルが含まれていますので管理インタフェースのオプションからLocaleをjaに設定するだけで日本語に切り替える事が出来ます。
しかし、まだ英語テキストがハードコーディングされている部分があるため、未翻訳のテキストが残っています。
また、UTF-8以外の多言語トラックバック問題に関してもコードフリーズに間に合わなかったため、これらの問題は0.5以降で修正されていくことになります。

Rate It! (Average 0.00, 0 votes)

HabariでUTF-8以外の文字コードを使用しているブログからPingbackを受け取る

Habariはデフォルトで文字コードがUTF-8に設定されているので問題なくUTF-8なBlogからのPingbackを受信することが出来ます。
しかし、古いバージョンのWordPress ME等は文字コードにEUC-JPを使用しているため、これらのブログからのPingback文字化けしてしまいます。

そこでPingback受信時に送信元ブログの文字コードを取得してUTF-8以外であれば文字コードを変換するパッチを書いてみました。
パッチを適用するには下記のパッチをダウンロード後、Habariのルートディレクトリでpatch -p0 < pingback.plugin.php.r1747.mbconv.diff してください。

HabariProjectにもこのパッチを送ってあるのですが、現在はVer 0.5にむけてリポジトリがFeature Freezeにはいっているためすぐにcommitしてもらうのは難しそうです。

pingback.plugin.php.r1747.mbconv.diff

--- system/plugins/pingback/pingback.plugin.php.orig    2008-05-23 05:49:42.000000000 +0900
+++ system/plugins/pingback/pingback.plugin.php 2008-05-23 06:15:36.000000000 +0900
@@ -150,6 +150,16 @@
}
$source_contents= $rr->get_response_body();

+ // for Multi-byte
+ if ( function_exists ( 'mb_convert_encoding' ) ) {
+ // TODO: $habari_encoding= Options::get('encoding');
+ $habari_encoding= 'UTF-8';
+
+ if ( preg_match( "/]+charset=([A-Za-z0-9\-\_]+)/i", $source_contents, $matches ) !== false && strtolower( $habari_encoding ) != strtolower( $matches[1] ) ) {
+ $source_contents= mb_convert_encoding( $source_contents, $habari_encoding, $matches[1] );
+ }
+ }
+
// Find the page's title
preg_match( '/(.*)<\/title>/is', $source_contents, $matches );<br /> $source_title= $matches[1];</code></pre><div class="rateit" id="rateit-72">Rate It! (Average 0.00, 0 votes)<div class="rateit-stars rateit-nostar"><ul id="rateit-list-72"> <li class="rateit-one"><a href="#" title="Poor">1</a></li> <li class="rateit-two"><a href="#" title="Fair">2</a></li> <li class="rateit-three"><a href="#" title="Good">3</a></li> <li class="rateit-four"><a href="#" title="Great">4</a></li> <li class="rateit-five"><a href="#" title="Excellent">5</a></li></ul></div><p><img src="http://ayu.commun.jp/user/plugins/rateit/img/loading.gif" class="rateit-loading" id="rateit-loading-72" alt="" /></div></p> </div> </div> <div class="navigation">  <a href="http://ayu.commun.jp/tag/habari/page/1" class="current-page">1</a> <a href="http://ayu.commun.jp/tag/habari/page/2" >2</a> <a class="next-page" href="http://ayu.commun.jp/tag/habari/page/2" title="Next »">Next »</a> </div> </div> <div id="sidebar"> <div class="sidebox"> <div class="sidebox-title">About...</div> <div class="sidebox-content"> <p>ayunyan<br /> 143cmのちょっと変わったちびっ子</p> <p> <a href="http://twitter.com/ayunyan"><img src="http://ayu.commun.jp/user/themes/onewish/img/twitter.png" alt="Twitter" /></a> <a href="http://friendfeed.com/ayunyan"><img src="http://ayu.commun.jp/user/themes/onewish/img/friendfeed.png" alt="FriendFeed" /></a> <a href="http://ayunyan.jaiku.com/"><img src="http://ayu.commun.jp/user/themes/onewish/img/jaiku.png" alt="Jaiku" /></a> <a href="http://www.flickr.com/photos/ayunyan/"><img src="http://ayu.commun.jp/user/themes/onewish/img/flickr.png" alt="Flickr" /></a> <a href="http://delicious.com/ayunya"><img src="http://ayu.commun.jp/user/themes/onewish/img/delicious.png" alt="delicious" /></a> <a href="http://www.iknow.co.jp/user/ayunyan"><img src="http://ayu.commun.jp/user/themes/onewish/img/iknow.png" alt="iKnow!" /></a> <a href="http://steamcommunity.com/id/ayunyan"><img src="http://ayu.commun.jp/user/themes/onewish/img/steam.png" alt="Steam Community" /></a> </p> <p><img style="border: medium none; padding: 0pt 2px 0pt 0pt;" src="http://www.google.com/talk/service/resources/chaticon.gif" alt="" width="16" height="14"><img style="border: medium none ; padding: 0pt 2px 0pt 0pt;" src="http://www.google.com/talk/service/badge/Show?tk=z01q6amlq4tho6vjd1tocjakeam6rakcq39bdng8iqsd8jhpf94i4ut0jviqqukv7krmcvkltugtusi20vaj3qv7oeplg0fd8marulcoopggs16uubhlj54ajnldb5la7a9qmejau7olchrg&w=9&h=9" alt="" width="9" height="9" /><a href="http://www.google.com/talk/service/badge/Start?tk=z01q6amlq4tho6vjd1tocjakeam6rakcq39bdng8iqsd8jhpf94i4ut0jviqqukv7krmcvkltugtusi20vaj3qv7oeplg0fd8marulcoopggs16uubhlj54ajnldb5la7a9qmejau7olchrg" target="_blank" title="Click here to chat with ayunyan">Chat with ayunyan</a></p> </div> </div> <div class="sidebox"> <div class="sidebox-title">Recent Posts</div> <div class="sidebox-content"> <ul> <li><a href="http://ayu.commun.jp/2008/11/15/nekonekomovie-bigmiffy">ねこねこ動画: 巨大ミッフィー</a></li> <li><a href="http://ayu.commun.jp/2008/11/10/nekonekomovie-humihumi">ねこねこ動画: ふみふみ</a></li> <li><a href="http://ayu.commun.jp/2008/11/05/nekoneko-20081105">ねこねこ動画: ニャウニャウニャウニャウニャウ / 滑り込み! / ドリフト</a></li> <li><a href="http://ayu.commun.jp/2008/10/18/habari-0-5-2">Habari 0.5.2がリリースされました。</a></li> <li><a href="http://ayu.commun.jp/2008/09/19/habari-0-5-1">Habari 0.5.1がリリースされました</a></li> <li><a href="http://ayu.commun.jp/2008/09/15/darumasan-ga-koronda">ねこねこ動画: だーるまさんがころんだ</a></li> <li><a href="http://ayu.commun.jp/2008/09/01/10-reasons-why-you-should-switch-to-habari-ja">Habari に乗り換えるべき10の理由</a></li> <li><a href="http://ayu.commun.jp/2008/07/27/habari-0-5">Habari 0.5がリリースされました!</a></li> <li><a href="http://ayu.commun.jp/2008/06/22/nekonekomovie-20080622">今日見たねこねこ動画</a></li> <li><a href="http://ayu.commun.jp/2008/06/19/firefox-extension-fps-ellaunch-ver-0-23-0">Firefox Extension: FPSゲーム向けランチャー elLaunch Ver 0.23.0β</a></li> </ul> </div> </div> <div class="sidebox"> <div class="sidebox-title">Recent Comments</div> <div class="sidebox-content"> <ul> <li><a href="">foxconn</a> on <a href="http://ayu.commun.jp/2008/05/30/howto-etqw-tv">ET:QW TVの設定方法</a></li> <li><a href="http://gopherwood.info/">wayne</a> on <a href="http://ayu.commun.jp/2008/05/23/amazon-socialink-fckeditor-rate-it-habari-plugins-released">Amazon/Socialink/FCKeditor/Rate It! Habari Plugins released!</a></li> <li><a href="">ayu</a> on <a href="http://ayu.commun.jp/2008/04/25/dancing-kittens">首振り猫ちゃんず</a></li> <li><a href="">uno</a> on <a href="http://ayu.commun.jp/2008/04/25/dancing-kittens">首振り猫ちゃんず</a></li> <li><a href="http://kmd-home.ddo.jp/">KAMADA</a> on <a href="http://ayu.commun.jp/2006/10/01/vanilla-2">Vanillaの日本語化</a></li> <li><a href="">Salo_Papa_KTS</a> on <a href="http://ayu.commun.jp/2006/10/21/lunch">昼食</a></li> <li><a href="">Bluevery</a> on <a href="http://ayu.commun.jp/2006/10/21/lunch">昼食</a></li> <li><a href="">kirinshorn</a> on <a href="http://ayu.commun.jp/2006/10/21/lunch">昼食</a></li> <li><a href="http://ayu.commun.jp/">ayu</a> on <a href="http://ayu.commun.jp/2006/10/21/lunch">昼食</a></li> <li><a href="">berlinette</a> on <a href="http://ayu.commun.jp/2006/10/21/lunch">昼食</a></li> </ul> </div> </div> <div class="sidebox"> <div class="sidebox-title">Tags</div> <div class="sidebox-content"> <ul class="tag-cloud"> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/ajax" rel="tag" title="Ajax (1)">Ajax</a></li> <li><a style="font-size: 12px;" href="http://ayu.commun.jp/tag/blog" rel="tag" title="Blog (6)">Blog</a></li> <li><a style="font-size: 19px;" href="http://ayu.commun.jp/tag/cat" rel="tag" title="Cat (14)">Cat</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/english" rel="tag" title="English (1)">English</a></li> <li><a style="font-size: 8px;" href="http://ayu.commun.jp/tag/flickr" rel="tag" title="Flickr (2)">Flickr</a></li> <li><a style="font-size: 8px;" href="http://ayu.commun.jp/tag/freebsd" rel="tag" title="FreeBSD (2)">FreeBSD</a></li> <li><a style="font-size: 15px;" href="http://ayu.commun.jp/tag/habari" rel="tag" title="Habari (10)">Habari</a></li> <li><a style="font-size: 8px;" href="http://ayu.commun.jp/tag/openid" rel="tag" title="OpenID (2)">OpenID</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/sns" rel="tag" title="SNS (1)">SNS</a></li> <li><a style="font-size: 8px;" href="http://ayu.commun.jp/tag/vanilla" rel="tag" title="Vanilla (2)">Vanilla</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/wikipedia" rel="tag" title="Wikipedia (1)">Wikipedia</a></li> <li><a style="font-size: 13px;" href="http://ayu.commun.jp/tag/wordpress" rel="tag" title="WordPress (8)">WordPress</a></li> <li><a style="font-size: 12px;" href="http://ayu.commun.jp/tag/cat-movie" rel="tag" title="cat movie (6)">cat movie</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/domain" rel="tag" title="domain (1)">domain</a></li> <li><a style="font-size: 9px;" href="http://ayu.commun.jp/tag/ellaunch" rel="tag" title="ellaunch (3)">ellaunch</a></li> <li><a style="font-size: 25px;" href="http://ayu.commun.jp/tag/etqw" rel="tag" title="etqw (21)">etqw</a></li> <li><a style="font-size: 23px;" href="http://ayu.commun.jp/tag/etqwjpstats" rel="tag" title="etqwjpstats (19)">etqwjpstats</a></li> <li><a style="font-size: 9px;" href="http://ayu.commun.jp/tag/extension" rel="tag" title="extension (3)">extension</a></li> <li><a style="font-size: 9px;" href="http://ayu.commun.jp/tag/firefox" rel="tag" title="firefox (3)">firefox</a></li> <li><a style="font-size: 11px;" href="http://ayu.commun.jp/tag/fps" rel="tag" title="fps (5)">fps</a></li> <li><a style="font-size: 11px;" href="http://ayu.commun.jp/tag/game" rel="tag" title="game (5)">game</a></li> <li><a style="font-size: 8px;" href="http://ayu.commun.jp/tag/hatena" rel="tag" title="hatena (2)">hatena</a></li> <li><a style="font-size: 13px;" href="http://ayu.commun.jp/tag/kitten" rel="tag" title="kitten (8)">kitten</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/litebox" rel="tag" title="litebox (1)">litebox</a></li> <li><a style="font-size: 12px;" href="http://ayu.commun.jp/tag/mimi" rel="tag" title="mimi (6)">mimi</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/movable-type" rel="tag" title="movable type (1)">movable type</a></li> <li><a style="font-size: 11px;" href="http://ayu.commun.jp/tag/movie" rel="tag" title="movie (5)">movie</a></li> <li><a style="font-size: 8px;" href="http://ayu.commun.jp/tag/mozilla" rel="tag" title="mozilla (2)">mozilla</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/niconico" rel="tag" title="niconico (1)">niconico</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/piano" rel="tag" title="piano (1)">piano</a></li> <li><a style="font-size: 10px;" href="http://ayu.commun.jp/tag/plugin" rel="tag" title="plugin (4)">plugin</a></li> <li><a style="font-size: 7px;" href="http://ayu.commun.jp/tag/ports" rel="tag" title="ports (1)">ports</a></li> </ul> </div> </div> <div class="sidebox"> <div class="sidebox-title">Search</div> <div class="sidebox-content"> <form method="get" id="searchform" name="searchform" action="http://ayu.commun.jp/search"> <div><input type="text" value="" name="criteria" id="s" /> <input type="submit" id="searchsubmit" value="Search" /> </div> </form> </div> </div> <div class="sidebox"> <div class="sidebox-title">今の気温は?</div> <div class="sidebox-content"> <script src="http://ayu.commun.jp/files/nekotemp/NekoUtili.js" type="text/javascript"></script> <script src="http://ayu.commun.jp/files/nekotemp/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript"> AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width', '150','height', '150','src','http://ayu.commun.jp/files/nekotemp/nekoondokei_v2?ver='+getNekoVer(),'quality', 'high','pluginspage', 'http://www.macromedia.com/go/getflashplayer','devicefont', 'true','bgcolor', '#E5EDED','name', 'nekoondokei_v2','allowScriptAccess', 'sameDomain','movie', 'http://ayu.commun.jp/files/nekotemp/nekoondokei_v2?ver='+getNekoVer(),'flashvars', 'locID=JAXX0055&cityName=Nagasaki&loadpath=http://ayu.commun.jp/files/nekotemp/&policyfile=no'); //end AC code </script> <noscript> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="150" height="150" id="nekoondokei_v2" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="flashvars" value="locID=JAXX0055&cityName=Nagasaki&loadpath=http://ayu.commun.jp/files/nekotemp/&policyfile=no" /> <param name="movie" value="http://ayu.commun.jp/files/nekotemp/nekoondokei_v2.swf" /> <param name="quality" value="high" /> <param name="devicefont" value="true" /> <param name="bgcolor" value="#E5EDED" /> <embed src=http://ayu.commun.jp/files/nekotemp/nekoondokei_v2.swf flashvars="locID=JAXX0055&cityName=Nagasaki&loadpath=http://ayu.commun.jp/files/nekotemp/&policyfile=no" quality="high" devicefont="true" bgcolor="#E5EDED" width="150" height="150" name="nekoondokei_v2" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </noscript> </div> </div> <div class="sidebox"> <div class="sidebox-title"> </div> <div class="sidebox-content"> <script type="text/javascript" language="javascript" src="http://entne.jp/labs/blogparts/wolf3/en-us/wolf_c.js"></script> <script type="text/javascript" src="http://www.blogdeco.jp/kuro/m/shiro.js"></script> </div> </div> </div> <br style="clear: both;" /> </div> <div id="footcontainer"> <div id="footer"> Copyright (c) <a href="http://ayu.commun.jp/">ayu</a> All Rights Reserved. Powered by <a href="http://habariproject.org/">Habari 0.6-alpha.</a> </div> </div> </div> <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> var pageTracker = _gat._getTracker("UA-3945960-1"); pageTracker._initData(); pageTracker._trackPageview(); </script> <script type="text/javascript"> var woopra_id = '2192991431'; </script> <script src="http://static.woopra.com/js/woopra.js"></script> </body> </html>