Storytelling in Organizations: The power and traps of using stories to share knowledge in organizations (1999)

  • Deborah Sole, Daniel Gray Wilson
  • LILA Harvard University

知識共有にのための物語のポイント

  • streamlined experience
    • いい物語はシンプルで要点のみが入っている
    • 色々な逸話の中に組み込むことが容易である
  • surrogate experience
    • 本人が体験したかのように読める物語が良い
    • 本人が体験していないが体験したかも知れない内容が良い
      • 体験することがありえないような内容では伝わらない

知識共有における物語の罠

  • Seductiveness 魅力的すぎて真偽はさておいて説得力を持つ.
  • Single point of view 一つ視点から物語は展開されてしまう.
  • Static-ness 伝えられた状況に依存する.属人性.コンテキスト依存.

物語と似たような効用を持つ方法

  • Storytelling 語りや逸話による伝達
  • Modeling エキスパートによる知識のモデリングとその伝達
  • Simulations 疑似体験(ロールプレイとか)による伝達
  • Codified Resources マニュアル等の成文化されたものでの伝達
  • Symbolic Objects 成文化されていない色々なオブジェクトでの伝達

※p.7 に比較表がある

物語を使うといいケース

  • Kickstarting a new idea 新しいアイデアを立ち上げるとき
  • Socializing new members 新しいメンバーが参加したとき
  • Mending relationships 関係性の修繕.グループにおける意識の再確認.
  • Sharing Wisdom 知識共有

TeraStation壊れた

TeraStationがぴーぴー泣いている
・「Display」を押したら泣きやんだ
・赤いエラーランプがついている
・管理ページ http://〜/ にアクセス
・下記のような表示が

RAIDアレイにエラーが発生しました。
再構成用のディスクを選択し「RAIDアレイの再構成」をクリックして下さい。

・ディスク1〜3にはチェックが入っていて選択できない
・ディスク4を選んでやれってことなのだろうか
・選んだら「RAIDアレイの再構成」を選択できるようになった
・「RAIDアレイの再構成」を選択したら

RAIDアレイの再構成を行います.

再構成用に選択されたディスクに保存されているデータはすべて消去されます.
この作業を取り消すことはできません.

設定を続けますか.

・というメッセージが.怖い.
・調べてみた

・あんまり選択肢はない模様
・とりあえずRAID5ってなんだっけと思って調べる

  • http://ja.wikipedia.org/wiki/RAID
  • RAID 0: 耐故障性の無いディスクアレイ (ストライピング)
    • RAID 0は複数台のハードディスクに、データを分散して読み書きし高速化したもの
  • RAID 1: 二重化 (ミラーリング
    • 最もシンプルなRAIDであり、耐障害性の高いRAID
  • RAID 2: ビット単位での専用誤り訂正符号ドライブ (ECC)
    • 冗長化機構はハミング符号で、ストライプ単位は1ビット
    • ハミングコードによるデータ修復が常に必要なほどHDDの信頼性は低くないので、実用性がない
  • RAID 3: ビット/バイト単位での専用パリティドライブ
  • RAID 4: ブロック単位での専用パリティドライブ
    • RAID 3のI/O単位をブロックに拡大し、I/O効率の改善を計ったもの
    • 性能面でRAID 5に劣るRAID 4は廃れつつある
  • RAID 5: ブロック単位でのパリティ分散記録
    • 複数のハードディスクに誤り訂正符号データと共に分散させて記録する
    • 最低3ドライブが必要

・勉強になりました
TeraStationって単なるミラーリングをしているのかと思ったけど,違ったのか
・RAID5を使って250GBしかないのか.もう買い替え時期かな.

・まとめると,再構成用ディスクに入っていたデータは消えるわけね
・再構成用にディスク増設とかできないのかね
・結局HDDが壊れたのか,ソフトウェア的な問題なのか,どっちなんだ?

・ディスク情報を見てみた

RAIDアレイ情報>
RAIDアレイ1
状態 RAIDアレイにエラーが発生しました
RAIDモード RAID5

RAIDアレイ2
状態 設定されていません

<ディスク情報>
ディスク1
状態 RAIDアレイ1で使用中

以下,ディスク4まで同じ

RAIDアレイにエラーが発生としかないな
・でも本体を見るとHDD4に赤ランプがついている
・おそらくHDD4がぶっこわれたのかな
・よーわからんのでとりあえず復元するか

NanoAを使ってみる

CGI.pmしかつかったことのない人ですが,ちょっとウェブアプリケーションフレームワークなるものを使ってみようと思った.
大規模アプリを作る予定はないが,個人レベルでそこそこのアクセスに耐えられるようなものにはしたいなぁ.

やってみた

・HTTPアクセス可能な場所に移動

$ cd ~/public_html

・そこにSVNでファイルをダウンロード。

$ svn co http://svn.coderepos.org/share/lang/perl/NanoA/trunk
<中略>
外部項目 (リビジョン 37919) をチェックアウトしました。

リビジョン 37919 をチェックアウトしました。

・フォルダ名を trunk から nanoa に変更

・ブラウザでHTTPアクセスしてみると500エラーが
・でも明らかにNanoAさんが吐いているエラーっぽい。すごいっす。

http://hamhamhamham.com/~hamhamhamham/nanoa/
データ用のディレクトリ「var」が存在しなかったため、作成を試みましたが失敗しました。
nanoa-conf.cgi の設定を確認してください

nanoa-conf.cgi を調べろとあるけど、そんなファイル見つからない
・var/ がないのが問題っぽいので、作成してみた

$ mkdir ~/public_html/nanoa/var

・エラーといわれた

http://hamhamhamham.com/~hamhamhamham/nanoa/
var/.htaccess を作成できません: at lib/NanoA/Config.pm line 42.

・気が進まないがパーミッションを変えてみる

$ chmod 777 ~/public_html/nanoa/var

・再度アクセス
・おお、http://kazuho.31tools.com/nanoa/nanoa.cgi と同じ画面が!
・なんで ~hamhamhamham/nanoa/ で nanoa.cgi にアクセスするのだろう
・そうか、.htaccess で指定しているのか。へー。

hamhamhamham@pc:~$ more public_html/nanoa/.htaccess
DirectoryIndex nanoa.cgi

Deny from All
Order deny,allow

# if .htaccess is being processed, the value is set to 1
SetEnv HTTP_NANOA_USE_HTACCESS 1

・サンプルアプリにアクセスしてみる
・tinybbs は DBD/SQLite.pm が無いです!と怒られた

http://hamhamhamham.com/~hamhamhamham/nanoa/nanoa.cgi/tinybbs/
install_driver(SQLite) failed: Can't locate DBD/SQLite.pm in @INC (@INC contains: extlib app lib MENTA/lib MENTA/extlib /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 18) line 3.
Perhaps the DBD::SQLite perl module hasn't been fully installed,
or perhaps the capitalisation of 'SQLite' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Proxy, Sponge, mysql.
at lib/NanoA/Config.pm line 133

CPANで DBD/SQLite.pm をインストール

$ perl -MCPAN -e shell
cpan> install DBD::SQLite
<中略>
/usr/bin/make install -- OK
cpan[2]> quit

・再度アクセス
・やった、動いた!

http://hamhamhamham.com/~hamhamhamham/nanoa/nanoa.cgi/tinybbs/

・すげぇ、OpenIDが使える
・試してみる
mixi側の認証後にエラーが出た

http://hamhamhamham.com/~hamhamhamham/nanoa/nanoa.cgi/tinybbs/
501 Protocol scheme 'https' is not supported (Crypt::SSLeay or IO::Socket::SSL not installed) at app/plugin/openid.pm line 118

・またCPANでモジュールを追加してみる

$ perl -MCPAN -e shell
cpan> install Crypt::SSLeay
<中略>
No installed SSL libraries found in any of the following places.
<中略>
Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=site]
DLAND/Crypt-SSLeay-0.57.tar.gz
/usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK

・失敗した
・どうもSSLライブラリがない模様
・synaptic で追加しようか
・その前にもうひとつのモジュールを試してみる

cpan> install IO::Socket::SSL
<中略>
Failed during this command:
FLORA/Net-SSLeay-1.36.tar.gz : make NO
SULLR/IO-Socket-SSL-1.33.tar.gz : make_test NO

・やっぱり失敗した
・素直にライブラリを追加しよう
・Synaptic でSSLperlで検索して、それっぽいのをインストール
・再度Perlモジュールをインストール

$ perl -MCPAN -e shell
cpan> install Crypt::SSLeay
Crypt::SSLeay is up to date (0.57).

cpan> install IO::Socket::SSL
Appending installation info to /usr/lib/perl/5.10/perllocal.pod
SULLR/IO-Socket-SSL-1.33.tar.gz
/usr/bin/make install -- OK

・成功!
・あれ、もしかしてさっきのも成功していたの?
・再度アクセス

http://hamhamhamham.com/~hamhamhamham/nanoa/nanoa.cgi/tinybbs/

・成功!
・ちゃんと表示されました
・書き込みも成功!
・どこに書きこまれているんだろうと思ったらこの辺だった

hamhamhamham@pc:~/public_html/nanoa$ ls -la /home/hamhamhamham/public_html/nanoa/var/
合計 28
drwxrwxrwx 5 hamhamhamham hamhamhamham 4096 2010-07-13 11:17 .
drwxr-xr-x 11 hamhamhamham hamhamhamham 4096 2010-07-13 11:18 ..

  • rw-r--r-- 1 www-data www-data 31 2010-07-13 10:58 .htaccess

drwxr-xr-x 2 www-data www-data 4096 2010-07-13 11:14 session
drwxr-xr-x 2 www-data www-data 4096 2010-07-13 10:58 system
drwxr-xr-x 2 www-data www-data 4096 2010-07-13 11:01 tinybbs

  • rw-r--r-- 1 www-data www-data 3072 2010-07-13 11:17 tinybbs.db

・ちなみに var/ は .htaccess で外部アクセス禁止されている模様
・でも 777 にしていたらさすがにやばいので www-data さん権限に変えるべきだな

そういえばSQLiteってどうなの

・どうやら素敵らしい

試作してみる

・とりあえずtinybbsをそのまま名前を変えてコピペ

$ cp app/tinybbs app/hamtest

・アクセスしてみる
・動かない!

http://hamhamhamham.com/~hamhamhamham/nanoa/nanoa.cgi/hamtest/

・package名を変える

- package tinybbs::start;
+ package hamtest::start;

・動いた!

http://hamhamhamham.com/~hamhamhamham/nanoa/nanoa.cgi/hamtest/

・template/smart.mt をいじってみる
・変わらない!
・良く見たら smart.pm でtinybbsのテンプレートを指定していた

- $app->render('tinybbs/template/start'
+ $app->render('hamtest/template/start'

・変わった!
・他のappのテンプレートも平気で使えるんですね。

今後の課題 <未解決>

・テンプレートファイルに直接アクセスするとエラーがでる
・Dispatch.pmがやりくりしているから、.htaccessでアクセス禁止しても無駄
ソースコードが見えるのは気持ち悪いけど、NanoA側のソースだからいいのかなぁ

http://kazuho.31tools.com/nanoa/nanoa.cgi/tinybbs/template/start

・エラー時にはこういう処理ではなく、すべてトップページに飛ばしてほしい
デバッグモードのような気がするので、切り替え可能なのでは?
・MENTA/extlib/CGI/ExceptionManager.pm の仕業なので、これの呼び出し部分を確認すればよい?

今後の課題 <解決済み>

・nano.cgiが出るのはカッコ悪いけど、VirtualHostで隠せるのか?
・どうやら隠せるらしい

$ vi /etc/apache2/apache2.conf

  1. ServerName hamhamhamham.com
  2. DocumentRoot /home/hamhamhamham/public_html/nanoa/nanoa.cgi/hamtest

$ etc/init.d/apache2 restart
* Restarting web server apache2
Warning: DocumentRoot [/home/hamhamhamham/public_html/nanoa/nanoa.cgi/hamtest] does not exist
... waiting Warning: DocumentRoot [/home/hamhamhamham/public_html/nanoa/nanoa.cgi/hamtest] does not exist
...done.

ディレクトリじゃないので警告が出たけど、問題ないらしい
・うーむ、意外とあっさり解決しました

負荷テスト

  • http://www.stackasterisk.jp/tech/engineer/jmeter01_01.jsp
    • JMeterは単なるパフォーマンス測定/負荷テストツールにとどまらず、様々な機能を持つフリーな汎用テストツールです。JMeterを使えば、WEBアプリケーション、データベース、FTPWEBサービスなどの性能測定/負荷テストが実行できることは勿論、様々なタイプのテストを簡単に実行できます。WEBアプリケーションであれば、レスポンスタイムの測定、HTTPステータスの確認、正規表現を使った埋め込みテキスト確認、HTML、XMLXHTMLの構文チェックなどです。今回はJMeterのインストール、WEBアプリケーション向けの簡単なテストの実行、アサーション機能を紹介します

JMeterでフツーのtinybbsへのトップページアクセスを試してみた
・そんなもんに意味があるのかどうかはわからんけど,とりあえずテストテスト

・50スレッドが毎秒アクセスして60ループ。1秒で18リクエスト処理。
・とあるけれど、平均レスポンスタイムが2500ms?2.5秒なのか?
・あぁ1秒間に50リクエストきて、秒間18レスポンスだったら、まぁそんなもんか。

・秒間18リクエスト、 18*60*60*24=1,555,200リクエスト/日。1日で150万PV、月間4500万PV。
・まぁ単純読み込みのみなので、書き込みありとかまともにDBを使いだすと話が変わるだろうけど。
・なんにせよこんな大層なサービスを作るわけでもないので、問題なし
・もうちょっとまともな負荷テストはアプリを作ってからやりましょう

xyzzyの設定

LaTeX入力支援ソフト野鳥(YaTeX)のxyzzy移植版。

インクリメンタルサーチをやるためには、~/.xyzzy に以下を追加。

(require "isearch")

Windows7にLaTeXを入れる

Ghostscript

ふつーにインストール可能。

LaTeX

texinst2010.zip と上記サイトに挙げられたもろもろのtar.gzを全部落として、zipの中にある説明に従ってインストールして、環境変数のPATHにインストールしたtexの在りかを追加すれば完了。

dviout

tex318w.exe をダウンロードしてインストールすれば完了。事前にlatexとghostscriptをインストールしておけば、パラメータも全部guessでok。