nDiki : DiKicker
DiKicker
WikiEngine 「WiKicker」をベースにした日記システム。 Perl で記述されている。
自動リンク機能により、キーワードで記事を串刺し表示可能。 各キーワードにも記事をつけられるのでパーソナルナレッジベースとしても活用できる。
スポンサード リンク
Related term
2007年3月14日 (水)
■ [ DiKicker ] ロック獲得リトライをさらに減らす

相変わらずここ最近 www.naney.org の負荷が上がり気味。 今日は Referer spam の爆撃もきていた様子。
DiKicker の挙動やログを見ていて気がついたのだが、さばききれなくなるのはどうも記事更新チェックの時間が長いからのようだ。 排他ロック獲得ループの回数が今の設定でも長い。
どのみち負荷が高い場合は共有ロックの方が勝ち気味で、排他ロックできなくて終わることが多いはずなので、思いきってもっとリトライの回数を減らしておいた。
それとロック獲得ループの中で「結局ロックできなかった時」に余計に1回 sleep() していたのでこれを削除。
- サーバの負荷が高くなったら DiKicker が 503 を返して沈静化を... (2007-04-05)
- 無制限 HTML タグ付けブロックを使って nDiki に Google ... (2007-08-23)
- nDiki のレスポンスが悪くなってきたので DiKicker 修正 (2006-08-29)
- [ DiKicker ] 語リストを Term DB に保持 (2006-11-21)
- Google AdSense (2004-07-03)
2007年4月3日 (火)
■ WiKicker に JSON でのページ出力機能を追加

最近は DiKicker ばかりに手を入れていたが、久しぶりに WiKicker の改良も行っている。 しばらく前から実装を始めていた JSON 形式での出力機能が今日完成。
今までは WikiPage について
という2つの出力形式を持っていたので、JSON が加わることで3つめとなる。
@ サーバ側で WikiPage の構文解析まではやる
クライアントサイドの JavaScript でページの内容に合わせて様々な処理をできるように、サーバ側で構文解析まではしてあげるというのが主な目的。
JavaScript でまたパーサを書いてメンテしていくのも大変なので、その部分はサーバでやってしまおうかと。 構文解析した結果の解析木を JSON 形式で返して、JavaScript 側であとはお好きにという形。
@ CPAN にある JSON モジュールを使用
サーバ側の Perl プログラムには、構文解析をして解析木を作れるようになっている。 この解析木から Visitor パターンで JSON 形式を生成していく。
依存モジュールを増やすことを避けるべく、最初は自前で JSON 形式に変換していこうと思ったのだがやっぱり面倒だった。 ということで CPAN にあるモジュールをチョイス。
JSON 関連では JSON、JSON::Syck、JSON::PC などがあるが今回はインストールのしやすさを考えて pure Perl モジュールとして実装されている JSON を採用することにした。
Visitor クラスで解析木を無名ハッシュ/無名配列のツリーに変換して、JSON モジュールに流しこめば OK。
use JSON; my $json = JSON->new(pretty => 1); my $js = $json->objToJson($tree);
WiKicker のフレームワークにはフォーマット別に出力を切り換える機構があるので、これに JSON を追加して application/json で送るようにして完成。
ちなみに残念ながら JSON 1.07 は Perl 5.005_03 では make test が fail するので、NaneyOrgWiki では使えない。
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker の Makefile.PL を Module::Inst... (2006-02-10)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- 定型書式で内容を記述していくのに便利な形式は? (2005-11-21)
- [ WiKicker ] 憧れのサイドバー (2004-01-23)
2007年4月5日 (木)
■ サーバの負荷が高くなったら DiKicker が 503 を返して沈静化を待つようにした

www.naney.org を収容しているサーバの負荷が高い状態。
という対処をしたけれどそれでもなかなか負荷が落ちつかない。
傾向としては SpeedyCGI のバックエンド側(speedy_backend)が MaxBackends まで起動して処理が追いつかないと、起動しているフロントエンド側 (speedy) がどんどん増えてしまうという状況のようだ。
DiKicker の高速化も順次着手しているのだけれど追いつきそうにもないので、loave average が高い時は頑張らずに無条件に 503 を返すように修正して対応(以前 hns の時にも同じことをした)。
本当は SpeedyCGI フロントエンドの数に応じて負荷の軽い処理に切り換える等工夫したいんだけれど、フロントエンドの数を取得する方法は簡単にはなさそうなんだよなあ。
- www.naney.org サーバ断続的にダウン (2006-04-30)
- [ Perl ] Log::Log4perlのはまりどころ (2004-03-02)
- 私的10大ニュース2004 [ web ] (2004-12-31)
- サーバ高負荷状態につき DiKicker 機能修正とサーバ設定変更 (2006-03-03)
- [ DiKicker ] ロック獲得リトライをさらに減らす (2007-03-14)
2007年5月30日 (水)
■ WiKicker 0.420 リリース - 変更いろいろ

去年の12月3日以来、約半年ぶりのリリース。 リリースしそびれて、随分変更を累積してしまった。 以下主な変更点。
@ バージョン番号形式を変更
前回の 0.41 に対して、今回は 0.420 とした。 浮動小数点数的には、増分 0.01 で今まで通り。
今後 version.pm が普及した時のことと、developer release を出す時のことを考えて小数点以下3桁ずつのスタイルに移行することにした (関連記事)。
@ <meta name="robots" content="noindex,nofollow">
2007年1月に実装。 編集ページや履歴ページが検索エンジンに登録されないようにするための機能。
@ <a rel="nofollow">
2007年1月に実装。 リンク spam 対応。
@ AutomaticLink 長を可変にした
2007年3月に実装。 特に DiKicker で1文字キーワードによる自動リンクを有効にするために追加した。
@ '/' の前を省略した自動リンクを有効にするか無効にするかを設定できるように
前述の機能で1文字での自動リンクを有効にしたら、不便な面が出た。
WiKicker / DiKicker では '/' を階層の区切り文字としても扱うことができるようになっていて、サフィックス部分だけでも自動リンクするようになっている。 自動リンクを1文字にしたら「OS/2」というキーワードに対して '2' でも自動リンクが働き、望まないリンクが張られるようになってしまった。 DiKicker では階層的キーワードは無くてもあまり困らないので、'/' の前を省略した自動リンクを無効にできるようにした。
@ JSON 形式データ出力
@ (DiKicker) はてなブックマーク数表示機能を追加
@ (DiKicker) はてなブックマークエントリーページへのボタン表示機能を追加
@ (DiKicker) grep 検索機能を追加
2007年2月に実装。自分としては重宝している。
@ (DiKicker) キーワード記事の下部への文字列挿入機能
Google AdSense 挿入用。
@ (DiKicker) サーバの負荷が高くなったら 503 を返して沈静化を待つようにした
2007年4月に実装 load average をチェックして負荷が高い時は、503 を返すようにした。
@ 内部コードの結構な書き換え
ソースコードを結構いじった。 deprecated なメソッドの削除も実施したので、0.41 以前から派生しているソフトウェアは多くの場合修正が必要。
- DiKicker に grep 検索機能を追加 (2007-02-02)
- 社内 Blog 開設 (2006-05-16)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker 0.29 リリース - ビルドまわりの改良など (2006-02-13)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
2007年7月11日 (水)
■ nDiki に「はてなスター」をつけてみた

本日よりはじまった「はてなスター」をつけてみた。 nDiki (by DiKicker) はほぼ tDiary 互換の HTML 構造なので、はてなスターの JavaScript プログラムを読み込むようにするだけで、各記事の見出しに Add ボタンが表示されるようになった。素晴しい。
ページの HEAD 要素の中で JavaScript プログラムを読むように指定されているのだが、今の DiKicker ではちょっと手を入れる必要があるので、とりあえずフッタ部分に挿入。
- DiKicker にそろそろコメント機能を実装するか (2005-01-26)
- [ DiKicker ] くっつき BBSをくっつけてみた。 (2004-05-04)
- はてなブックマーク上の最新ブックマークを nDiki に (2005-05-16)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- DiKicker に n 年日記機能を追加 (2006-11-03)
2007年8月23日 (木)
■ 無制限 HTML タグ付けブロックを使って nDiki に Google Maps を貼る

Google Maps が ID を取得しないでも簡単に自分のサイトに貼れるようになった。 Google Maps で表示される HTML コードをページに埋め込めば、好きな場所の地図を貼ることができる。 これは嬉しい。
早速 nDiki でも貼りたい。
しかし WiKicker という WikiEngine をベースとした DiKicker を使っている nDiki では、現在のところ直接 HTML コードを使えるようにしていないのである。
「HTML タグ付けを許すのは嫌」というスタンスできたのだが、他のサービスを貼るという魅力にはやはり勝てないな。 HTML 直書きを許すのは大局的にはデータ活用性などで好ましくない部分もあるが、各種サービスを活用できないで利用価値が下がるのは本末転倒なので、わかった上で使うということで。
ということで nDiki で HTML タグ付けブロック機能を有効に設定。
ちなみに現行では HTML::Scrubber ベースで、使えるタグ・属性に制限をつけるフィルタしか用意してなかった。これだと Google Maps のコードがそのまま貼れない。 ということで「DiKicker」および「書く人が限定されているような Wiki」での利用を想定した無制限にスルーするフィルタモジュールを新規追加。
これで Google Maps を貼れるようにした。
では早速。
拡大地図を表示
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- 最近の Twitter ステータスを nDiki 「最近のさえずり」ページ... (2007-11-23)
- [ WiKicker ] form/list の paragraph から... (2003-05-03)
- [ WiKicker ] WiKicker へ脚注機能追加 (2004-02-10)
- Wikiの文法の標準化 (2004-02-10)
2007年11月5日 (月)
■ [ DiKicker ] 関連語から、着目キーワード記事内の語を除外

DiKicker が持っているキーワード毎の関連語表示機能(2005年6月4日)は、関連する語を発見したりたどったりするのに思ったより便利で、よく自分でも使っている。 特にキーワード記事に明示的に関連語リストをつける時に参考にしている。
ただ現在の実装だと(当然)キーワード記事に書いた関連語リストによって関連度がさらに上がるので、新しい語が発見できなくなってしまう。
ということでキーワード記事に出現する語は、関連語リストに含まれないようにした。 合わせて関連語表示数も 20 から 30 に調整しておいた。
これで
- あるキーワードの関連語を見る。
- 関連語表示を見て関連語を探し、重要ならキーワード記事で言及する。あるいは関連情報としてリンクする。
- 関連語表示には、その語が取り除かれて次点の語が表示されるようになる。
という流れで情報発見できるようになった。 ページ間のリンクも強化されるので SEO 的もちょっといいのかな。
- DiKicker に n 年日記機能を追加 (2006-11-03)
- 無制限 HTML タグ付けブロックを使って nDiki に Google ... (2007-08-23)
- nDiki のレスポンスが悪くなってきたので DiKicker 修正 (2006-08-29)
- DiKicker の DB に余分な情報まで保存していた (2006-11-07)
- [ DiKicker ] ページの中の最初の記事に1回だけ文字列を挿入する機能 (2006-11-15)
2007年11月9日 (金)
■ Twitter ステータスを nDiki サイドバーに表示

公式の Flash 版 Twitter badge をこのページのサイドバーに表示していたが、以下の点でちょっと不満だった。
- 「Flash, Just Me」: 自分のみのステータスを表示できるが、1度に1つのみ。キャッシュの関係で古い情報が表示されがち。
- 「Flash, With Friends」: 自分のみのステータスを表示できない。
- 「HTML/JavaScript」: JavaScript ファイル読み込みなので、Twitter 側が重いとページのその先のレンダリングが止まってしまう。
「自分の過去のステータスを一覧的にサイドバーに表示する」のがしたいことなのだが、ちょっとマッチしない。 ということで Twitter から RSS フィードを取ってきて、サイドバーに表示することにした。
使ったモジュールは URI::Fetch + XML::RSS + Date::Parse。 それとユーティリティとして WiKicker::HTML と WiKicker::URI。
- cron で定期的に Twitter から RSS フィードをとってきて、Perl スクリプトで HTML フラグメントに変換。
- DiKicker が読み込む(サイドバーを含む)フッタファイルに挿入。
と簡単に実装してみた。機能的には概ね満足。
今後は L:~ や URL の自動リンク化、キーワードの自動リンク化を適宜したい。
- はてなブックマーク上の最新ブックマークを nDiki に (2005-05-16)
- Plagger のインストールが大変なので XML::RSS で RSS ... (2006-06-10)
- クリッピングに便利な CMS 「Tumblr」を使ってみる (2007-04-13)
- Flickr の写真を自動的に Twitter アイコンにする (2008-03-13)
- はてなブックマーク上の検索結果を nDiki に (2005-10-30)
2007年11月23日 (金)
■ 最近の Twitter ステータスを nDiki 「最近のさえずり」ページに自動表示

11月9日から「Twitter ステータスを nDiki サイドバーに表示」しているのだが、それで使っているスクリプトにちょっと手を加えて「最近のさえずり」という nDiki ページを自動生成/更新するようにした。
サイドバーは RSS フィードと同じく最近の20件を表示するのに対し、最近のさえずりページには数日分表示するようにした。
ここ最近は Twitter のステータスをとりまとめて、ライフログ的に nDiki に上げているのだが、今までは Twitter Web ページやサイドバーの部分から手作業でコピーして日時やリンクを整形していたので面倒であった。
今回の(30分毎に)自動更新するページは最初から WiKicker / DiKicker 用の Wiki 文法で出力している。 なので、これからはこの自動生成ページから必要なものだけを抜き出して貼り付ければよい。 これで楽ちんになるはず。
ほぼ自分用。自己満足。
- 社内 Blog 開設 (2006-05-16)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- 他の Web サイトの情報を URI::Fetch でキャッシュ付き取得 (2005-10-29)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
2008年8月23日 (土)
■ フィード向け AdSense を追加してみた

Google AdSenseで「フィード向け AdSense」が利用可能になったので、nDiki に追加してみた。
Google AdSenseにログインして nDiki の URL を指定してフィードを登録すると、FeedBurner 上にフィードが作成される。
www.naney.org 側では nDiki のフィードへのアクセスがきたら、FeedBurner 上のフィードへリダイレクトするように設定する。 ただし FeedBurner から巡回がきた際にはリダイレクトせずに、nDiki のオリジナルフィードにアクセスさせる。
www.naney.org のトップディレクトリの .htaccess に以下を追加。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !FeedBurner
RewriteRule ^diki/d/rss\.rdf$ http://feedproxy.google.com/nDiki [L,R]
思ったよりあっけなく設定終了。
今のフィード URL が既にフィードリーダーに登録してもらっていることを考えて nDiki (DiKicker) に「FeedBurner 向けに別 URL でのフィード出力機能」と「現在のフィード URL からのリダイレクト機能」を追加する必要があるなと思っていたのが、mod_rewrite が使えれば手間無しだった。
nDiki のフィードと同様の内容に広告が挿入されたバージョンのフィードが http://feedproxy.google.com/nDiki で表示されることを確認。
せっかくなので FeedBurner のレポート機能もチェックしてみることにしよう。
- サーバ高負荷状態につき DiKicker 機能修正とサーバ設定変更 (2006-03-03)
- DiKicker の出力する HTML コードを小さく (2006-10-05)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- WiKicker に Flickr 関連機能追加 (2005-02-11)
- Twitter ステータスを nDiki サイドバーに表示 (2007-11-09)
■よく検索されるキーワード
perl(52) 使い方(36) 提案書(35) windows(35) ドラマ(33) 書き方(30) cvs(28) サンプル(22) linux(21) torrent(20) debian(19) x31(19) 壁紙(19) 作り方(19) アジェンダ(18) 画像(17) 手帳(17) thinkpad(17) tc-1(17) 動画(15) rcs(15) アジェンダとは(15) ナースのお仕事(15) java(15) 桑田佳祐(14) ganttproject(14) 修理(14) gtd(13) 冷蔵庫(13) ほぼ日手帳(13) 桜井華子(12) wiki(12) google(12) 設定(12) tortoisesvn(12) ダイソー(11) ssh(11) apache(11) usb(11) 影舞(11) ウォーターボーイズ2(11) ノート(10) インストール(10) svn(10) ボールペン(9) so905ics(9) cgi(9) 無印(9) 方眼(9) xp(9) バッグインバッグ(9) subversion(9) 市原隼人(9) ヨドバシ(9) centos(9) djunit(8) c#(8) activeperl(8) ミムラ(8) 東京総合車両センター(8) 無印良品(8) make(8) ubuntu(8) 深浦加奈子(8) 写真(8) junit(7) 本名(7) 姉(7) thinkingrock(7) ケース(7) 生年月日(7) 口コミ(7) 山川レイカ(7) チェックリスト(7) 例文(7) つけ麺(6) eclipse(6) web(6) 秋葉原(6) httpd.conf(6)■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 方法 設定 サンプル ダウンロード セール 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 最新 MP3 動画 Torrent 解説 意味 用語集 参考文献 お薦め お勧め おすすめ 便利 Blog ブログ mixi 待受画面 相場Process Time: 0.753828s / load averages: 0.63, 0.44, 0.41
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)



スポンサード リンク