Boost.勉強会感想とか
遅ればせながらBoost.勉強会の発表資料をアップしました。
http://cid-31a4fb569979bef3.skydrive.live.com/self.aspx/.Public/BoostAsio.ppt
※以下TLにあった質問ぽいものに対して解答
Q:AsioってCOMポート扱えるの?
A:はい、発表資料に書いたとおり扱えちゃいます。
Q:Asioって聞くとDTMのあれ?
A:おしいけどちがうw
Q:もっとコードにはコメントが欲しかったです
A:ごめんなさい。コメント入れることでコードのフォントサイズが小さくなって見えなくなるのが怖かったので削ってしまいました><
Q:v4を「ぶいよん」って読むの?
A:「ぶいよん」って言うのは癖です。「ぶいふぉー」が一般的なのかな?
Q:deadline_timerの開始はposix_time::seconds のコンストラクタが評価されてからじゃないの?
A:えっと、調べてないのでわかりません。
でも良いたかったのはdeadline_timerのコンストラクタにposix_timeを渡す場合は
そこから既にタイマーが始まってるよってことでした。
ちなみにタイマーをかける時間をコンストラクタで取らない場合は
deadline_timerのメンバ関数expires_from_nowを使えばできますね。
こんな感じ
deadline_timer timer(io_service); timer.expires_from_now(posix_time::seconds(5)); // ここから5秒後にタイマが満期を迎える。 timer.wait();
Q:ちょっと疲れた・・・
A:はい、疲れちゃったんです。
Q:asioのtcp socketってnon-blockingなんかな?
A:メンバ関数で同期、非同期どちらも扱えます。
非同期メンバ関数
async_connect
async_read_some
async_receive
async_send
async_write_some
同期メンバ関数
connect
read_some
receive
send
write_some
※ここは調べてないのでちょっと不正確なので参考程度に
ただし、tcp::iostreamは単体では同期しか扱えなかったはず。
Q:asioでいろんなプロトコルのライブラリを作ろうってサブプロジェクトがあったような気がする・・・
A:その話はしらなかったですが、プロトコルの拡張はProtocol requirementsを満たせば可能だとドキュメントにはあります。
参考:http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/reference/Protocol.html
Q:けっこうよさそうだなー #boostjp http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/tutorial/tuttimer5.html
A:これ!!ほんとはすっごく紹介したかったコードです!!ただ、一部理解不足なところがあるので理解できたらどこかで話したいですね。
Q:あのyieldマクロは怖かった
A:僕も最初見たときはこんなことできるのかって思いました。
Q:overwrapped I/O にはイヤな思い出が
A:Asioがラップしてくれてるので怖くないですよー。
Q:SSLのとこ微妙に見逃した。。。中身はopen SSL?
A:はい、スライドにも書きましたが、Open SSLを使ってます。
Q&Aじゃないのもいっぱい混ざったような気がしますが、気にしない。
■ここから感想
ことの発端は僕がTL上でBoost勉強会とかあったら楽しそうだなってつぶやいたところからで、
id:fath_and_braveさんが主催、段取りをしてくださいました。
本当に感謝です、ありがとうございました。
さすが、発表者のみなさんすごい方ばかりでセッションはどれも面白かったです。
特にmoriyoshiさんのタイピング速度が神でしたw
補間使ってるのかと思いきや使ってなかったそうです。
指が勝手に補間するんですって仰ってました。すごすぎるw
■反省
自分は今回がスピーカ担当は初で、gdgdになってしまって申し訳なかったです。
Asioのお話を楽しみに来てくださった方には申し訳なかったです><。
正直今回は失敗したなーと言う感想。
もっとタイマーのお話とかできればよかったですが、色々飛んでしまいました。orz
次は関西ってうわさが流れてましたがまたぜひ参加したいですね!
と言うわけで皆様お疲れ様でした。ホントに楽しかったー。