Hatena::ブログ(Diary)

@vvakame の日記

2011-07-19

書評 オライリー "初めてのOpenGL ES"

| 20:09 | 書評 オライリー "初めてのOpenGL ES" - @vvakame の日記 を含むブックマーク

初めてのOpenGL ES

初めてのOpenGL ES

この本です。著者の揺下こと山下( @eaglesakura )は、僕が務めているトップゲート社の社員です。

彼は一流のゲーム開発者で、OpenGLもバリバリ使えるZE☆とか言ってたのですが、なんかいつのまにか本書いてました。

同じ会社のよしみで、一冊まきあげた献本してもらったので、読んだ感想とかを書いておこうかと思います。

感想

電車でつらつら読んだだけで、手を動かさずに読みきりました。(手を動かしてみるのは今後の課題…)

OpenGLや3Dの世界の常識が非常に分かりやすく解説されていて、短時間(トータル4時間くらい)で概要を理解することができました。

読み終わった後に、揺下と以下のようなやりとりをしてちょっと絶望したのはナイショ

わ「これさー、衝突判定とかボーンのあるモデルの動かし方とか書いてなくない?」

揺「それはOpenGLの機能じゃないよ。OpenGLはただの描画ライブラリだよ。」

わ「え、まじ…。衝突とかボーン仕込んで動かすとか、頑張って各自実装するの?」

揺「そう(´・ω・`)

わ「((((;゚Д゚))))ガクガクブルブル」

対象読者

3Dやってみたいけど、全然わかんない…。OpenGLってどうなの?いきなり噛み付いたりしない?

こわくない?((((;゚Д゚))))ガクガクブルブル

ちょっと対象外読者

ゲーム作りたい!!!!ゲームの作り方が知りたい!!!!!

→3Dの描画の仕方とか(OpenGLが出来ることに)に絞って書かれているので、ゲームを作りたいゲームを作ったことがない人が最初に買う本ではなさそう。

良くなかった点

  • Java的な用語の厳密さにちょっと ? と思う箇所があった。
  • 冒頭に書いた会話のような箇所が理解できなかった。(フォローしてないことが書いてない)
  • 佐天さん的な何かを堂々と使い過ぎだろJK

良かった点

  • "例え" が良く考えられており解りやすい
  • OpenGLに出来ることや、陥りがちな罠とその回避方法が紹介されている。
  • 無料モデリングツールであるメタセコイアなどの実用的ツールとの連携方法について書かれている

総評

3Dなにそれわかんない だけど ちょっと 興味があ・る・か・も☆ な人は買ったほうがいいよ(`・ω・´)

2009-01-18

コンパイラ入門―構文解析の原理とlex/yacc、C言語による実装 (Computer Science Library)

| 17:35 | コンパイラ入門―構文解析の原理とlex/yacc、C言語による実装 (Computer Science Library)  - @vvakame の日記 を含むブックマーク

コンパイラって面白そうですよネとか思って買った本

正直まだ咀嚼し切れてない…

最近仕事忙しすぎだヨ!会社でプログラム書かされてばっかで家で好きなプログラム書く暇がないよ!

これが2月まで続くとか欲求不満溜まりすぎて死ぬかもわからんね…


で、この本は非常に分かりやすく書かれていて読みやすかったです。

でもFirst集合、Director集合、Follow集合がイマイチわからなかったので、そのうち再チャレンジ

ノートさえ使わずにぱらぱら読んでただけでわかる方がおかしいですよねハイとかそういう

会社帰りの電車以外に読む暇がアレだったんだから仕方がなかったんだ…!(言い訳


isbn:9784764902978

↑を以前読んでいたのでさらにすんなりとコンパイラの動作の概観が掴めたような気がします。

先に読んでおくといいかも?


ていうか、字句解析と構文解析と意味解析にページのほとんどを割いていて、ラスト20Pくらいまでコンパイラのコの字も出てこなくてどうなるんだこの本…と思ってたらその20Pでさっくりとインタプリタコンパイラが実装されてて笑った。すごい!

コンパイラインタプリタも入口部分は全然変わらないというかなんというか…

ただ、深く分け入ってくると注力する点も違ってくるし、最適化の仕方も相当違ってきそうな感じがするなー、という雰囲気は読みとれた気がするです。

おすすめ本。


とりあえず、今の自分はまだ俺言語を設計できるレベルでは全くない状態。

そのうち成長するのだろうか…?

2008-12-29

生命複雑系からの計算パラダイム

| 05:01 | 生命複雑系からの計算パラダイム - @vvakame の日記 を含むブックマーク

読み終わったので書いとく

  1. アントコロニー最適化法(蟻コロニー最適化, Ant Colony Optimization, ACO)*1
  2. DNAコンピューティング
  3. 免疫システム

こんな感じで三本立て構成

アントコロニー最適化

これすごい面白い このためにこの本買いました!

蟻は個体単位で見ると、極狭い自分のまわりの状況しか認識できないが、巣から遠く離れた餌を最短経路で運搬することができる。なぜか?

  1. フェロモンを環境に残す→蟻は餌を巣に持って帰るときに、通った道にフェロモンを残す
  2. 蟻はフェロモンの多い道を好む→フェロモンの濃度が高い道を選択しやすい
  3. フェロモンは揮発する→しばらく時間が経つとフェロモンの道は薄れていく
  4. 蟻の歩行間隔はほぼ一定→通行する個体の数とフェロモンの濃度は比例する

よって、より短い道ほど時間単位で多くの蟻が餌を運搬するので、どんどんフェロモンが強化されていき、最終的には餌と巣までの最短経路(か、それに近い道)のみを蟻さんが動くようになる!とかいう話。

マルチエージェントシステムとかこういう群知能の面白い所は、例えばここでは

「蟻はフェロモンがお好き」という性質しかないのに、全体で見たときには「餌と巣までの最短距離がわかる!」という性質があること(創発*2というらしい。)

また、言葉とかみたいな「信号」に意味が載っているのとは違う、こういった蟻のような(環境+信号)コミュニケーションをstigmergyというんだって。

で、応用分野として

  1. 巡回セールスマン問題を解く
  2. 効率的なネットワークのルーティングを行う

とかがあるんだって。

工学的に、こういった創発を使ったシステムを作ろうとするのは難しいらしい。

単体の性質をコーディングしてやっても、それでどういった性質が創発されるのか?というのを予測するのが非常に大変なんだと。

まぁ言われてみればそりゃそうだよね…。

DNAコンピューティング

DNAの処理は生体内で同時に、並列的に行われている。細胞分裂が全身で1か所でしか起こってないわけはないよね。

で、この並列性に着目して色々計算させてみよう!っていう分野らしい。

読んでる時はすげーわかったようなつもりになってたけどこうしてみるとあんまりわかってないな…

有向ハミルトン経路問題(7頂点有向グラフ)をDNA上にコーディングして計算させたら7日で解けた!(1994年)とかそういう話だった。

本当はもっとわかりやすく色々な手法の紹介がされてたんです(><;)

副産物として、NP完全問題ってのが今まで何のことやら全然わかってなかったんだけど、この章を読んだらちょっとわかった。

免疫システム

簡単に言って

  1. 一次免疫応答→未知の抗原に対抗。抗原排除に利用された抗体などの免疫細胞はその後免疫学的記憶を行う記憶細胞に変化する。
  2. 二次免疫応答→一度出会ったことのある抗原に対抗。上記の記憶細胞を利用して素早く対処。
  3. 抑制機構→増えすぎた抗体の産生を抑制し、多様性を保持する。

の3種類の抗体産生のための情報処理機構があるらしい。

これを巡回セールスマン問題に適用すると、だまし問題(C-Type, O-Typeだかなんだか)に頑張った答えを返せるらしい。あとn人巡回セースルマン問題とか。

ぶっちゃけ何が優れててどういう領域に適用できるのかよくわからなかった。

この本で一番面白かった記述

DNAコンピューティングのとこで

より規模の大きい(実用的な)問題を解くためには、地球規模の質量のDNA分子を扱わなければならない、つまり、不可能である、という批判がある。

スケールでかすぎwww

まとめ

しばらくしたらまた読み返す

これもコーディングして動きを確かめてみたい所

2008-12-24

LINQテクノロジ入門〜Microsoft Visual Studio 2008による新たなクエリ構築技法〜

| 23:45 | LINQテクノロジ入門〜Microsoft Visual Studio 2008による新たなクエリ構築技法〜 - @vvakame の日記 を含むブックマーク

読み終わった

対象読者層は

  • LINQ to SQLを使いたい!
  • LINQって何?見たことも聞いたことも舐めたこともない!
  • スゴそうというオーラは知ってる
  • LINQでの考え方がわからない…

って感じかな?「LINQ」というものの全体を眺めたい!つかみたい!っていう用途向きじゃなかったでした。

以下、内容メモ

  • LINQ to SQLはSQL全般をフォローしてるような名前だけどSQLServer(T-SQL)しかサポートしてないよ
  • LINQはSQLのクエリを記述するのとは考え方が違うよ
    • 処理の順序によって、結果が変わってくるよ
    • オブジェクトやDBに対するパイプライン処理と考えるといいよ
    • だから、クエリ式より拡張メソッドでのメソッドチェーンで書いたほうが実際の流れをよりよく表すよ
  • LINQ to SQLではクエリが実際に発行されるタイミングに留意することが大切だよ

覚えておきたいところはこんな感じ

あと、「こういう書き方するとこうなるからよくない。こうがいい。」みたいなTipsがいっぱい乗ってたからLINQ to SQLについて詳しく知りたい人は買うといいと思う。

LINQ to SQLがSQLServer専用とかものすごい騙されてた感じだった

SQLServerにしたLINQ to SQLクラスの自動生成に対応していないとかそういうレベルじゃなかった

うすうす気がついてたけどね!(負け惜しみ

DbProviderFactoryとかDbConnectionとかあーゆー何でも来い層があって、その下の一人としてSQLServerがいるのだと思ってたよまったくモウ。