トップ(最新) | <前 | 次>

nDiki : Wiki

Wiki

スポンサード リンク

Related term

2006年2月15日 (水)

ドキュメンテーション大全 このエントリーを含むはてなブックマーク

開発の現場 Vol.003 効率UP&スキルUP ドキュメンテーション大全

プロジェクトの後半で納品用ドキュメントの整備を始めるのだが、その時はたいがいもう切羽詰りはじめていて構成やら体裁やらマネジメントやらを工夫する余力が無かったりする。 ついつい(次回は改良しようと思っていつも思っている)前回のプロジェクトの手法を踏襲してしまいがちだ。 ともすれば劣化コピーになりかねない。

やはり、忙しくても日頃からの改善は重要である。

最近はアジェンダ議事録開発メモなどを、積極的に WikiSubversion で共有するようにし、その点では以前より改善してきている。

今後はさらに、出荷ドキュメントのレビュープロセスなどを確立し品質を高めていきたいところである。 現状でもチームメンバでのピアデスクチェックやパスアランドを非形式的に行っているのだが、「チェックの程度」やその後の「修正」および「修正の確認」については、まだなんとなくやったかなという具合。この辺りを工夫したい。

先月発売されていて気になっていた「開発現場 Vol.003」に、何かヒントがあるかなと思って買ってみた。

パラパラと見た感じではテクニカルライティングの話はあまりなく、主にソフトウェア開発における中間成果物としてのドキュメントや開発者間ドキュメントをどうとりまとめていくかという話が中心のよう。 Wiki による開発資料のライトな共有など、うちのチームでも進めている話など。

「(最初から)完全なドキュメントを書こうとしない」というのはもっとも。 状況はほとんどの場合変わるし、最初の段階では未確定の部分も多い。 だからといって、いつまでたっても手元で温めていてもしょうがない。

技術的な話では PerlPod を活用しようという話。 Perl 以外の言語のコメント中に Pod 形式でドキュメントを書こうという提案や、Apache で動的に Pod ドキュメントを整形しようという話とか。

テキストフォーマットとしての Pod は =over / =item / =back によるリスト表現など、最近のフォーマットに比べてすごく読み易いわけではないが、たしかに他の言語のコメントに埋め込んでおいて処理するのは、標準の Pod 関連のモジュールでできるな。

自分も Pod でドキュメントを書くけれど、(Perl 以外は) 個人的には reStructuredText にしたいと考えている。 ただ Pod みたいに他のテキストの一部に埋め込んでその部分のみ処理する記法およびツールがが標準の reStructuredText / Docutils には見当らない。 実はどっかにあるのだろうか。


[ 書評 ]

スポンサード リンク


[ 2月15日全て ]

2006年2月18日 (土)

Mozex を使って Firefox 1.5.0.1 の textarea の内容を Emacs で編集する このエントリーを含むはてなブックマーク

uimuim-skkFirefox のキーバインディングをきちんと設定していないせいか、どうも textarea での日本語編集にストレスを感じる。 Wiki 等で textarea での編集作業も少なくないので、Mozex を使って Emacs で編集できるように設定しておくことにした。

より降旗氏が公開されている Firefox 1.5以降用 mozex 1.07.1 日本語 version (1.5.0.1 インストール対応)を Firefoxインストール

そういえば今まで emacsclient も使ったことがなかったな。Emacs 立ち上げっぱなしのくせに。まずは起動している Emacs 上で M-x server-start (.emacs で (server-start))しておく。

Mozex の設定で

 Directory for temporary files: /tmp
 Textareas: /usr/bin/emacsclient %t

を設定。自分の環境だと Commands は絶対パスでないとうまく呼べないようだ。

これで textarea 上で右クリックし、[mozex] -> [Edit Textarea] で開いている Emacs 上に Textarea の内容が新しいバッファで開く。 編集して保存して C-x # し、Web ブラウザ側に戻ると反映される。

便利便利。

ところで Emacs server と gnuserv とどっちがいいのかな? 特に設定なしでどちらも使える。 何も設定していない状態だと gnuserv の方は新しい frame が開いて好みじゃないので、とりあえずは Emacs server を使うことにする。

ついでに EDITOR 環境変数も emacsclient に直しておこう。 これで CVSSubversion のコミット時に新しい Emacs を起動しなくてよくなる。

とっとと設定しておけば良かった。


[ 2月18日全て ]

2006年3月2日 (木)

WiKicker へのセッション管理/認証/承認機能追加開始 このエントリーを含むはてなブックマーク

書き始めると結構なコード追加になりそうな感じ。

上記機能を使わないオープンな Wiki としてももちろん使えるようにしておきたいので、その辺り慎重にコーディングしていく必要あり。 現在 WiKicker が持っているサーバサイドセッション管理をともなわない、Cookie オンリーのプリファレンス機能との連携をどうするかも課題。

それにしてもやはり、WWW::Mechanize::CGI 便利だわ。


[ 3月2日全て ]

2006年5月15日 (月)

すべての情報を共有する。情報閲覧者が判断する。 このエントリーを含むはてなブックマーク

帰りの東北新幹線で、ウェブ進化論の続きを読む。 興味を持ったのはこれ。

シルバースタインは「こうした情報共有の仕組みをテクノロジーが支える」と語ったが、グーグルの社内情報システムはごく普通のシステムの組み合わせだ。ごく普通のブログや掲示板、社員全員が同じ文章を自由に編集できるウィキ (Wiki) と呼ばれる共同作業用環境、検索エンジンといったものの組み合わせである。-- ウェブ進化論 p.86

社内に Wiki を立てて、周囲を巻き込みつつ情報共有のため基盤と文化を育てようとしている自分にとって「ごく普通のシステムの組み合わせだ。」というのは心強い話である。

本書ではさらに、下記のように続く。

道具自身に新性があるのではなく、すべての情報を共有することを原則に「情報自身の淘汰に委ねるという思想のほうに新性があるのだ。 -- ウェブ進化論 p.86

はてなの近藤氏も2005年7月27日の記事で同様のことを述べている。

ここで大事なのは、「その情報を出すべきかどうか」を情報発信者が判断するのではなく、全ての情報を出しておいて、情報閲覧者が「その情報を読むべきかどうか」を判断すればよい、と考えることです。-- CNET Japan Blog - 近藤淳也の新ネットコミュニティ論:情報の私物化を禁止する

効果的にコラボレーションをして成果を上げていくにはメンバが、積極的に情報をアウトプットし共有していくことが重要である。

しかしながら情報のアウトプットというのはなかなか実行されないものである。 理由はなんだろう。

  1. 情報共有/活用基盤がない。
  2. 情報を共有するという文化がない。
  3. 情報をアウトプットするコストが高い / 高いと感じる。
  4. 情報をアウトプットするメリットを理解できない / 感じられない。
  5. 情報を制限することで権限を維持したいから。

あたりか。

Wiki の次の一手として社内 Blog を立ち上げることにしよう。


[ アウトプット主義 ] [ 書評 ]


[ 5月15日全て ]

2006年5月31日 (水)

Debian GNU/LinuxHyper Estraier 1.2.7 を野良インストールする このエントリーを含むはてなブックマーク

DiKicker を使って社内 Blog を始めてから早いものでもう半月ほど経ち、記事もそれなりにたまってきた。

DiKicker にはキーワードによる串刺し表示機能があるものの、検索機能は自前で持っていないため任意の文字列で検索をすることができない。 これだと過去記事が活用されなくなってしまう。

ということでそろそろ検索エンジンをセットアップすることにした。

同じサーバで Namazuインストールして過去メール検索に使用しているが、今回は Hyper Estraier を使ってみることにした。

  • Web クローラが付属されていること
  • P2P連携機能があること

が選択理由。 今回は自分の社内 Blog だけでなく、自分の立てている Wiki (WiKicker) や他人が立てている PukiWiki、静的な HTML ページなどもまとめて検索できるようにしたいという考えがある。 このため複数のサーバに分散したコンテンツを、クローラでインデックス生成できるというのは魅力的である。

P2P連携機能の方は技術的に面白そうということで。

@ Debian GNU/Linux でのテスト

まずは自分のノート PC 上にセットアップして、いろいろ試してみることにする。 さっそく apt-get で Hyper Estraier をパッケージインストール

estmaster でノードマスタを起動し、ユーザ設定とノード作成を行う。

で次に Web クローラ estwaver の設定をして、ノート PC ローカルの Web サーバのコンテンツをインデックス化してみる。

で、検索

あれ?

検索結果件数が 0。よくみるとインデックスされている文書が 0 だ。 確かに estwaver がモリモリ fetch して登録しているようなのだが……。

しこたま悩んだ末、Debian パッケージHyper Estraier は 1.2.5 でこのバージョンの estmaster は ノードサーバへの登録機能がまだないということにようやく気がついた。

とほほ。

@ ソースからインストール

ということなので、Hyper Estraier 1.2.7 をソースからインストールすることにした。 Debian パッケージの QDBM だと古いので、こちらもあわせてインストール

今回はパッケージ化せずに /usr/local/hyperestraier-1.2.7 に、とりまとめてインストールすることにしておく。

@ QDBM
 wget http://qdbm.sourceforge.net/qdbm-1.8.58.tar.gz
 tar zxvf qdbm-1.8.58.tar.gz
 cd qdbm-1.8.58
 ./configure --enable-zlib --prefix=/usr/local/hyperestraier-1.2.7
 make
 make check
 make install
@ Hyper Estraier
 wget http://hyperestraier.sourceforge.net/hyperestraier-1.2.7.tar.gz
 tar zxvf hyperestraier-1.2.7.tar.gz
 cd hyperestraier-1.2.7
 PKG_CONFIG_PATH=/usr/local/hyperestraier-1.2.7/lib/pkgconfig ./configure --prefix=/usr/local/hyperestraier-1.2.7
 make
 make check

インストール完了。

最初インストールしたものを実行すると落ちて何だろうと思っていた。 これについては deb パッケージでインストールした関連パッケージを purge してビルドし直しインストールしたら問題なく動くようになった。

メデタシメデタシ。

明日は会社のサーバでも設定しよう。


[ 5月31日全て ]

2006年6月1日 (木)

Hyper Estraier で社内 Web コンテンツ検索 このエントリーを含むはてなブックマーク

昨日の自分のノート PCHyper Estraier の試用を踏まえて、社内のサーバに Hyper Estraier を設置する。

@ インストール

いまだ Red Hat Linux 8.0 であるサーバに、昨日と同様に Hyper Estraier 1.2.7 を /usr/local/hyperestraier-1.2.7 以下にインストール

この環境では ./configure 時に iconv が見つからないため、最初に libiconv 1.9.2 を /usr/local/hyperestraier-1.2.7 に入れ、続けて QDBM、Hyper Estraier の順にインストール

estwaver + estmaster でクローリング + 文書登録も問題なく完了。

@ search_ui がうまく動かない。

検索をしようと http://ホスト:1978/node/ノード名/search_ui にアクセスするも、検索フォームを含め何も表示されない。あれ? 他の管理ページは問題なく表示されるのに search_ui だけ駄目。

GNU Wget だときちんと HTML を GET できるのだけれど、FirefoxInternet Explorer からだと駄目である。

いろいろビルドしなおしてみたけれどやっぱり駄目なので、今回は結局 estmaster をやめて CGI プログラム版の UI を使うことにした。 こちらだとクローリング中は検索ができなくなってしまうけれど、夜中に cron で回すから別にかまわないか。

@ インデックスの方針

以下のような感じでクロールし、登録することにした。

  • 社内メイン Wiki、自分の社内 Blog、公開 Web サイトのトップページをクロールの種文書とする。
  • それと社内メイン Wiki の更新情報ページも種文書とする。
  • 社内のサーバ、および公開 Web サイトのみクロールするように allowrx、denyrx を設定。
  • Wiki の編集ページ等をクロールしないように denyrx を設定。
  • 1日1回深夜に cron でインデックスを更新。
  • revisit は3日に設定。
    • いくつかの種文書は -revcont 付きで estwaver を実行しても毎回巡回して欲しいのだけれど、それはいまのところできないようだ。

特定の WikiBlog 内のみを検索したい時は、検索インタフェースの方で URL を指定絞り込めば良いので、それほど規模も大きくないし全部ひとまとめにインデックス化することにした。

後は使いながら微調整していくこととしよう。


[ 6月1日全て ]

2006年6月11日 (日)

WiKicker 0.34 リリース - 添付機能のコードを追加 このエントリーを含むはてなブックマーク

2006年6月8日以来、3日ぶりのリリース。

zakwa 氏からの要望により、WikiPage のコピー直後に編集画面に移れる edit now オプションを追加。

また大きな改良として「添付機能」を追加した。 まだ最初のコードなのでエラー処理等が甘いが、それなりに動いているのでコミット。 まだ権限設定がないので、公開サーバでは使用しない方が良い。

添付ファイルのダウンロードを WiKicker 本体の CGI プログラムから行わせるか、独立の CGI プログラムにするか迷ったが、結局別物にした。

  • WiKickerURI 体系の中に、末尾にダウンロードファイル名を持ってこれる形式を作成できなかった。

というのが大きな理由。

@ 設定方法

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:ページ名/ファイル名]]

[ 6月11日全て ]

2006年6月18日 (日)

DBIx::Class + SQLiteWiki認証/承認データベース このエントリーを含むはてなブックマーク

利用目的に合わせて認証/承認の機能を WiKicker に組み込めるようにする作業を行っている。

典型的な認証/承認用に、ユーザデータベースSQLite で作って使えるようにするモジュールを標準で提供できるようにといろいろ試みているところ。

直接 SQL を使うのは避けたいので、DBIx::Class を使ってみることにした。 同様のモジュールとして Class::DBI があるが、DBIx::Class の方ば良いという記事をみかけたのでこちらにしてみた。

全体像を把握するにはちょっとかかりそうだ。


[ 6月18日全て ]

2006年7月18日 (火)

WiKicker 0.36 リリース - 通常表示に戻るナビゲーションを追加 このエントリーを含むはてなブックマーク

添付機能のバグ修正や、attachment: で添付ファイルにリンクする際に、添付ファイルが存在しない場合はリンクにならないようにする改良を行った。

それから今まで、各 WikiPage に対する履歴ページなどの補助ページから、通常表示ページへ戻るページナビゲーションリンク、'view' (あるいは 'latest') を追加した。

PukiWiki だと「リロード」にあたるリンク。 他の Wiki も含めてちょっとチェックしてみたけれど、このリンクのテキストがバラバラで何にするか迷うところだ。

今回のリリースでは view にしておいたけれど、将来は変えるかもしれない。


[ 7月18日全て ]

2006年7月22日 (土)

Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 このエントリーを含むはてなブックマーク

入社してから社内情報共有の一環として

といろいろ手をつけてきた。 次に狙っているのは SBS である。

Wiki社内 Blog に書くほどではないけれどメモ程度にブックマークしておきたい URL を、気軽に晒せるようにするのが目的。

はてなブックマークのような公開サービスは

  • タグ・コメント・傾向などが外に出るのはよろしくない
  • あるいは、それを気にして活用されない
  • そもそも社内リソースについてはブックマークできない

という点から、今回は利用できない。

ということで社内に SBS を設置したい考えている。

最初は Scuttle にしてみようと思ったのだが、PHP ベースであるのと MySQL を使うというところで気遅れしている。 いや SQLite でもいけそうらしいということで、実は Debian でちょっと試そうとしたのだが、テーブル作成の SQLMySQL 用で、これを修正するのが面倒なので断念。

次に Perl + SQLite で動く Rubric を試してみることにした。

@ Rubric 0.140

Rubric は CPAN にあがっているので CPAN.pm から install Rubric でインストールできる。 モジュールをインストールしたら、セットアップ。

  1. CGI プログラムを動かすディレクトリを決める (以下 $RUBRIC)
  2. Rubric tarball の bin/rubric.cgi を $RUBRIC/ にコピーし、必要なら #! を修正する。
  3. Rubric tarball の templates ディレクトリを $RUBRIC/ にコピーする。
  4. Rubric tarball の style/rubric.css を $RUBRIC/ にコピーする。
  5. Rubric tarball の etc/rubric.yml を $RUBRIC/ にコピーして環境に合わせて編集する。
  6. データベースを初期化する。0.140 には makedb.pl が同梱されていないので、0.13_01 の bin/makedb.pl を参考に perl -MRubric::DBI::Setup -e 'Rubric::DBI::Setup->setup_tables' で初期化する。ちなみに 0.140 付属の rubric コマンドで rubric db -s してみたが、これはうまく動かなかった。
  7. 必要に応じて .htaccess を作成・編集し rubric.cgi を CGI プログラムとして実行できるようにする。またその他アクセスされたくないファイルを deny するようにしておく。

これで OK。

rubric.cgi にアクセスしページが表示されればひとまず成功。 メニューの「register」から、ユーザ登録する。 確認用のメールが届くはずだが、面倒くさいのでこれを待たずに

 rubric user -a ユーザ名

でアクティベートする。

Rubric の HTML フォームからのブックマーキングは成功し、うまく動いているようである。 ただし、日本語の処理はどうもよくない。 title や description が化ける。 惜しい。

基本的には UTF-8 ベースでうまくいきそうなのだが、どこかで化けるようだ。 ちょっと手を入れれば直るかなと思ったが、化けるところと化けないところとがあるので逆に直す場所が多そうなので今日はやめておくことにした。

とりあえず Rubric はおいておいて、他のものも試してみることにするか。


[ 7月22日全て ]

スポンサード リンク

■よく検索されるキーワード

torrent(109) x31(45) thinkpad(31) 動画(29) 提案書(26) mp980(24) 手帳(24) windows(23) linux(23) 画像(21) 使い方(21) リフィル(21) debian(20) usb(20) tc-1(19) perl(19) 筆まめ(18) 壁紙(17) ほぼ日手帳(16) 冷蔵庫(14) ドラマ(13) wiki(13) 書き方(12) ダイソー(12) システム手帳(12) 宮根誠司(12) ノート(11) so905ics(11) 無印(11) バッグインバッグ(11) 映画(11) 設定(10) 修理(10) 宮根(9) ssh(9) a6(9) ほぼ日(9) 黒田征太郎(9) バッグ(9) gmail(8) 感想(8) (8) f-01a(8) メモリ(8) gtd(8) ブログ(8) nikon(8) allinanchor:*.torrent(8) ボールペン(7) 方眼(7) ポイント(7) 4c(7) ヨドバシカメラ(7) ケース(7) twitter(7) apache(7) ht-01a(7) ヨドバシ(7) ubuntu(7) truecrypt(7) n-02a(7) 作り方(7) minolta(7) af(6) インストール(6) ガントチャート(6) mp3(6) zippo(6) hdd(6) emacs(6) レビュー(6) カバー(6) vq1005(6) 日本語(6) ハクキンカイロ(6) 無印良品(6) グレゴリー(6) 交換(6) nikkor(6) pixus(6)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.081296s / load averages: 0.28, 0.26, 0.19
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)