SlideShare a Scribd company logo
あなたのメッセージで
  世界をつなぐ
   Timer
Kuniaki IGARASHI/igaiga
 2009.7.4 @GREE 197x
自己紹介
  いがいが
  1977 年生まれ


動画系組み込みプログラマ
   趣味:量子力学
 高専カンファレンス運営
高専カンファレンス
 高専をキーワードに
学生、教員、社会人が
   集まる勉強会
  科学雑誌Natureのように
各自の得意分野を分かりやすく説明
  http://kosenconf.jp/
高専カンファレンス
in 東京 2009.11.7
基調講演    (予定)



航空高専
超小型衛星開発
高専関係者以外でも参加OK!
開催実績
  東京
  2008/6, 12
  2009/4

  北海道 2008/9
  福井 2009/2
  九州 2009/5
全国各地で
開催するので
ustreamでつないで
チャットで会場とコラボする
でも、会場で
PCを持ってる人はいいけど、
ない人はチャットを読めない
PCがないなら
 表示すれば
いいじゃない
おk。
つくった。
197x Timer with Your Messages
TwYM
        Timer
         with
         Your
       Messages
http://code.google.com/p/twym/
TwYM
 IRCメッセージを
 表示できるタイマー
       動作環境
Mac OS X Leopard
  Quartz Composer
  ruby 1.8.6 / 1.8.7
Quartz Composer
    macに標準で入ってる
  グラフィカルなデモを作成できる
        開発環境
TwYM frontend

タイマー
IRC/ustream
  メッセージ
TwYM QC code
問題はどうやって
  IRCからQCへ
データを送りこむか
QC は外から
入力できる形式が
非常に限られている
最初のバージョンの
   通信方式
IRC   (ustream chat)


nadoka                 (ruby IRC bot)



YAML
RSS
QuartzComposer
問題点
 一定時間発言をまとめて
1つのRSSにしていたので
  発言→表示の遅延が
    最大20秒
なんとかしたい
案:
   mootoh さんの
SocketReaderPatch
  つかわせてもらう
197x Timer with Your Messages
これであっさり解決と
 おもいきや・・・
現在のQuartzComposer
  ではなぜか動かない
      orz
案:
unix shell patch
QCのsampleに
         ついてくる
   unix shell command
   の結果を表示するpatch

/Developer/Examples/Quartz Composer/Plugins/CommandLineTool
しかし
使っていると

画面が勝手に
 拡大されていく

 バグに遭遇
1ヶ月
足踏み
 orz
やさぐれていた
  ある日
なんか使えそうな
   patchをみつけた




  Network Receiver

Leopardあたりで入ったみたい
Network Receiver

Network Receiver

This patch receives the text sent on the
local network by the Network
Broadcaster patch.

別の Network Broadcaster
  からデータを受け取れる
Network Broadcaster


Network Broadcaster
This patch sends text over the local

network using  UDP      broadcasting or
multicasting. The sent text can be
received by compositions on other
computers using the Network Receiver
patch.
つまりこいつらは
  UDPできゃっきゃうふふ
     通信している


         UDP
  Network      Network
Broadcaster    Receiver
Broadcasterを
      さしかえればおk

      UDP



IRC         Network
Bot         Receiver
どんなフォーマットで
    送ってるのか調査

         UDP


  Network      Network
Broadcaster    Receiver
Apple って送る場合は
“000A000p000p000l000e”
               って送ればいいよ




  http://arrifana.org/blog/2007/11/leopards-quartz-composer-and-network-events/
やってみた
NetworkReceiver
  rubyで
 送ってみる

require 'socket'
socket = UDPSocket.open()
socket.connect("225.0.0.0", 50001)
  # address , port
socket.send(
"000A000P000P000L000E", 0)
Network
 Receiverへは
 000[英字]
で送れることが判明
・・・日本語は?
さらに調査
UTF-32BE
           (BE:BigEndian)
            で送ればいいよ




http://arrifana.org/blog/2007/11/leopards-quartz-composer-and-network-events/
UTF-32BE
って聞き慣れない

どんなライブラリを
  使えばいい?
ruby1.9は
 組み込みライブラリkconvで
 UTF-32BEに変換できる!!
キタ━━━(   )━(ω・́ )━(・ω・́)━(`・ω・́)シャキーン━━!!


      ruby1.8.6の場合は外部ライブラリの
           rbuconvを使えばおk
           http://www.yoshidam.net/Ruby_ja.html
さらに
やってみた
ruby1.9.1で送ってみる
# -*- coding: utf-8 -*-
require 'socket'
require 'kconv'
socket = UDPSocket.open()
socket.connect("225.0.0.0", 50001)
  # address, port
str_u32BE = Kconv.kconv('いがいが',
Kconv::UTF32, Kconv::UTF8)
socket.send(str_u32BE, 0)
          http://igarashikuniaki.net/tdiary/20090420.html
NetworkReceiverへは

  UTF-32BE
       で送れることが判明
"000A"はUTF-32BEでASCII範囲を指定してたのね
ここまでわかれば・・・


        IRC側に
       Nadoka
(Ruby IRC Bot Library)
     を使って発言を
     QCへ送りこむ
IRC (ustream chat)
nadoka      (ruby IRC bot)



    UDP通信       (UTF32-BE) 



QuartzComposer
TwYM
        Timer
         with
         Your
       Messages
http://code.google.com/p/twym/
採用実績
    札幌Ruby会議01
Genesis Lightning Talks
   勉強会カンファレンス
   高専カンファレンス
Genesis Lightning Talks
 さとうようぞうさんの手で
音が出る機能が追加されました
  ありがとうございます!
注:
   ustreamは
同アカウントが複数いると
   kickされる

      別のIRC client で
ustream にログインするときは注意
まとめ
QuartzComposerへは
Network Receiver を使うと
       UDP通信で
  UTF-32BEで入力できる
ustream
ニコニコ生放送


空間の制限を外す
youtube
 ニコニコ動画


時間の制限を外す
TwYM

時間と想いを共有
TwYM
   open source
(New BSD License)
     で公開中!
http://code.google.com/p/twym/

More Related Content

PDF
Try new transport protocol SRT (ver. 2)
PPTX
ライブストリーミング低遅延化の取り組み @ DeNA
PDF
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
PDF
Lagopus as open flow hybrid switch 実践編
PDF
RubyKaigi Lightning Talks TwYM episode2
PPTX
Ren’pyの御紹介
PDF
Using rump on NetBSD 7.0
PDF
Try new transport protocol SRT
Try new transport protocol SRT (ver. 2)
ライブストリーミング低遅延化の取り組み @ DeNA
Raspberry Pi Zero とカメラモジュールで作るライブ配信実験機
Lagopus as open flow hybrid switch 実践編
RubyKaigi Lightning Talks TwYM episode2
Ren’pyの御紹介
Using rump on NetBSD 7.0
Try new transport protocol SRT

What's hot (20)

PPTX
今時のLinuxにおけるGPUエンコード事情
PDF
ZynqMP勉強会
PDF
IPv6冗長で差をつけよう 2011年夏の思い出作り VRRP編
PPTX
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
PDF
EC2でkeepalived+LVS(DSR)
PDF
野良ビルドから見たGentoo
PDF
今時のLinuxにおけるGPUエンコード事情2018
PDF
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
PDF
Perlワンライナーで全てのモジュールにuse v5.8.0つける!
PPTX
171116 nishimoto-mruby
PDF
Cent osにpyhtonをインストールしてみよう
PPTX
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
PDF
「Turtlebot3の紹介」 ROS Japan UG #10 勉強会
PDF
Vsubuntu
PDF
TurtleBot3でROSを始めよう
PPT
関西オープンソース 2008 30days Albumの裏側
PDF
組込み向けスクリプト言語mrubyをEV3で動かしてみよう
PPTX
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
PDF
60分でわかるソケットプログラミング
PDF
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
今時のLinuxにおけるGPUエンコード事情
ZynqMP勉強会
IPv6冗長で差をつけよう 2011年夏の思い出作り VRRP編
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
EC2でkeepalived+LVS(DSR)
野良ビルドから見たGentoo
今時のLinuxにおけるGPUエンコード事情2018
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Perlワンライナーで全てのモジュールにuse v5.8.0つける!
171116 nishimoto-mruby
Cent osにpyhtonをインストールしてみよう
3次元SLAMは誰でもできるよ。そう、TX2とTurtleBot3ならね。
「Turtlebot3の紹介」 ROS Japan UG #10 勉強会
Vsubuntu
TurtleBot3でROSを始めよう
関西オープンソース 2008 30days Albumの裏側
組込み向けスクリプト言語mrubyをEV3で動かしてみよう
ZytleBot:ROS対応自動走行ロボットへのFPGA活用を加速化する統合開発プラットフォーム
60分でわかるソケットプログラミング
しつこくXenとzfsで作る家庭内vdiサーバ2015年版
Ad

Viewers also liked (20)

DOC
Haberes
PDF
BIOferta de mayo lista de precios Mercado BIO Madrid
DOCX
Evaluacion informatica
PDF
Poesía lirica latina
DOCX
Paginas del libro
DOC
Enfermedades del metab
DOCX
Ficha bibliografica seis
DOCX
Práctica 11 (individual) el juego y el currículo de la e.i
PDF
Accesos a UNQUI
DOCX
Impacto del tlc en la capacitación en méxico
PDF
Tarea 1 curriculo
DOCX
CURRICULUM VITAE IVICA SPASOJEVIC 1
PDF
Publicación1
DOCX
Video porque los colombianos somos pobres
PDF
Gráfico diario del ibex 35 para el 18 05 2012
DOCX
Porque debemos cuidar la naturaleza
DOCX
Propuesta plan de acción
DOCX
Duneska naturaleza
DOC
Dieta de 7 días para el verano
PDF
Volanteo. Aztecas y Eje 10 Sur. Domingo 20 de Mayo. 11:00 hrs.
Haberes
BIOferta de mayo lista de precios Mercado BIO Madrid
Evaluacion informatica
Poesía lirica latina
Paginas del libro
Enfermedades del metab
Ficha bibliografica seis
Práctica 11 (individual) el juego y el currículo de la e.i
Accesos a UNQUI
Impacto del tlc en la capacitación en méxico
Tarea 1 curriculo
CURRICULUM VITAE IVICA SPASOJEVIC 1
Publicación1
Video porque los colombianos somos pobres
Gráfico diario del ibex 35 para el 18 05 2012
Porque debemos cuidar la naturaleza
Propuesta plan de acción
Duneska naturaleza
Dieta de 7 días para el verano
Volanteo. Aztecas y Eje 10 Sur. Domingo 20 de Mayo. 11:00 hrs.
Ad

Similar to 197x Timer with Your Messages (20)

PDF
10分で作るクラスライブラリ
PPTX
Imprementation of realtime_networkgame
PPTX
ウェブチップス勉強会 Action cable
KEY
2012-09-09.nagoyapm07
PDF
RubyKaigi Lightning Talks TwYM episode1
PDF
おれが考えた見やすい通知
PPTX
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
PDF
node+socket.io+enchant.jsでチャットゲーを作る
PPT
LL matsuri 2013-0824
PPT
LL matsuri 2013-0824
PDF
Reading NATS
PDF
PIC RoR Heroku
PDF
UnicastWS vol.1
PPTX
ゲームの通信をつくる仕事はどうなるのだろう?
PDF
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
PDF
Wiresharkで検出できないチャットプログラム
PDF
「Tiのソケットで待ってる」Titanium Nagoya Chatroom Vol.2
PDF
nomlab_okayamaruby_slide
PDF
ネットワークコマンド入力に対応したツール事例
10分で作るクラスライブラリ
Imprementation of realtime_networkgame
ウェブチップス勉強会 Action cable
2012-09-09.nagoyapm07
RubyKaigi Lightning Talks TwYM episode1
おれが考えた見やすい通知
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
node+socket.io+enchant.jsでチャットゲーを作る
LL matsuri 2013-0824
LL matsuri 2013-0824
Reading NATS
PIC RoR Heroku
UnicastWS vol.1
ゲームの通信をつくる仕事はどうなるのだろう?
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Wiresharkで検出できないチャットプログラム
「Tiのソケットで待ってる」Titanium Nagoya Chatroom Vol.2
nomlab_okayamaruby_slide
ネットワークコマンド入力に対応したツール事例

More from Kuniaki Igarashi (20)

PDF
my_everyday_life_with_ruby
PDF
EM高専カンファレンス 編集後記とまえがき
PDF
世界のどこかで楽しくRubyでお仕事するために
PDF
「学生さんと一緒に Rubyイベントを つくっている←イマココ 」
PDF
高専カンファレンスカンファレンス
PDF
高専カンファレンス014Tokyo 前説
PDF
高専カンファレンス014tokyo 実行委員長挨拶
PDF
雷は落ちるのか昇るのか
PDF
World Wide Ruby Conferences
PDF
高専カンファレンス 014東京 予告編
PDF
高専カンファレンス2010秋 予告編
PDF
Cafe igaiga
PDF
高専カンファレンスについて @kosenconf-012hachinohe
PDF
高専カンファレンス2009秋in東京 実行委員長挨拶
PDF
勉強会でAgileを
PDF
高専カンファレンス2009秋in東京 予告編
PDF
高専カンファレンス 定款と開催方法について
PDF
高専カンファレンスダイジェスト
PDF
春なので愛をこめてタイマーをつくってきた
PDF
高専カンファレンス@OSC2009SpringTokyo
my_everyday_life_with_ruby
EM高専カンファレンス 編集後記とまえがき
世界のどこかで楽しくRubyでお仕事するために
「学生さんと一緒に Rubyイベントを つくっている←イマココ 」
高専カンファレンスカンファレンス
高専カンファレンス014Tokyo 前説
高専カンファレンス014tokyo 実行委員長挨拶
雷は落ちるのか昇るのか
World Wide Ruby Conferences
高専カンファレンス 014東京 予告編
高専カンファレンス2010秋 予告編
Cafe igaiga
高専カンファレンスについて @kosenconf-012hachinohe
高専カンファレンス2009秋in東京 実行委員長挨拶
勉強会でAgileを
高専カンファレンス2009秋in東京 予告編
高専カンファレンス 定款と開催方法について
高専カンファレンスダイジェスト
春なので愛をこめてタイマーをつくってきた
高専カンファレンス@OSC2009SpringTokyo

197x Timer with Your Messages