197x Timer with Your Messages

1,014 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,014
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

197x Timer with Your Messages

  1. 1. あなたのメッセージで 世界をつなぐ TimerKuniaki IGARASHI/igaiga 2009.7.4 @GREE 197x
  2. 2. 自己紹介 いがいが 1977 年生まれ動画系組み込みプログラマ 趣味:量子力学 高専カンファレンス運営
  3. 3. 高専カンファレンス 高専をキーワードに学生、教員、社会人が 集まる勉強会 科学雑誌Natureのように各自の得意分野を分かりやすく説明 http://kosenconf.jp/
  4. 4. 高専カンファレンスin 東京 2009.11.7基調講演 (予定)航空高専超小型衛星開発高専関係者以外でも参加OK!
  5. 5. 開催実績 東京 2008/6, 12 2009/4 北海道 2008/9 福井 2009/2 九州 2009/5
  6. 6. 全国各地で開催するので
  7. 7. ustreamでつないでチャットで会場とコラボする
  8. 8. でも、会場でPCを持ってる人はいいけど、ない人はチャットを読めない
  9. 9. PCがないなら 表示すればいいじゃない
  10. 10. おk。
  11. 11. つくった。
  12. 12. TwYM Timer with Your Messageshttp://code.google.com/p/twym/
  13. 13. TwYM IRCメッセージを 表示できるタイマー 動作環境Mac OS X Leopard Quartz Composer ruby 1.8.6 / 1.8.7
  14. 14. Quartz Composer macに標準で入ってる グラフィカルなデモを作成できる 開発環境
  15. 15. TwYM frontendタイマーIRC/ustream メッセージ
  16. 16. TwYM QC code
  17. 17. 問題はどうやって IRCからQCへデータを送りこむか
  18. 18. QC は外から入力できる形式が非常に限られている
  19. 19. 最初のバージョンの 通信方式
  20. 20. IRC (ustream chat)nadoka (ruby IRC bot)YAMLRSSQuartzComposer
  21. 21. 問題点 一定時間発言をまとめて1つのRSSにしていたので 発言→表示の遅延が 最大20秒
  22. 22. なんとかしたい
  23. 23. 案: mootoh さんのSocketReaderPatch つかわせてもらう
  24. 24. これであっさり解決と おもいきや・・・
  25. 25. 現在のQuartzComposer ではなぜか動かない orz
  26. 26. 案:unix shell patch
  27. 27. QCのsampleに ついてくる unix shell command の結果を表示するpatch/Developer/Examples/Quartz Composer/Plugins/CommandLineTool
  28. 28. しかし
  29. 29. 使っていると画面が勝手に 拡大されていく バグに遭遇
  30. 30. 1ヶ月足踏み orz
  31. 31. やさぐれていた ある日
  32. 32. なんか使えそうな patchをみつけた Network ReceiverLeopardあたりで入ったみたい
  33. 33. Network ReceiverNetwork ReceiverThis patch receives the text sent on thelocal network by the NetworkBroadcaster patch.別の Network Broadcaster からデータを受け取れる
  34. 34. Network BroadcasterNetwork BroadcasterThis patch sends text over the localnetwork using UDP broadcasting ormulticasting. The sent text can bereceived by compositions on othercomputers using the Network Receiverpatch.
  35. 35. つまりこいつらは UDPできゃっきゃうふふ 通信している UDP Network NetworkBroadcaster Receiver
  36. 36. Broadcasterを さしかえればおk UDPIRC NetworkBot Receiver
  37. 37. どんなフォーマットで 送ってるのか調査 UDP Network NetworkBroadcaster Receiver
  38. 38. Apple って送る場合は“000A000p000p000l000e” って送ればいいよ http://arrifana.org/blog/2007/11/leopards-quartz-composer-and-network-events/
  39. 39. やってみた
  40. 40. NetworkReceiver rubyで 送ってみるrequire socketsocket = UDPSocket.open()socket.connect("225.0.0.0", 50001) # address , portsocket.send("000A000P000P000L000E", 0)
  41. 41. Network Receiverへは 000[英字]で送れることが判明
  42. 42. ・・・日本語は?
  43. 43. さらに調査
  44. 44. UTF-32BE (BE:BigEndian) で送ればいいよhttp://arrifana.org/blog/2007/11/leopards-quartz-composer-and-network-events/
  45. 45. UTF-32BEって聞き慣れないどんなライブラリを 使えばいい?
  46. 46. ruby1.9は 組み込みライブラリkconvで UTF-32BEに変換できる!!キタ━━━(   )━(ω・́ )━(・ω・́)━(`・ω・́)シャキーン━━!! ruby1.8.6の場合は外部ライブラリの rbuconvを使えばおk http://www.yoshidam.net/Ruby_ja.html
  47. 47. さらにやってみた
  48. 48. ruby1.9.1で送ってみる# -*- coding: utf-8 -*-require socketrequire kconvsocket = UDPSocket.open()socket.connect("225.0.0.0", 50001) # address, portstr_u32BE = Kconv.kconv(いがいが,Kconv::UTF32, Kconv::UTF8)socket.send(str_u32BE, 0) http://igarashikuniaki.net/tdiary/20090420.html
  49. 49. NetworkReceiverへは UTF-32BE で送れることが判明"000A"はUTF-32BEでASCII範囲を指定してたのね
  50. 50. ここまでわかれば・・・ IRC側に Nadoka(Ruby IRC Bot Library) を使って発言を QCへ送りこむ
  51. 51. IRC (ustream chat)nadoka (ruby IRC bot) UDP通信 (UTF32-BE) QuartzComposer
  52. 52. TwYM Timer with Your Messageshttp://code.google.com/p/twym/
  53. 53. 採用実績 札幌Ruby会議01Genesis Lightning Talks 勉強会カンファレンス 高専カンファレンス
  54. 54. Genesis Lightning Talks さとうようぞうさんの手で音が出る機能が追加されました ありがとうございます!
  55. 55. 注: ustreamは同アカウントが複数いると kickされる 別のIRC client でustream にログインするときは注意
  56. 56. まとめ
  57. 57. QuartzComposerへはNetwork Receiver を使うと UDP通信で UTF-32BEで入力できる
  58. 58. ustreamニコニコ生放送空間の制限を外す
  59. 59. youtube ニコニコ動画時間の制限を外す
  60. 60. TwYM時間と想いを共有
  61. 61. TwYM open source(New BSD License) で公開中!http://code.google.com/p/twym/

×