nDiki : WikiPage
WikiPage
WikiEngine によって提供される誰でも編集できるWebページのこと。 WikiForumの各ページ。
一般にページには、
- 「ページタイトル」...検索ページへのリンク
- ページの内容
- 「編集」リンク
- 前回の編集との差分表示ページへのリンク
等が含まれている。
スポンサード リンク
Related term
2006年4月21日 (金)
■ 第1回 社内 Perl 勉強会

この間教材として選定した「初めてのPerl 第3版」を使って第1回目の社内 Perl 勉強会を実施した。
プログラミングのクラスなんて大学(および TA)以来なので、進め方は手探りである。 まずは以下の様にしてみた。
@ 目的
Perl プログラミング、および一般的なプログラミング・開発のスキルアップを目指す。
@ 進め方
- 私が進行役。
- 自由参加 (私の指定プロジェクトメンバは必須)。プログラマでも、コンテンツデザイナーでも。
- 書籍「初めての Perl 第3版」を教材とする。
- 本は社内に1冊ある。ケンカしないでうまく回して読むように。
- 1週間に1章ずつ進める (最初の回は1・2章)。
- 各自事前に独習すること。業務の支障にならない範囲でうまく進めること。
- 章末の練習問題を課題とし、勉強会の前に解答を作成してみること (書籍末に回答があるが見ないようにすること)。
- 独習の上でわからない点は適宜、誰かに質問してできるだけ解決をはかること。
@ 勉強会
- 毎週金曜日に勉強会を 16:00 - 17:00 で開催。
- 練習問題の解答ピアレビューを中心に行う。その場で本読みはしない。
- 課題がプログラムの場合は、プリントアウトして持参すること (あまりに長い場合はのぞく)。
- 参加希望者は事前に 社内 WikiPage に、参加意思を表明すること。
- 練習問題別に、チェック項目や補足情報を追加した資料を開始時に配付。
@ 実施
第1回は私を含めて6人による勉強会となった。
プログラミングを学ぶのはやはり実践が一番であるので、事前に練習問題に取り組むというスタイルにしてみた。勉強会では他人のコードを見たり意見交換したりすることで理解を深め新しい発見ができればと考えている。
皆それぞれの業務を抱えているので、忙がしい人については事前の課題取り組みについては厳しのではとの不安もあったが、初級者・中級者にかかわらず全員準備してきていた。 びっくりするとともに嬉しかった。 参加者は皆それぞれチャレンジ心を持ち、何かを得ようとという熱意があるようで素晴しい限りである。
今回は練習問題も簡単だということもあり、全員解答できたようである。 今回気がついた点:
- プログラムのプリントアウトについては以下のようにするのが望ましい。
- そういえば書籍末の正解の確認をしなかった。今後問題が難しくなってきたら確認した方がいいかもしれない。
- 教材の本は予算で買った1冊とスタッフ私物の1冊で現在2冊。ちょっと足りないかな。もう1冊ぐらいあった方が良いかもしれない。
1時間の予定であったが10分オーバーで70分。 時間的にはこれぐらいか。90分ぐらいあった方がいいのかもしれないけれど、業務とのかねあいもあるし。
@ 本社
そういえば今回は東京オフィスで希望者向けのものだったので特に本社には連絡しなかったんだけれど、1名ここ(nDiki)の記事を見て羨しがっていたらしい。
リモートでの参加までは考えていなかったので今回は準備できなかったけれど、希望があるならなんか方法を考えていきたい。
@ また来週
さて、本格的にプログラミングっぽくなってくる次回からが楽しみである。 目指せ総 Perl プログラマ化。
- 第2回 社内 Perl 勉強会 (2006-04-28)
- Emacs でお好きな言語のソースコードを色付き HTML テキストに変換 (2006-04-21)
- 社内 Perl 勉強会 最終回 (第16回) (2006-09-11)
- 第6回 社内 Perl 勉強会 (2006-06-05)
- 第3回 社内 Perl 勉強会 (2006-05-12)
2006年4月29日 (土)
■ WikiPage 編集画面で Ctrl+S を押すとプレビューするようにしてみる

「ついつい保存しようとして Ctrl+S を押して Web ブラウザの保存ダイアログを開いてしまうんだよね。Ctrl+S で (WikiPage を)保存してくれると嬉しいんだけれど。」
WiKicker を使用している同僚からのアイデア。 自分にとって C-s は Incremental search forward (`isearch-forward') であって保存ではないので、あまり関係ないといえばないんだけれど、その気持ちは良くわかる (C-p で 印刷ダイアログが開くのうざい)ので、試しに実装してみることにした。
ただしいきなり Ctrl+S で保存はちょっとデンジェラスなので、プレビュー画面に移動するようにしてみる。
例によって Web ページ上の JavaScript におけるイベント処理は、Web ブラウザ依存バリバリなのね。 テストが面倒(自分でできない/自動化困難)なので、できるだけ近付きたくはないのだけれども。
とりあえず、Firefox 1.5.0.2 on Debian GNU/Linux と、Internet Explorer 6 on Windows 2000 では動くことを確認するところまできた。
喜べ松下君。
- Debian に RSS リーダ「フレッシュリーダー」をインストール (2006-03-06)
- WiKicker における PageName 最長文字数 (2006-06-10)
- 「s」文字をキー入力できない WikiEngine (2006-05-24)
- 朝日新聞講読申込み (2005-01-31)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
2006年5月22日 (月)
■ WiKicker 0.30 リリース - トップページのページ名を変更できるようにするなどの機能追加

2006年2月13日以来、3カ月ぶりのリリース。
- コメント書き込みでも書き込み禁止パターンが適用されるように改良。
- WikiPage 編集画面で Ctrl+S を押すとプレビューするように改良。
- WiKicker の トップページのページ名を変更できるように改良 (toppage.pagename プロパティ)。
- トピックパス表示で常にトップページを先頭に表示するオプション (topicpath.showtop プロパティ) を追加。
- エラー時の HTTP レスポンスコードを 503 にした。
- テストスクリプトの改善。
セッション管理/認証/承認機能のコードを書きはじめてパッケージには含まれているけれど、まだ完成していないので有効になるようにはなっていない (あ、ちょっと中途半端になっているかも)。
- WiKicker へのセッション管理/認証/承認機能追加開始 (2006-03-02)
- Intercepting Filter パターンとレスポンスの順次送信 (2006-02-28)
- WiKicker 0.34 リリース - 添付機能のコードを追加 (2006-06-11)
- WiKicker 0.35 リリース - 添付機能の修正など (2006-06-20)
- [ WiKicker ] キャッシュまわりにバグ (2004-06-05)
2006年6月11日 (日)
■ WiKicker 0.34 リリース - 添付機能のコードを追加

2006年6月8日以来、3日ぶりのリリース。
zakwa 氏からの要望により、WikiPage のコピー直後に編集画面に移れる edit now オプションを追加。
また大きな改良として「添付機能」を追加した。 まだ最初のコードなのでエラー処理等が甘いが、それなりに動いているのでコミット。 まだ権限設定がないので、公開サーバでは使用しない方が良い。
添付ファイルのダウンロードを WiKicker 本体の CGI プログラムから行わせるか、独立の CGI プログラムにするか迷ったが、結局別物にした。
というのが大きな理由。
@ 設定方法
WiKicker のページにまだ設定方法を書いていないので、こちらへ。
@ attachment CGI プログラムを設置
例えば attachment というファイル名で以下のような Perl CGI プログラムを作り、Web サーバから実行できるように設定を行う。
#!/usr/bin/perl use strict; use warniings; use WiKicker::WikiCGI::AttachmentController; WiKicker::WikiCGI::AttachmentController ->new(properties_file => '対応する wiki の設定ファイル名')->run;
@ Wiki のプロパティに設定を追加
次に Wiki の設定ファイルに以下を追加。
param.NormalPage.attachment: enable param.NormalPage.attachment.uri: attachment
param.NormalPage.attachment.uri には上で作った CGI プログラムの URI (相対/絶対)を指定する。
これで各ページに attachment (添付)というリンクが表示され、添付機能が使えるようになる。
@ WikiPage での参照の仕方
# リンクを作成 [[attachment:ファイル名]] [[attachment:ページ名/ファイル名]] <- 別のページの添付ファイル # 画像をインライン表示 [[image:attachment:ファイル名]] [[image:attachment:ページ名/ファイル名]]
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- WiKicker 0.35 リリース - 添付機能の修正など (2006-06-20)
- Perl CGI プログラムのテストには WWW::Mechanize::... (2006-02-18)
- WiKicker に JSON でのページ出力機能を追加 (2007-04-03)
- XAMPP で WiKicker を動かしてみた。PPM インストール OK。 (2007-02-09)
2006年6月20日 (火)
■ WiKicker 0.35 リリース - 添付機能の修正など

添付機能を有効にすると、添付ファイルが無いページに対応するディレクトリが無条件に作られてしまう問題を修正。
それから日本語ファイル名のファイルを WikiPage に添付した際、Internet Explorer でそのファイルをダウンロードして保存しようとすると URI エスケープされた文字列がデフォルトの保存ファイル名になってしまいよろしくない。 このため、Content-Disposition ヘッダをつけてレスポンスを返すためのダウンロード用のリンクも追加。
Cotent-Disposition ヘッダでファイル名を指定する際、
- HTTP_USER_AGENT を見て Internet Explorer っぽくて
- Accept-Language の最初に ja があった場合
ファイル名をシフト JIS でエンコードしてしまうようにした。
ファイル名にシフト JIS で表現できない文字があるかもしれないし、Accept-Language に ja があったからといって Windows のロケールが日本語になっているという保証もないので、かなりいい加減なコードである。
なにか良い方法があったら修正したい。
- Windows 上での Apache 2.0.53 では PATH_INF... (2005-04-10)
- WiKicker における PageName 最長文字数 (2006-06-10)
- [ WiKicker ] 続L10N改善と、ページ名リスト処理の高速化 (2004-05-29)
- [ WiKicker ] Locale::Maketext による loc... (2003-12-28)
- WiKicker 0.34 リリース - 添付機能のコードを追加 (2006-06-11)
2006年7月18日 (火)
■ WiKicker 0.36 リリース - 通常表示に戻るナビゲーションを追加

添付機能のバグ修正や、attachment: で添付ファイルにリンクする際に、添付ファイルが存在しない場合はリンクにならないようにする改良を行った。
それから今まで、各 WikiPage に対する履歴ページなどの補助ページから、通常表示ページへ戻るページナビゲーションリンク、'view' (あるいは 'latest') を追加した。
PukiWiki だと「リロード」にあたるリンク。 他の Wiki も含めてちょっとチェックしてみたけれど、このリンクのテキストがバラバラで何にするか迷うところだ。
今回のリリースでは view にしておいたけれど、将来は変えるかもしれない。
- WiKicker 0.34 リリース - 添付機能のコードを追加 (2006-06-11)
- [ WiKicker ] form/list の paragraph から... (2003-05-03)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- WiKicker / DiKicker の AutomaticLink 長... (2007-03-01)
- [ WiKicker ] 古くても検索キャッシュを返す (2004-01-20)
2007年2月2日 (金)
■ DiKicker に grep 検索機能を追加

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 が検索エンジンにそれなりに捕捉されて、定期的にアクセスがあるようになれば、ファイルがメモリにのっている割合が増えるであろうから平均して実用に耐えられる速度が出るかもしれない。
今後は様子をみながら検索結果のキャッシュ等を処理を整備していく予定。
- WiKicker 0.420 リリース - 変更いろいろ (2007-05-30)
- 私的10大ニュース2004 [ web ] (2004-12-31)
- [ WiKicker ] 「最近のアクセスログ」処理思案 (2004-01-17)
- [ WiKicker ] Memcached を使った検索結果のキャッシング (2004-01-15)
- Debian GNU/Linux に Hyper Estraier 1.2... (2006-05-31)
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 として定義しておくことで、この記述自体を検索結果へのリンクとすることができる。
- Google ドキュメントでソフトウェアかんばん (2008-03-30)
- 今日のさえずり - フロスティ食べたい (2009-12-10)
- ソフトウェアかんばん (2005-10-28)
- Wiki考 (2002-09-20)
- [ WiKicker ] 古くても検索キャッシュを返す (2004-01-20)
■ WiKicker / DiKicker の AutomaticLink 長を可変にした

「が」や「は」など頻出する文字の WikiPage を作ってしまった場合、それらに対して自動リンクが働いてしまうと大変なことになるので、WiKicker では2文字以上のみ対象とするようにしていた。
しかし nDiki を書いていて、1文字のキーワードも自動リンクしたいという風に思えてきていた。 誰でも書ける Wiki の場合には危険で制約が必要だけれど、全てのキーワードが著者のコントロール化にある DiKicker では1文字のキーワードに対して自動リンクが働いても問題ないだろう。
ということで自動リンクが働く最低文字列長をプロパティで設定できるようにした。 2004年ぐらいからほとんど手をつけていなかった、AutomaticLink 処理モジュールを久しぶりにメンテナンス。 もともと2文字以上を前提でコーディングしてあったので、trie 部分などが1文字できちんと動くか確認した上で、文字列長チェックを可変に修正。 WiKicker、DiKicker 両方で設定で変えられるようにした。
またあわせて、英単語の部分文字列に対して自動リンクしないようにする処理も改善。 今までは `downloaded' に対して `loaded' はマッチしないようにしていたものの、'download' はマッチしてしまっていた。 このあたりを改善。
- [ WiKicker ] 複数のキーワード集合による、AutomaticLink (2004-02-07)
- ケータイ用にプライベート Wiki を設置 (2008-01-07)
- DiKicker の出力する HTML コードを小さく (2006-10-05)
- WiKicker に Flickr 関連機能追加 (2005-02-11)
- 無制限 HTML タグ付けブロックを使って nDiki に Google ... (2007-08-23)
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 ] 「最近のアクセスログ」処理思案 (2004-01-17)
- [ WiKicker ] hell mode - HTMLタグ付けブロックの導入 (2005-09-13)
- www.naney.org をさくらのレンタルサーバへ移転 (2009-12-23)
2008年1月18日 (金)
■ 今日のさえずり - 0x800A03EC で苦しんでいる

- 10:18 Microsoft Office Professional 2007 試用版インストール中。 *Tw*
- 11:20 勝手にデフォルトが SKKIME から Microsoft Office IME 2007 になってる。ムキーッ。 *Tw*
- 13:52 HRESULT からの例外: 0x800A03EC で苦しんでいる。 *Tw*
- 14:38 COM 経由で Excel の SaveAs が動かなかったのは、新しく入れた Excel 2007 試用版で1度ライセンス認証ウィザードを動かしていなかったから。はまった。泣ける。 *Tw*
- 16:24 違うところで、また 0x800A03EC。 *Tw*
- 17:02 [B!] TX秋葉原駅直結の大型複合ビル、阪急電鉄が概要明らかに - アキバ経済新聞 http://akiba.keizai.biz/headline/795/...
- 17:32 社内 Wiki に新しく作成された「本社/洗濯物」という WikiPage が興味深い。 *Tw*
- 19:38 アパガードスモーキン2本目買った。思ったよりもった。[mb]
- 19:45 見上げれば、オリオン座。L:品川区[mb]
- 23:10 Google Toolbar 5 BETA は今のところ Internet Explorer 6 以上用のみか。
- 23:51 P3 2.37 にアップデートして起動。
- 今日のさえずり - 港区出身者とはニコニコ学園ネタで盛りあがる (2008-06-24)
- 今日のさえずり - 首なし犬 (2008-03-26)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- Pentium 4 マシンから Athron 64 マシンに乗り替え (2008-09-05)
- 今日のさえずり - チョップリフターって当初チューリップファイターだと思っていた (2008-12-09)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.094405s / load averages: 0.36, 0.29, 0.26
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
■ Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。