ラベル OMake の投稿を表示しています。 すべての投稿を表示
ラベル OMake の投稿を表示しています。 すべての投稿を表示

2011/02/16

OMakeのContributionsに載ったった


やったね!

余談
翻訳をすることは勉強にもなって非常にいいですし皆さんにもぜひやって欲しいのですが、
その分、なんというか、日本の中へと篭ってしまうことにも繋がっている気がします。

英語に臆することなく積極的にアウトプットできるよう、自分自身の心構えをもう少しきちんとしなければならんですね。

2010/10/27

OMakeマニュアル 日本語訳 PDFバージョンをリリースしました

"Aint they cute?" by Nicki Varkevisser

題名の通りで、以前から取り組んでおりました『OMakeマニュアル 日本語訳』の全ページを一つに纏めたPDFバージョンをリリースしました。

http://omake-japanese.sourceforge.jp/OMake.pdf

よりダウンロードできます。電子書籍でまとめてご覧になりたい方や、職場などの環境で使いたいけれどネットが使えないのでごりごり印刷したい…といった場合に便利です。

元々は渋川さんの『LaTeX経由でのPDF作成』という記事を拝見しまして、試験的にPDF版を作成してみたところ、思いのほか綺麗に製本されていることからきちんとリリースしてみようと思い立った次第です。殆ど素の状態から手を加えていないので暫定的ですが、後はきちんとスタイルを組んでいって、もうちょっと読みやすいレイアウトにしていけばいいかなって感じです。

思えば個人的な暇潰しから始まったこのプロジェクトも現在はPDFにして約200ページにもなり、きちんと一つの事柄に集中して取り組めたことは、学部時代のいい経験になったと考えています。まあ、これからも暇があればちょくちょくレイアウト、文章含めて修正していきますので、どうぞ今後ともよろしくお願いします。

2010/03/31

OMakeマニュアル日本語訳 付録A翻訳完了しました

お久しぶりです。

余った時間を使って、OMakeマニュアル日本語訳の付録Aを翻訳しました。OMakeを利用するみなさま方のお役に立てれば幸いです。付録といえども、コマンドラインオプションはOMakeにおいて重要な位置を占めているので(特に -P オプション)、訳しておきたかった箇所ではあります。

ここまでいったからには付録Bも訳してみようかなとも思うのですが、いかんせん付録Bは冗長というか、本質的な文章ではないような気が…正直なところあまり気が進まないので、やるかどうかは未定です。すみません。

おまけ
ブログに書きたいことはそれはもういろいろあって、常日頃から書こう、書こうと思っているのですが、どうも書くことが習慣になっていないせいか思考がまとまらず、宙ぶらりんのままえいやーと放棄してしまうことがこれまでに多々ありました。

このままではいけない、自分のためにならないと思い、この一ヶ月間悶々と過ごしてきましたので、えい!明日から今までため込んできたネタをどどっと更新することにします。まとまっていようがいなかろうが知ったことか。有言実行だ。自分のブログなんだから、とにかく好きなことを好きなように書くまでだ。へっ、へっ、へっ!

2009/11/17

OMakeでSphinxを自動継続ビルドしてみよう

題名通りです。Sphinxっていうドキュメント作成ツールがあって、これがなかなか簡単に作れる、かつ様々なフォーマットの書き出しに対応してるのですごく使いやすい。

Sphinxについて詳しく知りたい方は以下のURLを参照すればいいような気がします。

Pythonって何?という人のためのSphinxインストール入門

しかしSphinxには自動でプロジェクトのMakefileが生成されるので簡単にビルドできるようになっているんですけど、それでもhtmlファイルをrstファイルが変更される度に自動ビルドしてくれたらもっと便利になるのにとか思うのが人の常。

というわけで、前回の記事と絡めて、OMakeでSphinxを自動継続ビルドしてみようというのが今回の記事の目的です。

まずはOMakeのインストールから

まず、OMakeっていうのはGNU/BSDのmakeもどきみたいなソフトです。でも「もどき」っていうのは失礼で、従来のmakeとは比べ物にならないほど多くの機能を備えているソフトです。今回使う自動継続ビルドもOMakeの機能の一つです。

OMakeは標準では入っていないため、面倒くさいかもしれませんがOMakeをインストールする必要があります。とはいっても大抵のリポジトリに入っているので、

sudo apt-get install omake

の一行で完了します。Macは持っていないので分からないですが、恐らくportで十分いけるような気がします。

SphinxをOMakeに対応させる

次にSphinxのプロジェクトをOMakeに対応させます。まずプロジェクトの構成は以下のようなものとします。
  • Sphinxのビルドコマンドは"sphinx-build"
  • ビルドディレクトリは"_build"
  • A4用紙を使用する
  • ソースファイルはプロジェクトのルートディレクトリ
別にこれと全く同じじゃなくても勝手に変えればいい話なんですが…

それではOMakeのファイルをインストールしてみます。プロジェクトのルートディレクトリに移動してから、

omake --install

でインストール完了です。OMakerootとOMakefileという2つのファイルができたはずです。

ここでのOMakerootは別にいじらなくていいので無視します。それではOMakefileを改造してみます。

まず開くと変なコードが羅列してありますが、すべて削除。Makefileを開くと
# You can set these variables from the command line.
SPHINXOPTS    =
SPHINXBUILD   = sphinx-build
PAPER         =
BUILDDIR      = _build

# Internal variables.
PAPEROPT_a4     = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
とかいうhtmlを生成するコマンドがずらっと並んでいるので、その流儀に従ってOMakefileに以下を記述。
# OMakefile for Sphinx documentation
#

# You can set these variables from the command line.
SPHINXOPTS    =
SPHINXBUILD   = sphinx-build
PAPER         =
BUILDDIR      = _build

# Internal variables.
PAPEROPT_a4     = -D latex_paper_size=a4
ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_a4) $(SPHINXOPTS) .

SRCS = $(glob *.rst)

.DEFAULT: $(SRCS)
    $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html

ここで.DEFAULTの依存先にglob関数を用いてすべてのカレントディレクトリ以下のrstファイルを指定してるのがミソ。これで.DEFAULTターゲットの依存先はすべてのrstファイルになったので、このうちのどれかが変更されたら自動的にビルドが開始されるみたいな。

途中の変数を変更したのは、OMakeではその書き方が禁止されているためです。まーそりゃあそうかもしれません(makeの流儀なのかもしれないけど、自分は最初見たときキモいなーって思った)。

これだけでもうすべての手順は終わり。あとはルートディレクトリから継続監視ビルドの-Pオプションをつけて、

omake -P --verbose

を実行すればomakeが立ち上がり

$ omake -P --verbose
*** omake: reading OMakefiles
*** omake: finished reading OMakefiles (0.01 sec)
- build . <.DEFAULT>
+ sphinx-build -b html -d _build/doctrees -D latex_paper_size=a4 . _build/html
Running Sphinx v0.6.3
loading translations [ja]... done
loading pickled environment... done
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
- exit . <.DEFAULT>, 0.56 sec, code 0
*** omake: done (0.57 sec, 0/0 scans, 1/1 rules, 0/74 digests)
*** omake: polling for filesystem changes

と監視してくれるのが分かります。あとはてきとーにrstファイルを変更すれば、自動的にOMakeが変更されたことを感知して勝手にビルドしてくれます。いちいち変更する度にmake htmlなどと打たなくてとっても便利。まさに悦楽の境地。

というように、OMakeはこっちが楽できるような仕掛けを大量に用意してくれています。なにかと便利なので覚えると楽かもしれないです。

ついでに

今思うと「継続監視」っていう機能は別にビルド用途だけじゃなく、他のことにも使えるかもしれないです。例えばhtmlファイルを変更したり追加したら差分だけ勝手にアップロードしてくれるとか、グループ作業で他の人の沢山の画像ファイルを別フォルダで縮小しなきゃなんない(しかもそれが頻繁に変更される)場合とか。

グループ作業にありがちな「どれが変更されてどれが変更されてないのかごっちゃになってわかんねーよ!誰かリスト作ってくれリスト」みたいなのにも威力を発揮しそうな気がします(ていうか今がまさにそんな感じ)。

2009/11/14

OMakeのマニュアルを日本語訳してみた


はじめに

OMakeは従来のGNU/BSDのmakeに取って代わる、新しいビルドシステムです。自動的に依存関係を解析してビルドしてくれたり、変更点を監視して自動的にビルドを実行できたりするなど、一回知ったら従来のmakeを使いたくなくなるくらい強力なシステムを持っています(すんごいコード量が少なくなる)。
OMakeについての大雑把な説明は以下の記事を読むとわかりやすいと思います。
少なくとも、卒論とか研究とかでOCaml/C/C++/LaTeXを積極的にビルドする人にとっては、大分恩恵を受けるんじゃないでしょうか。

ですが、さあOMakeを使用してプロジェクトを作ろうとすると、どうしても日本語の文献というものがほとんどない。GNU/BSDのmakeは結構あるんですけど。
いや、オフィシャルに詳しい英語の説明が載ってるじゃん」って人もいるとは思います。そりゃあそうなんですけど、英語できるだけ読みたくないって人も(自分含めて)少なからずいるわけで、日本語の文献を充実させることは、少なくともマイナスにはならないはずです。

といったポリシーの元に、OMakeのマニュアルを日本語訳してみました。現在15章あるうちの8章まで翻訳してありますが、残りは殆どリファレンス的な存在なのでとりあえず以下のURLに公開してみます。

『OMake マニュアル 日本語訳』
http://omake-japanese.sourceforge.jp/

もちろん、残りの章も翻訳する予定です。たぶん翻訳の不備とかいろいろあると思うので、なにかありましたらメールなどで連絡おねがいします。

とりあえず翻訳してみて、OMakeはユーザーが望んでいる機能は大抵実現されているというか、これは現場で大分助かるんじゃないかなとか、そういう痒いところに手が届く孫の手みたいな言語なので、みんなとりあえず使ってみるといいとおもいます。べんりべんり。

あ、最近Goっていう新しい言語が注目されていますが、これを使えばGoでも継続監視ビルドを行えますし、誰かGo用のOMakefileを書くかもしれませんね。

各章の印象

ざっと翻訳した感じですと、2章3章はOMakeについてのガイダンスになっています。4から8章はOMakeの言語や仕様についてより詳しく書いてあります。9章以降は各関数や変数についてのリファレンスです。
とりあえずどんな感じなのか使ってみたいという方は2章、やる気があれば3章を読めばいいような気がします。OMakeについてより詳しく調べたい方は4章以降、といった感じでしょうか。

ソースファイル

ソースというほどではないのですが、翻訳に用いたSphinx(参考: 1日〜1週間でOSSに貢献する方法)用のドキュメントソースをSourceForge.JPのgitリポジトリにアップロードしました。

git clone git://git.sourceforge.jp/gitroot/omake-japanese/omake_trans.git

で参照できます。LaTeX用のドキュメントが欲しい方などはここから各自ビルドしてください。

心がけたこと

  • 逐語訳を避けて、できるだけわかりやすい表現に置き換えました。
  • かといって文が持つ本来の意味をなるべく崩さないようにも注意しました。
  • 用語の表現を統一しました。
  • あっちのマニュアルでは索引がなかったので、ついでに索引をつけました。
そんくらいでしょうか。とにかく今日は疲れました。なんせ量が半端無く多いー!!