0530
お昼から仕事。CoreDataのマイグレイションがうまく動いていないかもしれないので調べていたら、そもそもぜんぜん正しく設定できていないことがわかりました。どういうことかというと、「あるエンティティだけマッピングを指定して、それ以外は軽量マイグレイション」みたいなことがしたかったのでエンティティ一つだけのマッピングを作っていたのですが、それだと指定しなかったエンティティは全部棄てられてしまうのでした。えーなにそれ。仕方ないので全部のマッピングを作ると今度は関係ないエンティティまで一件一件写像されるのですごく遅いし、つらいです。一日調べていたのですが、部分的に軽量マイグレイションを行う方法はないようでした(あるいは自前でマイグレイションを管理すればinferredMappingModelに手を入れることで同じことを実現できるかもしれませんが、ちょっとぞっとしません)。最終的には、マイグレイションで複雑な値の変換をするのはよして(つまり軽量マイグレイションに全部任せて)、あとから必要になった時に値を変換するようにしました。ふう。
あと、自動マイグレイションって複数のマッピングを同時に順番に適用することはできないのですね(そうらしいです)。たしかに、モデルのバージョンは名前をつけられるだけで順序は特に指定していませんでしたから、どの順でマッピングを適用するのが正しいのかわからなくなってしまうのかも。この問題、とりあえず今回は問題にならなさそうだけど(ほとんど軽量マイグレイションだから)、覚えておかないと詰みそうです。はあ。
あとGoogle Spreadsheet講習がありました。僕は普段それほど使う機会はないのだけど。そういえば、僕がプログラミングを始めたきっかけはExcelの関数機能で遊んでいたことだったなーとか思いました。ユーザー定義関数を使いたいと思うとだんだんVBAとかの話になって、そこからVBerになったのでした。もう十五年くらい前の話ですけど。
Excelって、(いまはどうか知りませんが、)普段はただの表計算ソフトの顔をしているのに一歩踏み込むとそれなりにちゃんとしたIDEがついてるの、welcome to undergroundって感じでいいですね。多くの人が知りもしない裏の顔っぽいところが。
さて週末です。お酒を飲んで本を読みます。あとlogtもまた手をつけなくては。そういえばsocket.ioが1.0になったそうですけど、まあ別にわざわざ更新することもないでしょう、かね。