2009/11/26

今までにやったプロジェクト一覧

*この記事は随時更新していきます。トップメニューの"PROJECTS"からも参照することができます。*

この記事では今まで立ち上げてきたプロジェクトやソフトウェアの一覧をまとめてみます。

(08/02/13) After Effectsのエクスプレッションでパーティクルを表現するシリーズ

particle03SS
  1. After Effectsのエクスプレッションでパーティクルを表現する-01
  2. After Effectsのエクスプレッションでパーティクルを表現する-02
  3. After Effectsのエクスプレッションでパーティクルを表現する-03
After Effectsを弄ってたころの話。AEのパーティクルは貧弱!貧弱ぅ!でもParticularは高価!買えるかアホ!みたいな反動から作った記事。実はAEは今でも普通に使うので、もしかしたら書くかもしれません。

(08/08/30) Processing(Proce55ing)と流体力学


流体力学とProce55ingを組み合わせてみた記事。地味にお気に入り。今度やるんだったら粒子法とか取り入れて煙の挙動などをシミュレートさせてみたいです。

(08/09/20) エッシャーっぽい絵を生成する「エッシャーくん」を作ってみた。



一番人気が出たときの記事。やっぱり理系はエッシャーとか好きなんでしょうか。

(08/12/08) Picasaのウェブアルバムに写真を自動的に載せるpythonスクリプトを組んでみた。


イライラしたので作った。後悔はしていないです。

(09/03/20) MeCabを用いてスパムフィルタを作ってみよう


文字通りスパムフィルタを作ってみた記事。確かここらへんはベイズ理論の勉強にハマってて、その反動で作ってみた記事だったような気がします。

(09/07/15) Pythonistaのための2chライブラリ"twopy"


Pythonから2chを操作したくて作った簡易ライブラリ。何を作りたかったかっていうと…それはごにょごにょ

(09/10/04) 住所一覧からマックと吉野家の光の地図を作ってみたシリーズ

  1. 住所一覧からマックと吉野家の光の地図を作ってみた
  2. (追記)郵便局で作る日本全国の光の地図
Wiredの記事から触発されて作ってみた記事。こーゆうグラフって結構実用的な気がします。視覚的にわかりやすい。

(09/11/14) OMakeのマニュアルを日本語訳してみた


OMakeはとても便利なのにちゃんと使おうとすると英文読まなくちゃいけなくて、フラストレーションがたまって勢いで翻訳したプロジェクト。分量の多さにやって後悔。現在も鋭意制作中。

OMakeマニュアル 第9章翻訳完了.

OMakeマニュアル日本語訳の翻訳が第9章まで完了しました。

しかし長い。27000文字書いてようやっと1章終わるとか。でも一応早めに終わらせたいのでもう少しがんばります。

2009/11/19

サイトデザインを更新しました。


前のサイトデザインだとありきたりなんで他のサイトと被ってたりとか、横幅がちっちゃかったから思いっきりスクロールしなきゃなんなかったりで結構気になってたんです。ソースコードもあんまり載せられないですし。

というわけでサイトのデザインを更新しました。たぶんこっちのほうがいろいろと見やすいと思います。なんせ横幅がでかいですし。前のなんか2-30文字かいて改行レベルでしたから…

どうでもいいですけど、さあテンプレートを変えようということでBlogger Templatesっていうところに行ってみたんですが、皆なかなかクオリティ高くてビックリです。流石米国で流行っているBlogger。日本のごにょごにょなサイトとエラい違いです。

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用のドキュメントが欲しい方などはここから各自ビルドしてください。

心がけたこと

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