Cocos2dでつくるノベルゲーム

3章を写経してみた。

ProductName cocos2d for iPhoneレッスンノート
加藤寛人
ラトルズ / 2499円 ( 2011-09-22 )


  • NSClassFromStringという便利メソッドがある
  • itemFromNormalImageは廃止されていてitemWithNormalImageになっている
  • CCNodeの初期化処理のやりかた
  • CCSceneは画面表示のルートになれるが、CCLayerはなれない
  • CCSceneは「ゲームの状態」CCLayerは「シーン内の意味のあるまとまり」

次章はボリューム大きめのシューティングゲーム

型の本

ここらへんか?

ProductName Types and Programming Languages
Benjamin C. Pierce
The MIT Press / 6567円 ( 2002-02-01 )


ProductName Advanced Topics in Types and Programming Languages

The MIT Press / 5829円 ( 2004-12-23 )


「関数プログラミング入門 ―Haskellで学ぶ原理と技法―」は予約した

Haskellの入門書に型推論の話題が含まれていないのはなんでだろう?

最近やったことを振り返ってみると

型推論のための知識ばかりじゃないかと。メタな知識がないとまともなコード書けないってことか、コード書くのには必要ない余計な知識を詰め込んだのか(多分前者だと思うけど)。

Haskell の型システムは2つの重要 な特性を発揮します。ひとつめは、正しく型付けされた式はいづれも唯一の主型 (これについては下で説明します)を持つことが保証されるということです。ふた つめはこの主型は自動的に推論できるものであるということです(§4.1.3)。Cのように単 態型を用いる言語と比較すると、多相性のある言語では表現力がアップしている のがわかると思います。型推論機構は、プログラマが型の問題で頭を悩ますこと を軽減してくれます。やさしい Haskell 入門 (バージョン 98 )

結局のところ、型推論機構の知識がないとプログラマが型の問題で頭を悩ますだけで、Haskellの型推論機構の恩恵を受けられないよってことじゃないのかな?と思うのだけど、なぜ入門書にそういう話題が含まれていないのだろうと思った。

あちこち探しまわって断片をかき集めてちょっとづつ理解していくのはちょっとしんどいかも。

僕は楽しかったけど。

ProductName Basic Category Theory for Computer Scientists (Foundations of Computing)
Benjamin C. Pierce
The MIT Press / 2302円 ( 1991-08-07 )


ランク2多相とかランクN多相を理解する

これもわかってしまえば、分かりやすい概念かもしれないが。

GHCが暗黙の量化を行う手順は次のとおり。ユーザが書いた型の最上位(のみ)において、明示的なforallがないなら、またその時に限り、その型で言及されているもののスコープにない型変数を調べ上げ、それらを全称量化する。7.11.5.3. 暗黙の量化

をみると小難しい話なのかな?と思うが、具体例は分かりやすい。

f :: (a -> a) -> Int
         -- は
f :: forall a. (a -> a) -> Int
         -- のことであり
f :: (forall a. a -> a) -> Int
         -- ではない

なんというか数学の定義っぽいことをやっているが、代数的データ型だからそういうもんなんだろう。

ランクとはforallの深さ、つまり括弧のこと(層)のことを言っているわけである。

Haskellの関数従属とは「ある型が決まれば別の型が一意に決まる」という依存関係のこと

使う時にはあまり気にならないが、「| m -> s」が関数従属性を定義しているらしい。

第6回 局所的な「状態」を利用するためのStateモナド

class (Monad m) => MonadState s m | m -> s where
    get :: m s
    put :: s -> m ()

結局コレは何かというと以下のエントリが参考になる。

この「| a -> v」の部分は「aを引数に取りvを返す関数」ではなく、型同士の依存関係を関数形式で記述したものです。意味としては「aが決まればvの型が一意に定まる」ことを意味しています。型クラスにおける関数従属

具体例は関数従属の背景で丁寧に解説されているが、型推論の際の曖昧性の排除を目的としているという理解でいいのかな。

参考

cocos2d for iPhoneで神経衰弱を作ってみた

本の通りにやっただけだが、cocos2d for iPhoneのバージョンが2.1-beta2なので本書執筆時の1.0.1と多少違っていた。

  • いきなりIntroLayerってのが出来ててちょっと戸惑った。
  • [CCTouchDispatcher sharedDispatcher]が廃止されていて、[[CCDirector sharedDirector] touchDispatcher]になった
  • Clear表示のCCLayerColorが半透明になってくれない(typoかなぁ?わからん)
  • 実機転送したら表示が小さい(これに困っている)

cocos

XCodeはGitとの連携もできるので、コミットしながらすすめていけるのは楽かな。あとCocos2dは慣れれば分かりやすいかもしれない。

ProductName cocos2d for iPhoneレッスンノート
加藤寛人
ラトルズ / 2499円 ( 2011-09-22 )


シャバドゥビ タッチ ヘーンシーン!

そろそろ探し始めないといけないらしいんだが。

このベルトはどう考えてもダサいんだけど。すぐ飽きるだろ。

Wii Uのソフト買ったほうがいいんじゃないのかなぁと思うんだが、そういうわけにもいかないんだよなぁ。

Haskell外部ライブラリの型をShowクラスのインスタンスにしてデバッグを楽にする

外部ライブラリを使っていてプリントデバッグをしたい時に、型がShowクラスのインスタンスになってないと印字されないので困る。

そういう時には、StandaloneDeriving拡張を使って外付けでderiving instance Showすればいい。

が、全てにderiving instance Showするようなデバッグ用オプションがあってもいいような気もするが。

コードの未来

タイトルだけからは何について語っているのか分からなかったので避けてましたが、読んでみるととても面白かった。

近未来の技術がどういう方向に動いていって、それにともなって言語はどうなっていくのかとかそういう話です。

しかし、現在のスレッドやRPCのような分散や並列を明示的に意識するような形では早晩限界が来ると思います。

と思っているので僕の場合はHaskellですね。

特に言語の話が面白かったが、SQLの話が個人的に一番おもしろかった。

  • NoSQLデータベースが優れていると言われているのは、性能と柔軟性のためである
  • SQLよりもNoSQLのほうが正のが良いというのは必ずしも事実ではない
  • 性能問題とSQLやACID特性には関係がない

ProductName まつもとゆきひろ コードの未来
まつもと ゆきひろ
日経BP社 / 2940円 ( 2012-05-17 )


  • プログラミングとは、アプリケーションのためのDSLデザインの過程である
  • DSLデザインの構成要素(コンテキスト、センテンス、ユニット、ボキャ、ヒエラルキ)

「独立・起業」の基本と常識

今の職場はもう少し役職が上がると健康的にもOJT的にも100%詰むのがわかっているので、(異動、転職、独立含めて)選択肢を増やし始めている。

まぁ、今の仕事自体は120%自分の裁量に任せられているし面白いんだけど、上司が自分の仕事を理解できないので成果面談でイラッとするのと、健全な批判が受けられないので独善的になりがちなのがデメリットだ。そこは他社のヒトと積極的にディスカッションすればいいのかなと思っているので社外発表はそれなりにこなしているのだけど、それだったら今の仕事の延長として会社に属しているメリットがまったくないよなぁってのもある。

創薬研究も停滞感が漂っていて、いまの研究所のスタイルがサスティナブルかどうかも疑問に思うところが多いので、他のことも検討しなきゃなーと思いながら色々手を出したり出さなかったりしているのだけどねー。Drug Discovery Todayなんかもオープンイノベーションだとか分業だとか分社化だとか仕組みの組み換え論が結構出てるけど、製薬会社が創薬研究に必要なミニマムは、臨床やる部門とリードを臨床まで持っていく技術を駆使するフェーズだけであってそれより上流はベンチャーでもアカデミアでもやれることだからねー。

まぁ、だらだらと進めていこうかなという。

ProductName これだけは知っておきたい「独立・起業」の基本と常識
高橋敏則
フォレスト出版 / 1365円 ( 2012-09-08 )


  • 保険関係は退職日から2週間以内にすべて済ませる
  • 日本政策金融公庫の融資制度
  • 印鑑の種類
  • すべての事業者が必ず作成するのは税金に閑する届出書類
  • 家族従業員に給与を払うときに出す届出