Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Erlang and I and Sphinx.

2,337 views

Published on

  • Be the first to comment

Erlang and I and Sphinx.

  1. 1. Erlangと私とSphinx- Happy Life with Erlang and Sphinx-<br />Tokyo Erlang Workshop #5<br />2010/08/27<br />渋川よしき<br />
  2. 2. 自己紹介:渋川よしき<br />Twitter: @shibukawa<br />仕事<br />大手製造業の社内SE<br />社外で技術習得して社内で楽をする<br />参加コミュニティ<br />SphinxUsers.jp<br />翻訳ハッカソンとかを継続開催予定<br />日本XPユーザグループ代表<br />9/4にXP祭り2010を早稲田で開催<br />とちぎRuby<br />Python温泉(系)<br />11/14にPython Hack-a-thon<br />今年出した本<br />IT業界を楽しく生き抜くためのつまみぐい勉強法(技術評論社)<br />エキスパートPythonプログラミング(アスキーメディアワークス)<br />
  3. 3. Erlangと私とSphinx<br />Erlang<br />勉強したい<br />2009年<br />2010年<br />
  4. 4. Erlangと私とSphinx<br />初Erlang<br />(fizz-buzz)<br />2009年<br />2010年<br />川崎code-campで初Erlang<br />
  5. 5. Erlangと私とSphinx<br />2009年<br />2010年<br />実践EUnitを翻訳<br />http://articles.shibu.jp/category/776137-1.html<br />
  6. 6. Erlangと私とSphinx<br />2009年<br />2010年<br />EUnitのリファレンスを翻訳<br />http://articles.shibu.jp/category/777978-1.html<br />
  7. 7. Erlangと私とSphinx<br />2009年<br />2010年<br />Erlang Efficiency Guideを翻訳<br />http://erlang.shibu.jp/efficiency_guide/<br />
  8. 8. Erlangと私とSphinx<br />2009年<br />2010年<br />この翻訳で初めてSphinxを導入<br />
  9. 9. Erlangと私とSphinx<br />2009年<br />2010年<br />Sphinxの0.6系の翻訳<br />http://sphinx.shibu.jp/<br />
  10. 10. Erlangと私とSphinx<br />2009年<br />2010年<br />OSC 2009 Tokyo/FallでLT<br />http://blog.shibu.jp/article/33377933.html<br />
  11. 11. Erlangと私とSphinx<br />2009年<br />2010年<br />本の原稿もSphinx<br />
  12. 12. Erlangと私とSphinx<br />2009年<br />2010年<br />SphinxUsers.jp設立・会長就任<br />
  13. 13. Erlangと私とSphinx<br />2009年<br />2010年<br />翻訳本もSphinx<br />
  14. 14. Erlangと私とSphinx<br />2009年<br />2010年<br />Sphinx 1.0翻訳<br />
  15. 15. SphinxとWikiの比較<br />□Sphinx<br />□Wiki<br />プレーンテキストによる簡易マークアップ<br />レンダリング<br /> ->静的HTML生成<br /> ->PDF/LaTeXなど<br />エディタでオフライン編集<br /> ->バージョン管理なし<br />キーワードに対してリンク<br />ツリー構造<br />プレーンテキストによる簡易マークアップ<br />レンダリング<br /> ->HTML<br /> ->Webアプリケーション<br />ブラウザでオンライン編集<br /> ->バージョン管理内蔵<br />ページに対してリンク<br />セミラティス構造<br />
  16. 16. SphinxとWikiの構造の違い<br />toRuby<br />toRuby<br />Wiki<br />たのしいRuby<br />dRubyによる・・・<br />Ruby<br />RWiki<br />def 書籍情報<br />とちぎRuby会議<br />るびま<br />01<br />Hiki<br />レポート<br />参考図書<br />02<br />
  17. 17. SphinxとWikiの感想の比較<br />□Sphinx<br />□Wiki<br />ツリーによるナビ<br /> ->ロジカルツリー<br /> ->トップダウン構造<br />水平に広げやすい<br />構造がぶれない<br />スモールリファクタリングしやすい<br />Webサーフィン感覚<br /> ->Wikipediaで時間を消耗<br /> ->迷子ページも<br /> ->全体像つかみにくい<br />深めやすい<br />構造は自由<br />構造修正は大工事・・・<br />
  18. 18. Pythonのドキュメンテーションには手書きと自動作成と2種類あった。<br />両方とも開発者、ユーザともにメリット、デメリットがある。手書きの方が<br />品質は高いが、メンテナンスは苦痛である<br />Werkzeug0.2ではこの2つの組み合わせに挑戦した。Docutilsをベース<br />にコードからの自動抽出を追加し、完全にコードとドキュメントの同期が<br />取れるようになった。Georg Brandlはこのツールを書き直し、Sphinx<br />としてリリースした。これはPython 2.6, 3.0のドキュメントでも使用され、<br />Python以外のプロジェクトもサポートしている<br />これは今までで最高のドキュメントツールだ。自動相互リンク、索引の作成<br />もサポートしている。拡張APIを使えばさらなる自動化も期待できる<br />Twitterの写真を引用しました<br />
  19. 19. それ以外にも・・・<br />BPStudy #30でSphinxの紹介<br />Python Hack-a-thonでSphinxハンズオン開催<br />電子書籍の動向調査の原稿依頼がキタ<br />産業技術大学院大学で発表<br />
  20. 20. それ以外にも・・・<br />BPStudy #30でSphinxの紹介<br />Python Hack-a-thonでSphinxハンズオン開催<br />電子書籍の動向調査の原稿依頼がキタ<br />産業技術大学院大学で発表<br />Erlangを勉強するつもりが、<br />気づいたらSphinxエヴァンジェリストに!<br />
  21. 21. でも、ちょっと待って!<br />
  22. 22. Sphinx 1.0から新機能<br />Python、C以外のドキュメントも書けるように<br />自分で対応言語を増やせる<br />Rubyのソース<br />ビルド結果<br /> .. rb:module:: berrymq<br /> .. rb:function:: talk(識別子)<br />メッセージを送ります<br />クライアントとコネクションを張ったら :rb:func:`talk` が使えるようになります<br />berrymq.talk(識別子)<br />メッセージを送ります<br />クライアントとコネクションを張ったらtalk()が使えるようになります<br />
  23. 23. ということで・・・<br />
  24. 24. Erlangドメインを実装<br />
  25. 25. 今のところの対応<br />Erlang専用の4つのディレクティブとロールを追加<br />モジュール<br />関数<br />マクロ<br />レコード<br />
  26. 26. モジュールディレクティブ<br />モジュール名を引数に取る<br />モジュール索引に項目が追加され、ページジャンプできる<br />これを設置した後の関数は、これの中にあるとみなされる。<br />.. erl:module:: lists<br />
  27. 27. 関数ディレクティブ<br />関数名を引数に取る<br />メソッドの省略、返値も記述できる<br />引数、返値の説明は:param:, :type:, :return:, :rtype:フィールドを使う<br />.. erl:function:: append(ListOfLists) -> ok<br /> :paramListOfLists: くっつけたいリストのリスト<br />ここに箇条書きでもなんでも自由に文章書けます。<br />
  28. 28. マクロ、レコードディレクティブ<br />マクロ名、レコード名<br />ディレクティブ内に自由に文章が書ける<br />レコードの要素ごとの説明が書けるようにはなってません。作成中です。<br />.. erl:macro:: NOTEST<br />テストの実行をやめる<br />.. erl:record:: #person<br />人の情報<br />
  29. 29. モジュールロール<br />ドキュメントの文章中から、モジュールの定義場所へのリンクを貼る<br />Erlangのテスティングフレームワークには、2種類あり、簡単な方が :erl:mod:`eunit` です。<br />
  30. 30. 関数ロール<br />ドキュメントの文章中から、関数の定義場所へのリンクを貼る。<br />arityとモジュールを指定する(同じモジュール内ならばモジュールは省略可)<br />:erl:func:`sets:from_list/1` と、 :erl:func:`sets:to_list/1` を使えば、重複要素のないリストが簡単に作れます。<br />
  31. 31. マクロ、レコードロール<br />arityがない以外は関数のロールとほぼ一緒です。<br />他のロールもですが、 < > を使うと、ドキュメントに表示されるラベルを変えることもできます。<br />:erl:macro:`APRILFOOL` は、エイプリルフールにコンパイルする時にのみ設定されるマクロです。<br />:erl:func:`これ <lists:reverse/1>` を2回実行すると、時間コストはややかかります。<br />
  32. 32. 使い方<br />easy_installsphinxcontrib-erlangdomain<br />Sphinxのプロジェクトを作ったら、extensionsに’sphinxcontrib.erlangdomain’を追加<br />
  33. 33. Sphinxでドキュメント書くといいこと<br />豊富なマークアップを活用して記述できる<br />大規模文章でも書きやすい<br />Erlangはドキュメントを大事にする文化<br />iPadに出すとモテる!?<br />
  34. 34. Sphinxについての詳しい情報はSphinxUsers.jpへ<br />インストール方法<br />リファレンスの完全日本語訳<br />Sphinxを使った日本語サイト一覧<br />ウェブサイトの作り方<br />チュートリアル<br />ePubの出し方<br />翻訳のやり方<br />よい文書の書き方<br />
  35. 35. Sphinxのこれから良くなる点<br />PDF出力<br />お手軽rst2pdfだと見た目が・・・日本人も参戦!<br />http://twitter.com/tk0miyaさんががんばってます!<br />LaTeX経由・・・すみません僕の環境ではまだ成功してません。pTeXLive入れればいいの?<br />各国語対応<br />検索機能だとか。<br />GUI<br />詳しくない人に広めるなら欲しいよね?<br />
  36. 36. Sphinxで救われる方<br />仕事のドキュメントがExcelで疲れた方<br />仕事のドキュメントがWordでリファレンス作りに疲れた方<br />仕事のドキュメントがLaTeXでコンパイルエラーに疲れた方<br />仕事のドキュメントがヘビー級なCMSで、不要な二酸化炭素を排出している気がして、気になって眠れない方<br />SphinxとErlangで、<br />Happy Documentation Life!<br />
  37. 37. そういえばErlangはどうなったの?<br />
  38. 38. Project Euler<br />日本人で一時、1位に!<br />現在は2位です。ヒヨッコですが。<br />

×