reStructuredText 形式の parse が失敗するようになったと思ったら、Docutils のパッケージが upstream の 0.4 に追従してバージョンが上がっていた。
Release Notes に
Added Japanese and Simplified Chinese language mappings, and support for double-width CJK-characters in tables and section titles.
とあって期待したのだが、試してみたところまだまだ駄目っぽい。
0.3.9 に戻して 以前入れた時と同様 patch をあて、元の環境に戻す。
今後に期待。
プロジェクトの後半で納品用ドキュメントの整備を始めるのだが、その時はたいがいもう切羽詰りはじめていて構成やら体裁やらマネジメントやらを工夫する余力が無かったりする。 ついつい(次回は改良しようと思っていつも思っている)前回のプロジェクトの手法を踏襲してしまいがちだ。 ともすれば劣化コピーになりかねない。
やはり、忙しくても日頃からの改善は重要である。
最近はアジェンダ・議事録・開発メモなどを、積極的に Wiki や Subversion で共有するようにし、その点では以前より改善してきている。
今後はさらに、出荷ドキュメントのレビュープロセスなどを確立し品質を高めていきたいところである。 現状でもチームメンバでのピアデスクチェックやパスアランドを非形式的に行っているのだが、「チェックの程度」やその後の「修正」および「修正の確認」については、まだなんとなくやったかなという具合。この辺りを工夫したい。
先月発売されていて気になっていた「開発の現場 Vol.003」に、何かヒントがあるかなと思って買ってみた。
パラパラと見た感じではテクニカルライティングの話はあまりなく、主にソフトウェア開発における中間成果物としてのドキュメントや開発者間ドキュメントをどうとりまとめていくかという話が中心のよう。 Wiki による開発資料のライトな共有など、うちのチームでも進めている話など。
「(最初から)完全なドキュメントを書こうとしない」というのはもっとも。 状況はほとんどの場合変わるし、最初の段階では未確定の部分も多い。 だからといって、いつまでたっても手元で温めていてもしょうがない。
技術的な話では Perl の Pod を活用しようという話。 Perl 以外の言語のコメント中に Pod 形式でドキュメントを書こうという提案や、Apache で動的に Pod ドキュメントを整形しようという話とか。
テキストフォーマットとしての Pod は =over / =item / =back によるリスト表現など、最近のフォーマットに比べてすごく読み易いわけではないが、たしかに他の言語のコメントに埋め込んでおいて処理するのは、標準の Pod 関連のモジュールでできるな。
自分も Pod でドキュメントを書くけれど、(Perl 以外は) 個人的には reStructuredText にしたいと考えている。 ただ Pod みたいに他のテキストの一部に埋め込んでその部分のみ処理する記法およびツールがが標準の reStructuredText / Docutils には見当らない。 実はどっかにあるのだろうか。
[ 読書ノート ]
reStructuredText では表を作る時は文字数で桁揃えして、表セルを表現していく。 ASCII 文字などフォント幅がいわゆる半角幅であるものだけならば、良いのだが全角幅の文字がある場合はちょっと厄介である。
文字数的には1文字なのだが、テキストファイル上では2文字分の幅を取るので見た目上桁が揃わなくなってしまう。 というかそれを忘れて桁を揃えておくと、パーサに怒られる。
このためにパッチがあったり、Docutil 0.4 ではこの対策がほどこされたりしている(不完全であるが)。
さらに厄介なのが Unicode 変換がからむところで、 Emacs + Mule-UCS ではいくつかの(いわゆる)全角文字は UTF-8 で保存すると違う文字に変換されてしまい、これまた Docutils のパーサに、桁があっていないと怒られることになる。
できるだけ全角文字はそのままにしておくということで、以下の設定を追加しておいた。
(require 'un-define) (un-define-change-charset-order (append '(ascii japanese-jisx0208) unicode-basic-translation-charset-order-list))
またバックスラシュと円記号の方も混乱が少ないように
(require 'un-supple) (un-supple-enable 'windows)
を追加してく。
Life Hacks PRESSの巻末「執筆陣に聞きました!」で、角谷信太郎氏が、howm でメモをしていると述べていた。
以前話題なった時にも気になったんだけれど、その時は emacs-wiki を使っていたこともあって手を出しそびれてしまった。
howm は検索を中心としたリンク機能を持つメモツール。名前を指定せずにちょっとしたメモを作成し、後で探し出すことできる。
GTD で参照資料扱いとするメモをどこに保存しておこうかと思案していたのだが、丁度よさそうだ。
ソフトウェアインストール時の作業履歴やら、ちょっとした下書きやらのファイルも散在して後で扱いに困っていたのだが、これらもまとめて放り込んでおける。 しばらく使い込んでカスタマイズしたりして、自分流のスタイルを模索してみることにしよう。
howm 自体はほとんど書式というものがない。 自分の好きな形式で自由に書くことができる。 自分は reStructuredText か WiKicker 形式で書くことになるかな。
その辺も含めていろいろ遊んでみよう。
以前メールによる社内コミュニケーションの問題について書いて以来、いろいろと考えてみている。
そんな中、東洋経済新報社の「Think! SPRING 2006 No.17 超ロジカルシンキング」の中に参考になる記事を発見。 照屋華子氏の「ロジカル・ライティング - 論理的に考え、伝えるための3つの鍵を身につける」という記事だ。
すべてのビジネス・コミュニケーションは「伝え手」「受け手」「テーマ」「答え」「期待する反応」という5つの基本要素で成り立っている。-- Think! SPRING 2006 No.17 p.43
おお、ちょうどこういう切り口を探していたところだったんだ。 電子メールによるコミュニケーションも全く同じ枠組みである。 記事の中ではロジカルシンキングをコミュニケーションで生かすという話題を中心に展開しているが、十分メールの書き方に通じるものがある。
この記事と、さらにちょっと前に買った「SEの実力を磨く究極仕事術」のメール術の章を参考にガイドライン案のスケルトンを作ってみた。
感情論は今回は置いておいて、情報共有・課題共有・リクエストの明確化・処理促進をポイントに列挙。 それから署名その他、一般的な話もいまのところ省略。
ポイントを列挙しただけなので、他人にもわかる形にはなっていない。
まずは自分自身に適用して、整理していってみることにする。
○○様へ # 受け手 △△の××(自分)です。 # 伝え手 テーマ ****** コミュニケーション設定 ○○の結論 # 答え (結論) ========== ... (ここまででポイントを言いきる。) 具体的な内容 # 答え (詳細) ============ 項目1 ----- .... - リスト項目 - リスト項目 項目2 ----- ... - リスト項目 - リスト項目
コミュニケーション設定を行う。
結論を書く。
根拠・資料などを書く。
どれか
メールでは不適当と思ったらコミュニケーション手段を 直接 / 電話に切り換える。
ちょっとした仕様のドキュメトを書くのに、久しぶりに reStructuredText を使いたくなったので、Windows XP BOX に環境を用意した。
まず Python をインストール。公式サイトから python-3.1.2.msi をダウンロードしてインストール。インストール先は c:\usr\local\Python31 に。
次に reStructuredText 形式ファイルを HTML 形式ファイルなどに変換するツールが含まれている Doctils wを公式サイトから取ってくる。docutils-0.7.tar.gz をダウンロード。アーカイブを展開したら setup.py のあるディレクトリで
c:\usr\local\Python31\python.exe setup.py install
を実行。これでインストール完了。これ例えば reStructuredText 形式で書いてある mydoc.txt ファイルを HTML 形式ファイル mydoc.html に変換するには
c:\usr\local\Python31\python.exe c:\usr\local\Python31\Scripts\rst2html.py mydoc.txt mydoc.html
で OK。必要なら docutils.conf ファイルを作って --config オプションで渡してあげる。環境にあわせて rst2html.bat を作っておけば、Windows でもまずまず reStructuredText を使えるはず。
Evernote の書式機能はしょぼい。 Evernote 上でちょっとした文書を書く場合は reStructuredText 形式で書いておいて必要な時に HTML 形式などに変換したいのだが、ノートの内容に対してコマンドを実行する機能などがないのでクリップボード経由で rst2html を呼ぶようにしてみた。
Evernote for Windows 4 のノート上で全文選択して[コピー]後、以下の Perl スクリプトを実行するとクリップボードの内容に対して rst2html を実行して HTML ファイル生成後、デフォルトブラウザで開いてくれる。
#!/usr/bin/perl use warnings; use strict; use Encode; use Win32::Clipboard; use File::Temp; my $clip = Win32::Clipboard(); exit 0 unless $clip->IsText(); my $text = $clip->GetAs(CF_UNICODETEXT); $text = Encode::decode("UTF16-LE", $text); $text =~ s/\015\012\015\012/\015\012/g; $text =~ s/\x{00a0}/ /g; # U+0020 my $tmp_file = File::Temp->new(SUFFIX => '.rst'); binmode($tmp_file, ":encoding(utf8)"); print $tmp_file $text; system "rst2html", $tmp_file, $tmp_file . '.html'; system "start", $tmp_file . '.html';
まずは的 Perl スクリプトなので、ファイルは一時ファイルとして作成していて削除もしていない。なお rst2html は設定ファイルで [general] input_encoding: utf-8 に設定してある。
Evernote のクリップボードテキストを処理するのに、ちょっと工夫がいる点は以下。
どちらもそのままだと reStructuredText 文法的におかしくなるので、変換してあげる必要あり。
と3アクションあるので若干手数が必要だが、そこそこ便利。 Perl スクリプトの方は Win32::Clipboard::WaitForChange() あたりを監視するようにするともう1操作減らせるはず。
オフィスを17:00すぎに出発して40分ぐらいで YAPC::Asia Tokyo 2013 の会場である慶應義塾大学 日吉キャンパスの協生館に到着。去年同様 foursquare のスポット作っといた。
イベントホールで開催された前夜祭は、去年の「立食パーティーでワイワイガヤガヤ」からかわって「みんなでLTソンを見ながらワイワイ」となってまたガラリと違う趣き。去年や一昨年みたいに懇親できなかったのはちょっと残念だったけど、YAPC らしい LT トークをいろいろ聞けたのでこれはこれで楽しかった。
拍手君は予想通り最初にイジられてあと下火になってくるということでランキングには使えない感じだったけど、盛り上げにはとても良かったね。
旬のネタ的にはばっちり「Cookie Clicker」と「艦これ」がトークの随所に。明日もいっぱい被るんだろうなあ。
個人的には reStructuredText (+ Sphinx)の話が出てきたのが楽しかった。一時期(2005年〜2010年ぐらい) reStructuredText でちょこちょこ書いていたんだけれど、最近は Markdown の方をよくみかけるようになったし忘れてた。
明日・明後日も行きます。
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。