Modelと対応するエンティティ名の設定
app-engine-patchだとModelクラスに対応するGoogle App Engine側のエンティティは、"package_model"のDjango風な命名規則で作成されるらしい。
普通のDjangoでは、モデルのMetaオプションのdb_tableでテーブル名つけれるとドキュメントに書いてあったけど、app-engine-patchではその方法は動かなかった。
でも↓これでエンティティ名を指定できたのでまあいいか。
class MyModel(db.Model): @classmethod def kind(cls): return "MyModel"
自作ウィンドシンセはじめました
今日のNT名古屋2(第2回ニコニコ技術部東海勉強会)に持って行ったやつです。相手してくださった皆さんありがとうございました。
また明日から、タッチパネルを活用した奏法への対応、形状の見直し、リップセンサの追加とか色々やっていく予定です。
Cocoa本
Cocoa Design Patterns (Developer's Library)
- 作者: Erik M. Yacktman, Donald A. Buck
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2009/09/01
- メディア: ペーパーバック
- 購入: 1人 クリック: 6回
- この商品を含むブログ (3件) を見る
なんか新しいの出てる。
“Next time some kid shows up at my door asking for a code review, this is the book that I am going to throw at him.”
–Aaron Hillegass, founder of Big Nerd Ranch, Inc., and author of Cocoa Programming for Mac OS X
ヒレガス氏は、コードレビュー頼みに来たやつにこの本を投げつけてやるんだそうだ。
読みたいなぁ…目次にはほのかに興味を引く項目がちらほら。
いま積んでる本をある程度読んだら次に買おうかな。
MIDIPacketの作成
Core MIDIでは送信するMIDIデータをMIDIPacket構造体に詰めて送りますが、パケットデータに具体的にどんな値を指定するのかといったMIDIの仕様に関わる部分は、Appleのドキュメントには載っていないみたい。
とりあえずノートオン/オフ、コントロールチェンジ、ピッチベンドについては、以下の方法で送れました。
Note On
MIDIPacket packet; packet.timeStamp = 0; packet.length = 3; packet.data[0] = 0x90; packet.data[1] = noteNum;//ノートナンバー packet.data[2] = 100;//ノートオンベロシティ
Note Off
MIDIPacket packet; packet.timeStamp = 0; packet.length = 3; packet.data[0] = 0x80; packet.data[1] = noteNum;//ノートナンバー packet.data[2] = 0x00;//ノートオフベロシティ
Control Change
MIDIPacket packet; packet.timeStamp = 0; packet.length = 3; packet.data[0] = 0xB0; packet.data[1] = ccNum;//CCナンバー packet.data[2] = ccValue;//値
Pitch Bend
//valueは0から16383の範囲 //中間値である8192は[LSB:0, MSB:64]になる int LSB = value & (0x7F);//下位7bit int MSB = value >> 7;//上位7bit MIDIPacket packet; packet.timeStamp = 0; packet.length = 3; packet.data[0] = 0xE0; packet.data[1] = LSB;//パケットはLSB - MSBの順 packet.data[2] = MSB;
iPhoneの開発環境を移行
MacBook Kuro(Leopard)からPro(Snow Leopard)にiPhoneの開発環境を移行したので手順メモ。
- Xcode 3.2のインストール(Snow Leopardのインストールディスクに入っていたもの)
- iPhone SDK for Snow Leopardのインストール。Leopard用とは別なので注意。(Dev Centerでダウンロード)
- 旧Macでprivate keyをExport -> 新Macにインストールする。やり方はiPhone Developer Program -> Certificates -> How Toタブの一番下の方に説明が書いてある。↓*1
- iPhoneデバイスのバージョンが3.0.1とかになってる場合はXcodeではじかれるので、3.0のDevice Supportファイルを3.0.1用として見るようにリンクを作らないとダメらしい。↓
この状態でXcodeでiPhoneプロジェクトを開いた時、Code Signing Identityに選択できる一覧の中に見覚えのあるProvisioning Profilesの名前が出ていたのでそれを選択し、実機でデバッグ実行ができるようになっていました。
ただ、SDKは3.0しかインストールされていないので、うちのiPod touch(ver. 2.2)ではデバッグできなくなってしまった…。古いSDKってダウンロードできないんでしょうか。昔落としたdmgファイルは消したと思うし…
*1:自分がやったときは新Mac側でインストールするときにエラーのようなものが出たが、よく読まずにダイアログを消してしまった。一応動いてるようなので…良いのか?