詩的私的ジャック JACK THE POETICAL PRIVATE S&M
詩的私的ジャック JACK THE POETICAL PRIVATE S&M
- 作者: 森博嗣
- 出版社/メーカー: 講談社
- 発売日: 2012/09/28
- メディア: Kindle版
- 購入: 1人 クリック: 1回
- この商品を含むブログ (3件) を見る
「どんなところが面白いですか? 研究って」
萌絵はきいた。
「そうだね……。それも、よくきかれるけどね」
結城寛が微笑む。
「うまく言葉で説明できないし、自分でも理屈はよくわからない。でも、これよりも面白いものが、人類に残されているかって思うよ」
「大学院に進学しようかどうか迷っているんです」
萌絵は相談してみることにした。
「犀川先生にご相談すれば良いわ」
杉東が横から言う。
「将来のこととかも含めて」
「ええ、先生は進学した方が良いって……」
「なんだ、それじゃあ、迷うことはないでしょう?」と杉東。
「将来を決めてしまうなんて、恐ろしいじゃないか。そんな恐いことはしたくない」犀川が言う。「台風の進路だって、扇形に広がっているだろう? 人間の進路はもっと広角だ」
マッドマックス 怒りのデス・ロード
もう一回 IMAX で見たいけどもうやってなさそう。
あたりまえのぜひたく。
- 作者: きくち正太
- 出版社/メーカー: 幻冬舎
- 発売日: 2015/04/08
- メディア: 単行本
- この商品を含むブログ (3件) を見る
bookbar で紹介されていて購入。内容すごい良かった。料理する人は好きそう。 大根とこんにゃくの件が個人的に良かった。
native webrtc (objc) で audio track に echo cancel, auto gain control などのオプションを設定する
音声を送る場合は
let audioTrack = factory.audioTrackWithID("...")
のような感じで作るがオプション (RTCMediaConstraints) を現状 RTCPeerConnectionFactory からだと渡せないのでやはり自前で書く必要がある
- (RTCAudioTrack*)audioTrackWithID:(NSString*)audioId constraints:(RTCMediaConstraints*)constraints { rtc::scoped_refptr<webrtc::AudioSourceInterface> source = self.nativeFactory->CreateAudioSource(constraints.constraints); rtc::scoped_refptr<webrtc::AudioTrackInterface> track = self.nativeFactory->CreateAudioTrack([audioId UTF8String], source); return [[RTCAudioTrack alloc] initWithMediaTrack:track]; }
このようなメソッドを用意し
let audioConstraints = RTCMediaConstraints(mandatoryConstraints: [ RTCPair(key: "googAutoGainControl", value: "false"), RTCPair(key: "googAutoGainControl2", value: "false"), RTCPair(key: "googEchoCancellation", value: "false"), RTCPair(key: "googEchoCancellation2", value: "false"), RTCPair(key: "googNoiseSuppression", value: "false"), RTCPair(key: "googNoiseSuppression2", value: "false"), RTCPair(key: "googHighpassFilter", value: "false"), ], optionalConstraints: []) let audioTrack = factory.audioTrackWithID("...", constraints: audioConstraints)
上のように audio track を作ると echo cancel, auto gain control などを無効・有効に出来る。 人間の会話を送る場合は特にこれらを無効にする必用はないが、音楽などを送る場合は適してないので無効にすると良い。
ここで指定出来るオプションはここに書いてある。
- talk/app/webrtc/localaudiosource.cc - external/webrtc - Git at Google
- talk/app/webrtc/mediaconstraintsinterface.cc - external/webrtc - Git at Google
video のほうは track と source が分かれて method がちゃんと生えてるのでこのようなことをする必用はない。
native webrtc (mac) で audio の input device を変更する
既に存在する PeerConnectionFactory から変更する方法が変わらなかったので、とりあえず初期化の時に変更する方法
webrtc::AudioDeviceModule *adm = webrtc::CreateAudioDeviceModule(0, webrtc::AudioDeviceModule::kPlatformDefaultAudio); int ret = adm->Init(); NSAssert(ret == 0, @"failed init audio device modules"); for (int i = 0; i < adm->RecordingDevices(); i++) { char name[webrtc::kAdmMaxDeviceNameSize]; char guid[webrtc::kAdmMaxGuidSize]; int ret = adm->RecordingDeviceName(i, name, guid); NSAssert(ret == 0, @"failed RecordingDeviceName"); NSLog(@"%d %s %s", i, name, guid); } adm->SetRecordingDevice(...);
として AudioDeviceModule を初期化しこれを webrtc::CreatePeerConnectionFactory
に渡す必用がある。
RTCPeerConnectionFactory.mm のような wrapper を自分で書いちゃうのが早そう。
git のブランチ間でのスキーマの差分を ALTER 文とかで出す
git difftool -x=schemalex branch1...branch2 path/to/schema
とやると出来る。
別に schemalex ではなくてもよく command <before> <after>
で diff を求められるツールがあれば良い。*1
ちなみに git diff でやる場合には gitconfig に
diff ["sqldiff"] command = ...
gitattribuets に
*.sql diff=sqldiff
のように書く必用があるが *2 command には <path> <tmp_path1> <hex1> <mode1> <tmp_path2> <hex2> <tmp_path2>
と渡るので *3 git difftool のほうが使いやすそうな感じがする。