先日はお疲れ様。

自分にとって本当にコワイ奴は下から来るんだ

もうね、上だけを見てレンダラの巨塔を登り詰める、じゃダメなのですよ。

どんどん下から登ってくるヤツらが、自分をすっ飛ばして上に挑戦しているわけです。 私の存在?もちそんなの認識されてないよ。皆私をスルー。

同感ですね。CG研究を取り巻く環境は日に日に良くなっていく。

しかし、僕が18歳だったころには、面白い問題はあらかた先輩方に解かれて しまった後だと、己が生まれてきたのが遅すぎた事を恨んだものでした。 問題を解決することよりも難しいのは、面白い問題を見つけること。

結局のところ、今僕がこうしてCGとは関係ないことをやっているのは、 CGの分野で、自分が一生かかっても解決できるかどうかという問題に 出会ったからですね。その問題が解かれるところが見られるのであれば、 それを解くのは自分でなくてもかまわないのかもしれない。

posted by Png genki on Mon 11 Feb 2008 at 05:34

プログラムの変更のせいか、最近lighttpd+fastcgiの構成で不安定に なってきた感じがしたので、Thin+Swiftply構成の情報を探してみることに。

しかし、検索してみたけれど、先日書いた自分のエントリとブックマークばかりHitする。どうやら未開の地に迷い込んだようだ。

…と思ったが、よく調べてみたら Swiftplyじゃなくて Swiftiplyが正しいようだ。良かった。

posted by Png genki on Mon 11 Feb 2008 at 00:55

ちょっとした試みに、GTalkを使って、技術情報を交換するための オープンなグループチャットを作ってみました。

lightningtalk@gamil.com

上記IDをGTalkやPandionなど、お使いのJabberクライアントの Contactに追加し、最初に一度発言をする事で自動的に登録されます。

ログをGmailに転送する設定をしておけば、 後でGmailを使って検索することもできます。 参加を解除する場合は、Contactリストから削除すればOKです。

こちらのTwitterアカウントから、Chatの内容を確認することもできます。

http://twitter.com/lightningtalk

お気軽にお試しいただければ幸いです。

posted by Png genki on Sun 10 Feb 2008 at 00:06

珍しくCGネタです。

2/8に東大で行われたPaul Debevec氏の 講演会 に参加しました。

New Techniques for Acquiring, Rendering, and Displaying Human Performances

Paul Debevec氏はIBLやHDRIの人として高名な方です。

もっと英語を学ばなければな。いくつか質問したいことがあったけれど、 なんと言ったら良いのかわからなかった。Ummm

聞きたかったことは、Sphere probeをActorを追いかけるように 動かして、全天周画像をキャプチャすれば、Light Stageのような 固定的な設備を用いなくてもdiffuse項の計算ができるのではないか という事。

また、specular項に関しても、動いているシーンであれば、 時間軸に沿って変化するLight Fieldに対して、変動しない成分を 抽出することで、ある程度は計算可能なのではないかな。

Light Stageを使ったほうが高精度に求められるけど、 建設にお金がかかりそうだから、安上がりにそこそこの Relightingをしたいぐらいなら良い気がする。

まあでも精密なNormal Mapを採集できるって事のメリットのほうが 大きいのかな。

posted by Png genki on Sat 9 Feb 2008 at 19:09

と言いつつ、自分ではMongrel使ってない(主にlighttpd)のですが、 RailsChatでshachiさん、くまくまーのmaihaさん、笹田さん、のりおさんと話してた時に出てきた、最近のWebサーバのメモ。

あとで試す。

話は変わりますが、上述のプログラムの大半の実装はCで書かれていて、 インターフェイスの部分だけRubyで実装されている感じのものが 多いですね。これこそがRubyの真骨頂だと思う。

いろんな言語を使ってきたけれど、 最近はCとRubyの組み合わせが良い感じです。 C言語用の高性能プリプロセッサ兼UI記述スクリプト だと思えばRubyの遅さ気にならない。 CとRubyの相性の良さはとても素晴らしい。 Rubyの拡張をCで書くまでは、Rubyの楽しさの半分しか 見えてなかったと思う。

C++(template)とHLSLというのも中々面白い組み合わせだった。

柔の言語と剛の言語を組み合わせて使うのが生産性を高めるのに 良いのではないかと思う。

posted by Png genki on Tue 5 Feb 2008 at 22:27

以前紹介したRakがバージョンアップしたようです。

Rak

Rak is a grep replacement in pure Ruby. It accepts Ruby syntax regular expressions and automatically recurses directories, skipping .svn/, .cvs/, pkg/ and more things you don't care about. It is based on the Perl tool ack by Andy Lester.

Patchを送った問題も修正されているようです。変更点は以下のとおり。

0.9 / 2008-02-03

  • Added .rake to ruby files
  • Colouring works on Win32 if win32console gem is installed.
  • Checks that file is readable by the current user.
  • Ignores socket files.
  • Added .erb and .haml to Ruby filetypes.
  • Added search at end-of/start-of line options
  • Fixed searching up the directory tree when passed '.'
posted by Png genki on Mon 4 Feb 2008 at 11:50

早速、RubyでGoogleの SocialGraph API を利用するためのライブラリが リリースされたようです。

Ruby gem for Google SocialGraph released

We’ve cooked up a Ruby library to talk to the SocialGraph API, and get really interesting info out of it. This is the sort of thing that’s always more useful if more people have access to it, so even better, we’ve licensed it under the LGPL, so you can get all that Google goodness without having to do anything tedious to get it.

新しい技術を利用するライブラリがすぐに出てくるのは嬉しいですね。

posted by Png genki on Mon 4 Feb 2008 at 01:33

原因については調査し切れていないのですが、何らかの理由で RubyGemsをインストールしたときに、Gemのバージョン番号の末尾に 本来あるはずの無い「-」がついた状態でインストールされてしまう 事があるようです。

この問題が発生すると、「-」が付加されたバージョンのGemの存在が 正しく認識されず、ひとつ古いバージョンが中途半端にactivateされて しまい、全体としてアプリケーションが正常に動作しなくなる 事があるようです。

一旦問題の発生しているGemを削除してから、再度インストールを 行うことで問題は解決しますが、gem uninstallコマンドでは 正常にアンインストールが行われない場合もあるようです。 その場合は、RubyGemsがインストールされているディレクトリ (/usr/local/lib/ruby/gems/1.8/gems/など)から手作業で 該当するファイル群を削除する必要があるかもしれません。

posted by Png genki on Mon 4 Feb 2008 at 01:25
3rd Sun

雪景色

珍しく雪が積もっている。

snow_2008_2_3

posted by Png genki on Sun 3 Feb 2008 at 13:57

Railsのテストフレームワークには、Mockを利用する仕組みがあります。 しかし、通常の方法でMockクラスを作成すると、オリジナルのクラスを 完全に置き換えてしまうため、すべての実装をテスト用に 書き直さなければならなくなってしまいます。

そこで、テスト用に改変したい場所だけMockで上書きし、その他の 動作はオリジナルに委譲する方法を紹介します。

   1  require_dependency 'models/foo'
   2  
   3  class Foo
   4    def bar
   5      puts 'baz'
   6    end
   7  end

上記のように、require_dependencyを使ってapp ディレクトリ以下のファイルを参照することで、Fooクラスのbar メソッドの挙動だけを置き換えることができるようになります。

posted by Png genki on Fri 1 Feb 2008 at 12:16