Erlang and I and Sphinx.

2,108 views
1,927 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,108
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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 />

×