nDiki : WiKicker

2006年11月1日 (水)

WiKicker 0.40 リリース - ログイン・ログアウト後の表示変更機能

10月17日以来、15日ぶりのリリース。

リクエストにより、ログイン後のリダイレクト先の指定と、ログイン完了表示ページ専用の外部 JavaScript ファイルの指定をできるようにして、ログイン・ログアウト後の表示をカスタマイズできるようにした。

また「Web ブラウザを終了させた後にログイン状態を維持するかどうかのオプション」を無効にできるように設定項目を追加。

今回のリリースでは認証機能を使っていない人には特に変更なし。

スポンサード リンク
[ 11月1日全て ]

2006年11月10日 (金)

[ 11月10日全て ]

2006年11月27日 (月)

Windows 上の WiKicker で履歴機能が動かないのは環境変数 TZ のせい

WiKickerWindows 上で動かすとなぜか RCS まわりがうまく動かなくて、けれども「何だろう」とほっぽっておいたのだが、動作確認しなおしてみて判明。

Windows 版の RCS環境変数 TZ がないと、 ci でチェックインする際などでエラーになってしまうのであった。 去年の動作テストの際に確認した内容だったのだが、すっかり忘れてた。

[ 11月27日全て ]

2006年12月3日 (日)

WiKicker 0.41 リリース - cookie まわりの処理を変更

11月1日以来、約1カ月ぶりのリリース。

ドメイン名なしの URL でセッションがはれない問題を修正。

DiKicker の方は、「n 年日記機能」、「diary-article:」の追加など。

[ 12月3日全て ]

2006年12月4日 (月)

SpeedyCGI 以下で WiKicker がうまく動かない?

WiKicker ベースのシステムが稼働しているホストが FreeBSD 5.2.1-RELEASE から FreeBSD 6.1-RELEASE に更新されるのにともない、再インストール作業を行った。

動作確認をしたところ CGI プログラムは動くものの Perl モジュール中の DATA セクションが読めていないようなエラー表示がされた。

もしやと思い SpeedyCGI を外したら正常動作。

SpeedyCGI 下で動くことを考えて、DATA セクションを1度しか読まないようにコーディングしてあるはずなのだが、はて。

他の作業もあり細かいチェックができなかったのでもしかしたら違うところでの問題かもしれないが、ちょっと厄介。

[ 12月4日全て ]

2007年1月13日 (土)

[ WiKicker ] spam検索エンジン対応に noindex、nofollow を追加

<a rel="nofollow">

相変わらず www.naney.org 上の WikiForum (NaneyOrgWiki) にも毎日のようにリンク spam 書き込みがある。

気がつき次第削除と、その URL や関連キーワードの書き込み禁止文字列ブラックリストへの登録を行っているが、手間でしょうがない。

これらのリンク先に貢献するのは腹立たしいのでリンク (A 要素)へ

 rel="follow"

属性をデフォルトで設定するように WiKicker を書き換えた。 ようやく。

<meta name="robots" content="noindex,nofollow">

あわせて、検索エンジン対応もしていおくことにした。

編集ページや履歴ページは検索エンジンに登録してもしょうがないので、インデックスから除外されるように HTML の HEAD に

 <meta name="robots" content="noindex,nofollow">

を追加するように修正。

クエリ付きの URL のページで noindex した場合、クエリ無しや他のクエリを持つ URL のページまで一緒にインデックスから外されてしまわないかちょっと心配で、今まで保留にしていたのだけれど、Wikipedia などを見ても大丈夫のようだ。


[ SEO ]

[ 1月13日全て ]

2007年1月27日 (土)

DiKickerはてなブックマーク数表示機能を追加

各記事毎に、「はてなブックマーク数表示」と「はてなブックマークエントリーページへのボタン」を追加する機能を追加。

DiKicker の構造上 HTML フラグメントへ変換する visitor を拡張する形で実装したけれど、やはりこの辺りはテンプレートベースでユーザがいじれるようにしたい。

WiKicker 開発時に速度の面で外した Template Toolkit 採用をまた検討してみるか。

[ 1月27日全て ]

2007年2月2日 (金)

DiKickergrep 検索機能を追加

DiKicker には自動リンクベースの記事串刺し表示機能があって、同じキーワードを含む記事をまとめて読むことができる。 結構便利なのだが、この機能ではキーワードの設定は Blog の書き手に委ねられている。

社内で DiKicker を一部使ってもらっているのだけれども、それら他人の Blog を読んでいると「あのキーワードで串刺し表示したいな」と思うことがしばしばあることに気がついた。 やはり任意の文字列で串刺し表示する機能が欲しい。

書き手にとっても「自動リンクキーワードにするような文字列ではないけれども、串刺しで読みたい/探したい/見せたい」と思うことが少なからずある。

ということで、検索ベースの串刺し表示機能を実装してみた。

grep ベース

実現には全文検索を行う必要があるが「設置・運用の手間」「ディスク容量」という点から、事前にインデックスを生成するような方法は今回は避けようと思う (www.naney.org 上で自分が使う上での制約からくる理由が一番大きかったりする)。

ということで今回は grep 型で実装することにした。 もともと WiKicker の方の検索機能も現在のところ grep 型である。 WiKicker では自前で WikiPage をスキャンしているが、DiKicker では grep コマンドに任せることにした。 こういうのは専用の grep を使った方が速いはず。呼び出しは

 grep -Flre $escaped_string dir...

というオプション指定。Web ページとしてのページングなどは、自動リンクによる串刺し表示機能のものを流用。

で試したところ www.naney.org サーバでは、load averages が 1 以下の時でだいたい50秒前後。対象ファイル数は 2800弱。予想より時間がかかる。

ただし1回実行した後、ファイルがファイルシステム/OSメモリ上にのっている状態では 0.1秒程度で完了する。

検索結果ページの permalink が検索エンジンにそれなりに捕捉されて、定期的にアクセスがあるようになれば、ファイルがメモリにのっている割合が増えるであろうから平均して実用に耐えられる速度が出るかもしれない。

今後は様子をみながら検索結果のキャッシュ等を処理を整備していく予定。

[ 2月2日全て ]

2007年2月9日 (金)

XAMPPWiKicker を動かしてみた。PPM インストール OK。

Perl で書いた Web アプリケーションのポータブルな Win32 デモ環境として XAMPP を使ってみるとどんな感じになるか試してみた。

使ったバージョンは以下。

(http://www.apachefriends.org/jp/xampp-windows.html)

C: ドライブで試す

それぞれ 自己解凍型 7-ZIP アーカイブをとってくる。 最初に XAMPP を展開し、次にその xampp ディレクトリの中で Perl アドオンを展開。 xampp ディレクトリを c: の直下に移動する。

次にコマンドプロンプトを開き c:\xampp\perl\bin へ移動後 ppm コマンドを起動して作成済みの PPM パッケージをインストールする。 インストール先は \xampp\perl 以下とドライブ無しのパスで指定されているようで、問題なく必要な Perl ライブラリをインストールできた。

次に \xampp\xampp-control.exe を実行して GUI 管理ツールを立ち上げ、その画面から Apache を起動。 普通の Win32Apache もインストールしてある PC だったため、xampp-control から Apache を起動したらそちらが立ち上がってしまったが、これは Svc にチェックが入っていたからだった。Svc を外せば \xampp 以下の Apache がきちんと起動する。

あとは \xampp\htdocs 以下で WiKicker CGI プログラムの配置や設定ファイルを作成すれば OK。 もともと WiKicker は相対パスだけで動くようになっている*1ので、問題なく実行することができた。

*1多分

他のドライブに移す

一度セットアップできた \xampp ディレクトリを TrueCrypt 仮想ドライブにコピーして起動してみた。

こちらも問題なく OK。

ということで XAMPP でお手軽に Perl CGI プログラムの動く Web サーバ環境を作れることを確認できた。

問題があるとすれば XAMPP + Perl アドオンが馬鹿でかいところか。400MB オーバー。 今回何が一番時間がかかったかって、XAMPP + Perl アドオンを展開した直後の xampp ディレクトリを、後でまた使えるように 7-ZIP の最高圧縮する処理に時間がかかった。 使っている PC では 50分以上かかったよ。

[ 2月9日全て ]

2007年3月1日 (木)

WiKickerソフトウェアかんばん

情報カードベースでソフトウェアかんばん(ストーリーカード + タスクカード)を作っている開発プロジェクトがあるのだが作ったっきりあまり活用されていないので、今回は試験的に WiKicker による Wiki 上でかんばんを作ることにした。

まだ荒削りだけれども、まずはとにかく以下のルールで始めてみる。

ルール

カードの作り方

基本的には 1カード毎に WikiPage を作るようにする。 ページ名はストーリーカードを表す SC と 状態 (TODO / DOING / DONE) を含む名前にする。

  • SC/TODO/<ストーリー名>
  • SC/DOING/<ストーリー名>
  • SC/DONE/<ストーリー名>

タスク名も同様に作る。

  • TC/TODO/<ストーリー名>
  • TC/DOING/<ストーリー名>
  • TC/DONE/<ストーリー名>

カードの内容は XP で扱っている内容で。 新規作成が楽なようにテンプレートページを作っておき、これをコピーして作れるようにしておく。

状態変更

TODO -> DOING -> DONE という状態変化にあわせて、WikiPage 名を変更してページを移動させる。

 例:
 TC/TODO/名前をつけて保存メニューを追加
   |
   V
 TC/DOING/名前をつけて保存メニューを追加
   |
   V
 TC/DONE/名前をつけて保存メニューを追加
一覧ページの作成

SC/TODO、SC/DOING、SC/DONE、TC/TODO、TC/DOING、TC/DONE ページを作りそれぞれに、子階層の一覧を表示させる (WiKicker の [[index:child]] を使用)。

参照

タスクカードからは「SC/<ストーリー名>」という名前で、ストーリーカードへリンクさせる。

WiKicker では「SC/<ストーリー名>」というページない場合、「SC/*/<ストーリー名>」というページを探してリンクしてくれる。この機能のおかげで、状態にあわせてページ名を変更してもリンクはそのままで追従してくれる。

担当者

担当者が割り当てられて実行中のタスクカードには [[DOING:担当者名]] という文字列を記述しておく。

「DOING:担当者名」で検索することで、各担当者が何を実行中なのかリストアップすることができる。また DOING: を「DOING:担当者名」を検索する Wiki 自身への InterWiki として定義しておくことで、この記述自体を検索結果へのリンクとすることができる。

WiKicker / DiKickerAutomaticLink 長を可変にした

「が」や「は」など頻出する文字の WikiPage を作ってしまった場合、それらに対して自動リンクが働いてしまうと大変なことになるので、WiKicker では2文字以上のみ対象とするようにしていた。

しかし nDiki を書いていて、1文字のキーワードも自動リンクしたいという風に思えてきていた。 誰でも書ける Wiki の場合には危険で制約が必要だけれど、全てのキーワードが著者のコントロール化にある DiKicker では1文字のキーワードに対して自動リンクが働いても問題ないだろう。

ということで自動リンクが働く最低文字列長をプロパティで設定できるようにした。 2004年ぐらいからほとんど手をつけていなかった、AutomaticLink 処理モジュールを久しぶりにメンテナンス。 もともと2文字以上を前提でコーディングしてあったので、trie 部分などが1文字できちんと動くか確認した上で、文字列長チェックを可変に修正。 WiKickerDiKicker 両方で設定で変えられるようにした。

またあわせて、英単語の部分文字列に対して自動リンクしないようにする処理も改善。 今までは `downloaded' に対して `loaded' はマッチしないようにしていたものの、'download' はマッチしてしまっていた。 このあたりを改善。

[ 3月1日全て ]

About Me

Naney Naney

Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

最近検索されている記事

月別インデックス
Process Time: 0.078962s / load averages: 0.78, 0.79, 0.60
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker