14102012 iPhone
3章を写経してみた。
- NSClassFromStringという便利メソッドがある
- itemFromNormalImageは廃止されていてitemWithNormalImageになっている
- CCNodeの初期化処理のやりかた
- CCSceneは画面表示のルートになれるが、CCLayerはなれない
- CCSceneは「ゲームの状態」CCLayerは「シーン内の意味のあるまとまり」
次章はボリューム大きめのシューティングゲーム
14102012 iPhone
3章を写経してみた。
次章はボリューム大きめのシューティングゲーム
13102012 Haskell
最近やったことを振り返ってみると
型推論のための知識ばかりじゃないかと。メタな知識がないとまともなコード書けないってことか、コード書くのには必要ない余計な知識を詰め込んだのか(多分前者だと思うけど)。
Haskell の型システムは2つの重要 な特性を発揮します。ひとつめは、正しく型付けされた式はいづれも唯一の主型 (これについては下で説明します)を持つことが保証されるということです。ふた つめはこの主型は自動的に推論できるものであるということです(§4.1.3)。Cのように単 態型を用いる言語と比較すると、多相性のある言語では表現力がアップしている のがわかると思います。型推論機構は、プログラマが型の問題で頭を悩ますこと を軽減してくれます。やさしい Haskell 入門 (バージョン 98 )
結局のところ、型推論機構の知識がないとプログラマが型の問題で頭を悩ますだけで、Haskellの型推論機構の恩恵を受けられないよってことじゃないのかな?と思うのだけど、なぜ入門書にそういう話題が含まれていないのだろうと思った。
あちこち探しまわって断片をかき集めてちょっとづつ理解していくのはちょっとしんどいかも。
僕は楽しかったけど。
Basic Category Theory for Computer Scientists (Foundations of Computing)12102012 Haskell
これもわかってしまえば、分かりやすい概念かもしれないが。
GHCが暗黙の量化を行う手順は次のとおり。ユーザが書いた型の最上位(のみ)において、明示的なforallがないなら、またその時に限り、その型で言及されているもののスコープにない型変数を調べ上げ、それらを全称量化する。7.11.5.3. 暗黙の量化
をみると小難しい話なのかな?と思うが、具体例は分かりやすい。
f :: (a -> a) -> Int -- は f :: forall a. (a -> a) -> Int -- のことであり f :: (forall a. a -> a) -> Int -- ではない
なんというか数学の定義っぽいことをやっているが、代数的データ型だからそういうもんなんだろう。
ランクとはforallの深さ、つまり括弧のこと(層)のことを言っているわけである。
12102012 Haskell
使う時にはあまり気にならないが、「| m -> s」が関数従属性を定義しているらしい。
class (Monad m) => MonadState s m | m -> s where get :: m s put :: s -> m ()
結局コレは何かというと以下のエントリが参考になる。
この「| a -> v」の部分は「aを引数に取りvを返す関数」ではなく、型同士の依存関係を関数形式で記述したものです。意味としては「aが決まればvの型が一意に定まる」ことを意味しています。型クラスにおける関数従属
具体例は関数従属の背景で丁寧に解説されているが、型推論の際の曖昧性の排除を目的としているという理解でいいのかな。
11102012 iPhone
本の通りにやっただけだが、cocos2d for iPhoneのバージョンが2.1-beta2なので本書執筆時の1.0.1と多少違っていた。

XCodeはGitとの連携もできるので、コミットしながらすすめていけるのは楽かな。あとCocos2dは慣れれば分かりやすいかもしれない。
11102012 life
そろそろ探し始めないといけないらしいんだが。
このベルトはどう考えてもダサいんだけど。すぐ飽きるだろ。
Wii Uのソフト買ったほうがいいんじゃないのかなぁと思うんだが、そういうわけにもいかないんだよなぁ。
11102012 Haskell
外部ライブラリを使っていてプリントデバッグをしたい時に、型がShowクラスのインスタンスになってないと印字されないので困る。
そういう時には、StandaloneDeriving拡張を使って外付けでderiving instance Showすればいい。
が、全てにderiving instance Showするようなデバッグ用オプションがあってもいいような気もするが。
10102012 life
タイトルだけからは何について語っているのか分からなかったので避けてましたが、読んでみるととても面白かった。
近未来の技術がどういう方向に動いていって、それにともなって言語はどうなっていくのかとかそういう話です。
しかし、現在のスレッドやRPCのような分散や並列を明示的に意識するような形では早晩限界が来ると思います。
と思っているので僕の場合はHaskellですね。
特に言語の話が面白かったが、SQLの話が個人的に一番おもしろかった。
09102012 life
今の職場はもう少し役職が上がると健康的にもOJT的にも100%詰むのがわかっているので、(異動、転職、独立含めて)選択肢を増やし始めている。
まぁ、今の仕事自体は120%自分の裁量に任せられているし面白いんだけど、上司が自分の仕事を理解できないので成果面談でイラッとするのと、健全な批判が受けられないので独善的になりがちなのがデメリットだ。そこは他社のヒトと積極的にディスカッションすればいいのかなと思っているので社外発表はそれなりにこなしているのだけど、それだったら今の仕事の延長として会社に属しているメリットがまったくないよなぁってのもある。
創薬研究も停滞感が漂っていて、いまの研究所のスタイルがサスティナブルかどうかも疑問に思うところが多いので、他のことも検討しなきゃなーと思いながら色々手を出したり出さなかったりしているのだけどねー。Drug Discovery Todayなんかもオープンイノベーションだとか分業だとか分社化だとか仕組みの組み換え論が結構出てるけど、製薬会社が創薬研究に必要なミニマムは、臨床やる部門とリードを臨床まで持っていく技術を駆使するフェーズだけであってそれより上流はベンチャーでもアカデミアでもやれることだからねー。
まぁ、だらだらと進めていこうかなという。