今月の Software Design : 2013/04 (その3)

 「今月の Software Design 」の4月号の投稿の3回です。

 遂にやってしまいました。 SD 5月号が発売されたのに4月号の全ての記事について要約を書ききれませんでした。

 最初に課した約束 に則り、罰として来月号(6月号)を余計に買おうと思います。が、5冊余計に買って数ヶ月後に捨てるのはエコじゃないので、希望者に買ってあげるという形式に使用と思います。来月号の SD を買って欲しい人は Amazon の欲しいものリストに来月号の SD を入れて僕に連絡をくれれば、購入して進呈します(先着5人まで)。

 それと、先月の記事の要約についても、今月号が間に合う範囲で書いてゆきます。

 形式はいつもと同じ、以下のフォーマットになります。

 

・記事のタイトル
( 1 行目 ) 記事の要約
( 2 行目以降 ) 感想

 

○ 第二特集

 Small Object Programming (S-OP) と筆者が呼んでいるオブジェクト指向のプログラミングスタイルについて小説風に解説しています。記事では、実装をコンパクトにするためのコーディングに関する9つのルールについてと、ショッピングサイトを例にしたオブジェクトのモデリングについて分析し、最後に S-OP に関する書籍をいくつか紹介しています。

 

○  特別企画① :ゲームエンジン Luminous Studio が変えるゲーム開発の舞台裏

 スクウェア・エニックスが開発しているゲームエンジンの音声や画像といった素材ファイル(ここでは「アセット」と呼んでいるモノ)の管理を行うコンポーネントの ContentServer について紹介しています。記事では、ContentServer の分散アーキテクチャについてと、障害対策と自立性について解説しています。

 正直読んでいてあまり面白くない内容です。どんな凄いモノかもわかりませんが、個人的にもエンジニアとしても、こんな availavle でも無いモノを紹介されても興味が湧きません。そういった意味で、こんなモノよりも Unity の記事の方が読みたいです。こういうふうに書くと「じゃあお前、Google ファイルシステムにも興味が無いんだな!?」というツッコミを頂戴するかもしれません。なので少し補足をすると HDFS みたいなモノが登場しない限り興味がありません。

 

○ 特別企画② :ゲーム開発の舞台裏座談会

 ContentServer の開発を行った Skeed 社の金子さんと柳沢さん、そしてスクウェア・エニックスの開発者との座談会の記事です。Skeed 社がどういった経緯でジョインしたかや、開発エピソード、P2P システムの所感等について話し合いについて書いています。

 どこかで見た人がいると思ったら Winny の金子さんでした。ContentServer には金子さんが携わっていたんですね、ちょっと興味が湧きました。

 

○ ハイパーバイザの作り方

 前回その概要を紹介してくれた BHyVe について、今回はゲスト OS の起動処理のユーザプログラム側の処理について解説しています。具体的には VM イメージを読み込んでロードするユーザプログラムの一連の処理について、ソースコードを見ながら解説しています。

 

○ 開眼シェルスクリプト

 前回に引き続き ImageMagick を使ってシェルスクリプトから画像処理をする話です。今回は awk で画像に対していくつかのフィルタ処理を行う方法を紹介しています。記事の前半では awk の使い方について解説し、前半部分の最後で ImageMagick を使って画像を awk の配列に流しこむ処理を紹介しています。後半部分では、awk 配列に対して、光線が出ているように見えるフィルタ処理や、エンボス加工と呼ばれる着色部分が彫り込んでいるように見えるフィルタ処理、そして sobel フィルタ処理を行なっています。

 面白いです。awk がコレほどパワフルだということを(恥ずかしながら)初めて知りました。これまで awk 自体で凝ったロジックを記述するという事はほとんど無く、凝った処理をする場合には print で一旦パイプに吐き出して、シェルスクリプトに渡すといったことをしてきました。

 また ppm 形式に変換したデータを awk 配列に流し込む辺りの処理は胸熱です。