2009年11月03日

1日〜1週間でOSSに貢献する方法

OSC2009lt

OSC 2009 Tokyo/FallのLTで発表してきました。ACアダプタを忘れて、Windows PCで発表する予定だったのを、バッテリー持ちの良いMacBookにスイッチ。また、当日はPloneのブースで山本烈さんにアダプタをお借りしました。「電源とRGBケーブルありますよ!」とmixiを見てダイレクトメッセージを送ってくれた清水川さんともども、感謝申し上げます。

なぜかトリだったのですが、トラブルがあってその前に。タイマーが無かったのでiPod Touchの時計を表示しながら話していましたが、省電力設定がONのままだったので、ちょくちょくロックがかかってしまったのは失敗でした。今度から気をつけよう。

今回は話す内容がほぼそのままスライドになっているので補足するところは少ないのですが、今回もコメントを追加しつつスライドを紹介していきます。Slideshareにもアップしています。

OSC2009lt

それでは前回までのあらすじです。

OSC2009lt

とちぎRuby会議02というイベントが1週間前にありました。

OSC2009lt

テーマは儲かるRubyで、会費が50円でした。

OSC2009lt

そこのLTでは、儲かるドキュメントとして発表してきました。

OSC2009lt

そこで紹介したのが、Sphinxというドキュメンテーションツールです。Wikiと似たような、シンプルなテキストマークアップで記述してドキュメントを作っていくツールです。Wikiとの細かい違い、アジャイルにおけるテストとドキュメントの待遇の差などについて話をしてきました。あとは、DHHよりもイケメンがPython界にはいるよとか言いたかったけど、時間ありませんでした。

OSC2009lt

ぜひともSphinx使ってください、とアピールしてきました。ちなみに、Sphinx情報は僕のブログが日本で一番情報が集まっていると思いますが「コンカツ女子 IT」でググるとトップに出ますので、探してみてください。

OSC2009lt

そして、Rubyistの人達に、Sphinxを使って幸せになるための呪文をお伝えしました。今回のネタも多少かぶりますが、ほぼオリジナルです。手抜きはしてません。さて、これからが本題です。

OSC2009lt

今年の2009年9月11日の出来事を紹介します。

OSC2009lt

この日は、東京の晴海で晴海code campというイベントがありました。僕も参加したかったのですが、あいにく会社の労働組合の支部総会があり、栃木にいました。

OSC2009lt

この日の午後2時ぐらいだと思うのですが、FacebookがTornadoという、高スループットなWebアプリケーションサーバの発表がありました。

OSC2009lt

翻訳してよー、という声もあったので、家に帰って腕試しで翻訳を開始しました。

OSC2009lt

30分ほどしたら、code camp方面から翻訳依頼が来ました。

OSC2009lt

どうせなら一緒にやりましょう、と声をかけて、skypeチャットでやり取りをしながら4人でやることになりました。

翻訳にはSphinxを利用しました。当日初めての人が多かったのですが、構文も簡単で、すぐに慣れてくれました。Sphinxを利用したサイトを見ると、ソースコードが見られるので学習効率も良いです。文書の共有はMercurial。ホスティングはBitbucket上に作成したリポジトリを利用しました。

OSC2009lt

次の日はお茶のお稽古があったので、自分の作業がキリのいいところまで終わったところで東京に移動を開始しました。

OSC2009lt

東京に着いたら、他の人の作業が一通り終わっていたので、自分のリポジトリにマージしたり、Sphinxの機能を使って見栄えを調整したり、ということを開始しました。

OSC2009lt

そして4:52。翻訳を一通り終えて、サーバにアップロードしました。実に、発表からたったの13時間(前のブログでは間違って14時間と書いていたけど)で日本語訳を公開するという偉業を達成しました。

OSC2009lt OSC2009lt

今回の内容はドキュメントです。

OSC2009lt

10文字でドキュメンテーションを終わらせる黒魔法の呪文「コードヨメ、ググレカス」というのがありますが・・・・

OSC2009lt

これは使ってはいけません。

OSC2009lt

オープンソースとはいっても、ソースコードを読んで手を入れる人は少数です。日本語ができる人は多数。戦略としては、ドキュメントを整備して、はじめの一歩を踏み出しやすくすることで人が集まる。エントリーポイントとしてのドキュメント。ドキュメントを通じて敷居を下げることができます。

OSC2009lt

それでは、翻訳をするということについて見ていきます。

OSC2009lt

翻訳をすると、いろいろ学びがあります。新しい自分になることができます。どういう風な新しい自分になったのか見ていきます。

OSC2009lt

まず、一次情報をゲットしているのでいろんな新しい情報が出てきても、自分で「これは古いな」と判断できるようになります。情報収集のスピードもあがり、効率良くアンテナを広げることができるようになります。人に話をしたりして情報提供側に回ることで、もらう一方だった時と比べると、他の人と強い繋がりができる可能性も高いでしょう。

OSC2009lt

次に自分のブランド化です。翻訳をすると、自分が何に興味を持っていて、どういうスキルがあるのか、というのを周りの人に簡単に分かってもらいやすくなります。他の人から声をかけてもらいやすくなります。

OSC2009lt

これが4月ごろからの僕が翻訳したものリストです。これを見れば、僕が仕事で何をやっているか知らなくても、どういうスキルを持っているか、判断しやすくなります。GTDで、Pythonで、Erlangで、C++で・・・履歴書とかにちょろっと言葉で書くよりも、よっぽど説得力があると思いませんか?

OSC2009lt

翻訳をやるとモチベーションも異常にアップします。

OSC2009lt

僕はこれを「エヴァンジェリスト症候群」と読んでいます。何者でしょうかこれは?

OSC2009lt

翻訳をすると「オレが日本で一番詳しい」という錯覚を覚えます。もちろん翻訳をやったのですから、本当にそうである可能性は高いです。もしかしたら英語のまま勉強しているすごい人はいるかもしれませんが、それでも細かい所は読み飛ばしている人は多いので、翻訳をした人の方が詳しい部分は必ずあります。そういう優越感とともに、「自分が教えないと」という義務感や、「他の人に負けなくたくない」という焦りの気持ちも出てきます。

モチベーションというと、アメとムチの話しが必ず出てきますが、翻訳をした場合には、この両方が同時にやってきます。「モチベーションが高い」という状態を通り超えて「もうやらずにはいられない」というレベルにまで一気に行く可能性があがります。一気にスキルアップが果たせる可能性が高いです。もちろん、翻訳をしても、外に公開しないで隠し持っているだけだとココまでは行きません。

OSC2009lt

それでは、翻訳をどうやってやっていくのか、説明していきます。

OSC2009lt

必要な能力はこの棒グラフの通りです。英語が少ないというのは意外ですか?そうではありません。

OSC2009lt

翻訳をやる上で、重要なのは「読みやすい日本語」にすることです。ながーい文章を2つの文に分けたり、日本語では差が出にくいような似ている形容詞が二つ並んでいたら1つにまとめてしまったり、日本のことわざを当てはめたり・・・文を訳すのではなく、著者の意図を読み取って、自分がゼロから書き上げるような気持ちでもいいぐらいです。アジャイル、人間系、GTDみたいなマインドを語るものは難しいけど、ライブラリ、ツールの使い方は、本文が分からなければ実物を触ってみて確認することもできます。

英語なんて、excite翻訳でいいんです。それをベースに手直しをしつつ、自分なりの、読みやすい日本語を追求すれば良いんです。英語力があればスピードはあがります。でもそれだけです。僕も疲れたらexcite使います。係り受け構造が複雑な英語を解読するときはたまに便利ですよ。

ここは当日ウケるつもりではなかったのに、結構ウケました。昔は「おおみそか」を変換すると、「Oh! It's miso」になったそうですが、今は「New year eve」と出ます。excite翻訳も日々進化しているみたいです。たまに「この表現すごいな」という日本語もぱっと出たりします。最近はバカにできませんよ。

OSC2009lt

複数人でプロジェクトを進める場合の注意点です。

OSC2009lt

一番注意する点は「楽しいことを分割する」という観点です。面倒なことをみんなで、というのは参加の敷居をあげてしまう可能性が高いです。

OSC2009lt

作業の楽しさ、めんどうさをマトリックスにしてみると、この赤枠の部分は問題になることはありません。面倒でもすぐに終わる野であれば問題ありません。

OSC2009lt

問題は面倒でつまらない作業。多くの場合、ここがボトルネックになりがちです。全員にちらばっていると、「誰か一人が完了しないと全体が止まる」という事態になりかねません。例えば、共同編集環境のリポジトリの決定と準備、翻訳するツールの選定、どういう日本語にするか?(ですます/だである)、マージ作業、訳語の調整、公開する環境の決定と準備、公開後の修正。特に「決める」という作業は人によっては負担が大きいです。プロジェクト進める人がぱっと決めて揃えてあげることが大切です。

だいたいはリーダーであるみなさんのモチベーションが高い状態なのに対して、参加する人は「やってみようかな」という気になってもらうところも一つの心理的なジャンプですので、「楽しいなぁ」と思ってもらって参加しやすい環境を整えるのが大切です。

OSC2009lt

翻訳にオススメなのはSphinxです。一番便利なのは、ドキュメントツールなのにコメントアウトがあることです。原文と翻訳をソースに併記しておいて、ビルド時に外す、ということができます。ifconfigというディレクティブを使うとさらに色々制御できます。コードハイライトもものすごい種類に対応しています。indexディレクティブを使っていくと本のような索引もできます。また、ソースがプレーンテキストなので、バージョン管理で共同作業できるのもオススメ。ファイルを細かく分けたりしないで、がんがん作業してマージしちゃえばいいんです。宗教上の都合で「Pythonは使うなって爺ちゃんの代から言われているのでムリ」という人以外はぜひ。

OSC2009LT

オープンソースのツールを使う時には翻訳以外にも、ブログで「さわってみた」記事とかが重要な情報源だったりします。また、最近はtwitterやソーシャルブックマークなども色々ありますよね?この手のものはどうなんでしょうか?

OSC2009lt

もちろん、これらもOSS界に対する、ドキュメンテーションに関する大切な貢献となります。

OSC2009lt

ブログでの使い方の説明は言うまでもありませんが、自分で書く以外にも、他の人の書いたものでいいものを見つけたらTwitterでその内容のリンクを張ってあげる、コメントもなるべくつけるというのも貢献になります。Googleで引っかかるものすべてがドキュメントです。GoogleのPage Rankアルゴリズムは、価値のある情報を持っていて被リンク数が多いサイトほど検索結果で上位に出てくるというアルゴリズムになっています。SEOを自分のサイトのためだけにやる必要はありません。他の人のサイトのためにやってあげるのも意味があります。いい情報をどんどん発信するのが重要!はてなブックマーク、はてなスター、Delicious。なんでもOK。

OSC2009lt

当日は時間の関係で飛ばしたところです。

OSC2009lt

最近は「読んだよ」みたいなコメントとか、メールとか、そういうの減ってきていませんか?その一方で、増えているのがはてなブックマークや、はてなスター、Twitterで紹介などなど。例えば、ブログなんかではRSSリーダーで読んでおしまい、など情報に触れる量は確実に増えていますが、その一方で1つの記事にかける時間は減っています。ブックマーク数の多さでホットエントリーになったやつを読むというスタイルも増えてきています。ウェブもテレビ番組みたいに、視聴率的な数値で判断されるような、そんな変化を感じます。

翻訳を続けていくときのモチベーションに「他の人から役に立っている」というのがあるので、「反応が欲しい」と積極的に思っている人もいるでしょう。でも、少し最近だと、そういうのが減ってきている以上、ブックマーク数などで判断するしかありません。

OSC2009lt

やはり、情報を提供する側というと、上に見られることも多いです。上になればなるほど、聖人君子であることが求められます。アクセスはあるのに反応がないのは「みんな、恥ずかしくてメール書けないのか−、分かる分かる」と思っておけば良いんです。また、ブックマークされたら「だいたいRSSリーダーで1日1000件から数千件のエントリーを読み流しているなかで、ブックマークされるものなんて10個程度。上位1/100ぐらいの価値はあるということだな」と勝手に拡大解釈するのもアリです。自分がとりえる受け取り方のうち、もっとも自分に都合の良いものを選ぶのが聖人君子への道です。もう、みなさんは聖人君子です!

ちなみに、上記のページは、僕が一方的に師匠と呼んでいる(反対はされていない)、ほりうち!師匠のスライドから引用しました。

OSC2009lt

それでは次回予告です。

OSC2009lt

思いつきですが、Sphinxドキュメンテーションユーザグループを作ろうかな、と思います。何をやるかは決めてません。「ドキュメンテーション」と入れたのは、Sphinxという同名のOSSが他にも2つあることが確認されているので、区別のためです。

OSC2009lt

共著で本も現在書いています。来年の3月リリースを目指して執筆活動中(LT 2週連続だったので一時中断してますが)です。技評SE選書から刊行予定です。

OSC2009lt

今回のLTでも、紹介した「新しいオレ」になる方法をいろいろ紹介していきます。ちなみに、「新しいオレ」は共同執筆者のnomicoさんのアイディアです。アイディア借りました。どうもありがとうー。OSCとかに出かけてくるような人はもう出来ていることが多いと思いますが、好奇心でどんどん勉強していくのを勧めるような内容になっています。もちろん、最近では欠かせない、OSCに出店しているようなコミュニティ活動、勉強会についても触れる予定です。

例えば、新人が来たときに「とりあえず、これ読んでみなよ」と言って渡してもらえるような、IT業界の楽しさが伝えられるような本にできたらいいかな、と思います。

ちなみに、「一人3冊はお願いします」と当日LTで言おうと思っていましたが、時間がぎりぎりで焦って忘れてましたw

OSC2009lt

本もそうですが、翻訳もこれからどんどんやっていきます。僕自身、今後も幅広くOSCに貢献していきたいと思っています。LTはここでお終いですが、貢献活動はこれから続けていきますよ!みなさんもぜひ!


(11/3 21:40に追記): cppreference.comの翻訳協力者を募集中です。サイトに行って、勝手にユーザ登録をして勝手に訳してもらって構いません。日本語は読みやすさを考えて「です、ます」調にしています。

posted by @shibukawa at 09:26 | Comment(124) | TrackBack(0) | Python はてなブックマーク - 1日〜1週間でOSSに貢献する方法
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33377933
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
検索ボックス

Twitter

www.flickr.com
This is a Flickr badge showing public photos and videos from shibukawa.yoshiki. Make your own badge here.
<< 2016年12月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
最近の記事
カテゴリ
過去ログ
Powered by さくらのブログ