SlideShare ist ein Scribd-Unternehmen logo
1 von 23
くるくる研究室 フィジカルコンピューティングを はじめよう。
くるくる研究室 ,[object Object],http://labs.kuru2jam.com/ 原 央樹 尾崎俊介 http://labs.kuru2jam.com/ @hara3  @biscuitjam
作品紹介 http://labs.kuru2jam.com/ くるくる研究室
【 事例 】 お化け屋敷
フィジカルコンピューティング
と言っても、いきなり難しいと思うので、 できるところから、やってみる。
体験しよう 【 ポチっとレンジ 】
体験したい人!
動作の仕組み ③ ソケット通信 電気信号 ④ 電子回路 Data ② 一定間隔でデータを確認 ① HTML から POST
HTML から POST PHP
ケータイからアクセスする PHP <?php // HTML 文字のエスケープ $text =  htmlspecialchars(  $_POST[&quot;push&quot; ] ); if($text){ $fp  = fopen( &quot;./status.dat&quot; ,  &quot;w&quot; ); fwrite($fp, 1); fclose($fp); $url  =  &quot;http://www.yourserver.com/complete.html&quot; ; header( &quot;Location: $url&quot; ) ; ?> <html> <head> …
ケータイからアクセスする HTML … <html> <head> <meta  http-equiv = &quot;Content-Type&quot;  content = &quot;text/html; charset=utf-8&quot; > </head> <body> <img  src = &quot;logo.gif&quot; > <br /> <form  action = &quot;<?php echo $_SERVER['SCRIPT_NAME']; ?>&quot;  method = &quot;post&quot; > <input  type = &quot;submit&quot;   name = &quot;push&quot;   id = &quot;push&quot;   value = &quot; ボタンを押す &quot; > </form> <br /> <hr /> 2010 kurukuru labs. </body> </html>
一定間隔でデータを確認 ActionScript 3.0
package  { import flash.display.MovieClip; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.utils.Timer; import flash.events.TimerEvent; import funnel.*; public class  Pochitto  extends MovieClip { private var  _timer: Timer ; private var  _gio:Gainer; private const  _D_OUT_1: int  = 12; public function  Pochitto()  { _gio = new Gainer(); _gio. addEventListener (FunnelEvent. READY ,  trace ); _gio. addEventListener (FunnelEvent. READY , _gioReadyHandler); _gio. addEventListener (FunnelErrorEvent.REBOOT_ERROR,  trace ); _gio. addEventListener (FunnelErrorEvent.CONFIGURATION_ERROR,  trace ); _gio. addEventListener (FunnelErrorEvent. ERROR ,  trace ); } private function  _gioReadyHandler(e:FunnelEvent): void   { _gio.digitalOutput(0). value  = 0; _timer =  new Timer (1000, 0); _timer. addEventListener ( TimerEvent.TIMER ,_timerHandler); _timer. start (); } private function  _timerHandler(e: TimerEvent ): void   { var  urlLoader: URLLoader  =  new URLLoader (); urlLoader. addEventListener ( Event.COMPLETE , _completeHandler); urlLoader. load ( new   URLRequest ( &quot;http://www.yourserver.com/getStatus.php?&quot;  +  Math.random ())); } private function  _completeHandler(e: Event ): void  { var  status: Number  =  Number (URLLoader(e. target ).data); trace ( &quot;status : &quot;  + status); if  (status == 1) { _gio.digitalOutput(0). value  = 1; } } } }
Flash から PHP にアクセス ActionScript 3.0
public class  Pochitto  extends MovieClip { private var  _timer: Timer ; public function  Pochitto()  { _gio = new Gainer();  _gio. addEventListener (FunnelEvent. READY , _gioReadyHandler); } private function  _gioReadyHandler(e:FunnelEvent): void   { _gio.digitalOutput(0). value  = 0; _timer =  new Timer (1000, 0); _timer. addEventListener ( TimerEvent.TIMER ,_timerHandler); _timer. start (); } private function  _timerHandler(e: TimerEvent ): void   { var  urlLoader: URLLoader  =  new URLLoader (); urlLoader. addEventListener ( Event.COMPLETE , _completeHandler); // キャッシュ対策のため、パラメタにランダムな値を入れる urlLoader. load ( new   URLRequest ( &quot;http://www.yourserver.com/getStatus.php?&quot;  +  Math.random ())); } private function  _completeHandler(e: Event ): void  { var  status: Number  =  Number (URLLoader(e. target ).data); if  (status == 1) { _gio.digitalOutput(0). value  = 1; } } }
Flash からアクセスする PHP <?php // 読み込み $status  = 0; $fp  = fopen( &quot;status.dat&quot; ,  &quot;r&quot; ); while ( $line  = fgets( $fp )) {   $status  =  $line ; } fclose( $fp ); // ファイルをリセット $fp  = fopen( &quot;status.dat&quot; ,  &quot;w&quot; ); fwrite( $fp ,  &quot;0&quot; ); fclose( $fp ); echo  $status ; ?>
Gainer と接続
package  { import funnel.*; public class  Pochitto  extends MovieClip { private const  _DT: Number  = 1000;//1 秒 (1000 ミリ秒毎 ) private const  STATUS_URL: String  =  &quot;http://www.yourserver.com/getStatus.php&quot; ; private var  _timer: Timer ; private var  _gio:Gainer; private const  _D_OUT_1: int  = 12; // コンストラクター public function  Pochitto()  { // インスタンス化 _gio = new Gainer(); _gio. addEventListener (FunnelEvent. READY ,  trace ); _gio. addEventListener (FunnelEvent. READY , _gioReadyHandler); _gio. addEventListener (FunnelErrorEvent.REBOOT_ERROR,  trace ); _gio. addEventListener (FunnelErrorEvent.CONFIGURATION_ERROR,  trace ); _gio. addEventListener (FunnelErrorEvent. ERROR ,  trace ); } // 準備ができたら実行 private function  _gioReadyHandler(e:FunnelEvent): void   { _gio.digitalOutput(0). value  = 0; _timer =  new Timer (_DT, 0); _timer. addEventListener ( TimerEvent.TIMER ,_timerHandler); _timer. start (); } } }
Gainer に命令
Gainer に命令 // 読み込みコンプリートハンドラー private function  _completeHandler(e: Event ): void  { var  status: Number  =  Number (URLLoader(e. target ).data); trace ( &quot;status : &quot;  + status); if  (status == 1) { _gio.digitalOutput(0). value  = 1; } }
ありがとうございました。
あっ!本買ってください。

Weitere ähnliche Inhalte

Was ist angesagt?

traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話infinite_loop
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2Akio Ishida
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたKatsuhiro Miura
 
Cakephpstudy5 hacks jp
Cakephpstudy5 hacks jpCakephpstudy5 hacks jp
Cakephpstudy5 hacks jpHiroki Shimizu
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - FuncGosuke Miyashita
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.ContextAkira Takahashi
 
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみようKentaro Matsui
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」Tsuyoshi Yamamoto
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~leverages_event
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインFujio Kojima
 
Hack/HHVM 入門
Hack/HHVM 入門Hack/HHVM 入門
Hack/HHVM 入門y-uti
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門Sho A
 
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」de:code 2017
 

Was ist angesagt? (20)

traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話
 
Subprocess no susume
Subprocess no susumeSubprocess no susume
Subprocess no susume
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
 
FuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみたFuelPHPで3種のprofilerを使ってみた
FuelPHPで3種のprofilerを使ってみた
 
HHVM Hack
HHVM HackHHVM Hack
HHVM Hack
 
Cakephpstudy5 hacks jp
Cakephpstudy5 hacks jpCakephpstudy5 hacks jp
Cakephpstudy5 hacks jp
 
test
testtest
test
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
 
Continuation with Boost.Context
Continuation with Boost.ContextContinuation with Boost.Context
Continuation with Boost.Context
 
What is Metasepi?
What is Metasepi?What is Metasepi?
What is Metasepi?
 
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
 
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドイン
 
Hack/HHVM 入門
Hack/HHVM 入門Hack/HHVM 入門
Hack/HHVM 入門
 
CodeIgniter入門
CodeIgniter入門CodeIgniter入門
CodeIgniter入門
 
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
 
0x300
0x3000x300
0x300
 

Ähnlich wie Lightweight Language Tiger 2010

Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programmingtakesako
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumilab
 
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!Shinobu Okano
 
WordPressと外部APIとの連携
WordPressと外部APIとの連携WordPressと外部APIとの連携
WordPressと外部APIとの連携Hidekazu Ishikawa
 
Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1ikikko
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について豊明 尾古
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方Yosuke Furukawa
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackkimukou_26 Kimukou
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用Yatabe Terumasa
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLTaisuke Fukuno
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Takashi EGAWA
 
KanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたしKanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたしMaehana Tsuyoshi
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Yuki Higuchi
 
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」までNeo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」までKeiichiro Seida
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Chihiro Ito
 

Ähnlich wie Lightweight Language Tiger 2010 (20)

Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread ProgrammingNode.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
 
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
OnActivityResult - おまえら!もうonActivityResultでswitchとif書く時代は終わりだぞ!
 
WordPressと外部APIとの連携
WordPressと外部APIとの連携WordPressと外部APIとの連携
WordPressと外部APIとの連携
 
jQuery勉強会#4
jQuery勉強会#4jQuery勉強会#4
jQuery勉強会#4
 
Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
 
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hackTwitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
 
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
JavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, PerformanceJavaScript 実践講座 Framework, Tool, Performance
JavaScript 実践講座 Framework, Tool, Performance
 
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQLハンズオン勉強会 はじめてのJavaScriptとSPARQL
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 
KanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたしKanbanとTHETAとDK2とわたし
KanbanとTHETAとDK2とわたし
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.Android Lecture #03 @PRO&BSC Inc.
Android Lecture #03 @PRO&BSC Inc.
 
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」までNeo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
Neo4j の「データ操作プログラミング」から 「ビジュアライズ」まで
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発
 

Mehr von biscuitjam

第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会
第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会
第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会biscuitjam
 
ADC MEETUP ROUND01 SESSION4
ADC MEETUP ROUND01 SESSION4ADC MEETUP ROUND01 SESSION4
ADC MEETUP ROUND01 SESSION4biscuitjam
 
AIR For Android 勉強会 第1回
AIR For Android 勉強会 第1回AIR For Android 勉強会 第1回
AIR For Android 勉強会 第1回biscuitjam
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010biscuitjam
 
寺子屋クスール @STATION5
寺子屋クスール @STATION5寺子屋クスール @STATION5
寺子屋クスール @STATION5biscuitjam
 

Mehr von biscuitjam (6)

第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会
第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会
第1回XPF(クロスプラットフォーム)ゲーム開発ツール勉強会
 
ADC MEETUP ROUND01 SESSION4
ADC MEETUP ROUND01 SESSION4ADC MEETUP ROUND01 SESSION4
ADC MEETUP ROUND01 SESSION4
 
ADC MEETUP 01
ADC MEETUP 01ADC MEETUP 01
ADC MEETUP 01
 
AIR For Android 勉強会 第1回
AIR For Android 勉強会 第1回AIR For Android 勉強会 第1回
AIR For Android 勉強会 第1回
 
Lightweight Language Tiger 2010
Lightweight Language Tiger 2010Lightweight Language Tiger 2010
Lightweight Language Tiger 2010
 
寺子屋クスール @STATION5
寺子屋クスール @STATION5寺子屋クスール @STATION5
寺子屋クスール @STATION5
 

Kürzlich hochgeladen

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 

Kürzlich hochgeladen (12)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

Lightweight Language Tiger 2010

  • 2.
  • 4. 【 事例 】 お化け屋敷
  • 9. 動作の仕組み ③ ソケット通信 電気信号 ④ 電子回路 Data ② 一定間隔でデータを確認 ① HTML から POST
  • 11. ケータイからアクセスする PHP <?php // HTML 文字のエスケープ $text = htmlspecialchars( $_POST[&quot;push&quot; ] ); if($text){ $fp = fopen( &quot;./status.dat&quot; , &quot;w&quot; ); fwrite($fp, 1); fclose($fp); $url = &quot;http://www.yourserver.com/complete.html&quot; ; header( &quot;Location: $url&quot; ) ; ?> <html> <head> …
  • 12. ケータイからアクセスする HTML … <html> <head> <meta http-equiv = &quot;Content-Type&quot; content = &quot;text/html; charset=utf-8&quot; > </head> <body> <img src = &quot;logo.gif&quot; > <br /> <form action = &quot;<?php echo $_SERVER['SCRIPT_NAME']; ?>&quot; method = &quot;post&quot; > <input type = &quot;submit&quot; name = &quot;push&quot; id = &quot;push&quot; value = &quot; ボタンを押す &quot; > </form> <br /> <hr /> 2010 kurukuru labs. </body> </html>
  • 14. package { import flash.display.MovieClip; import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.utils.Timer; import flash.events.TimerEvent; import funnel.*; public class Pochitto extends MovieClip { private var _timer: Timer ; private var _gio:Gainer; private const _D_OUT_1: int = 12; public function Pochitto() { _gio = new Gainer(); _gio. addEventListener (FunnelEvent. READY , trace ); _gio. addEventListener (FunnelEvent. READY , _gioReadyHandler); _gio. addEventListener (FunnelErrorEvent.REBOOT_ERROR, trace ); _gio. addEventListener (FunnelErrorEvent.CONFIGURATION_ERROR, trace ); _gio. addEventListener (FunnelErrorEvent. ERROR , trace ); } private function _gioReadyHandler(e:FunnelEvent): void { _gio.digitalOutput(0). value = 0; _timer = new Timer (1000, 0); _timer. addEventListener ( TimerEvent.TIMER ,_timerHandler); _timer. start (); } private function _timerHandler(e: TimerEvent ): void { var urlLoader: URLLoader = new URLLoader (); urlLoader. addEventListener ( Event.COMPLETE , _completeHandler); urlLoader. load ( new URLRequest ( &quot;http://www.yourserver.com/getStatus.php?&quot; + Math.random ())); } private function _completeHandler(e: Event ): void { var status: Number = Number (URLLoader(e. target ).data); trace ( &quot;status : &quot; + status); if (status == 1) { _gio.digitalOutput(0). value = 1; } } } }
  • 15. Flash から PHP にアクセス ActionScript 3.0
  • 16. public class Pochitto extends MovieClip { private var _timer: Timer ; public function Pochitto() { _gio = new Gainer(); _gio. addEventListener (FunnelEvent. READY , _gioReadyHandler); } private function _gioReadyHandler(e:FunnelEvent): void { _gio.digitalOutput(0). value = 0; _timer = new Timer (1000, 0); _timer. addEventListener ( TimerEvent.TIMER ,_timerHandler); _timer. start (); } private function _timerHandler(e: TimerEvent ): void { var urlLoader: URLLoader = new URLLoader (); urlLoader. addEventListener ( Event.COMPLETE , _completeHandler); // キャッシュ対策のため、パラメタにランダムな値を入れる urlLoader. load ( new URLRequest ( &quot;http://www.yourserver.com/getStatus.php?&quot; + Math.random ())); } private function _completeHandler(e: Event ): void { var status: Number = Number (URLLoader(e. target ).data); if (status == 1) { _gio.digitalOutput(0). value = 1; } } }
  • 17. Flash からアクセスする PHP <?php // 読み込み $status = 0; $fp = fopen( &quot;status.dat&quot; , &quot;r&quot; ); while ( $line = fgets( $fp )) { $status = $line ; } fclose( $fp ); // ファイルをリセット $fp = fopen( &quot;status.dat&quot; , &quot;w&quot; ); fwrite( $fp , &quot;0&quot; ); fclose( $fp ); echo $status ; ?>
  • 19. package { import funnel.*; public class Pochitto extends MovieClip { private const _DT: Number = 1000;//1 秒 (1000 ミリ秒毎 ) private const STATUS_URL: String = &quot;http://www.yourserver.com/getStatus.php&quot; ; private var _timer: Timer ; private var _gio:Gainer; private const _D_OUT_1: int = 12; // コンストラクター public function Pochitto() { // インスタンス化 _gio = new Gainer(); _gio. addEventListener (FunnelEvent. READY , trace ); _gio. addEventListener (FunnelEvent. READY , _gioReadyHandler); _gio. addEventListener (FunnelErrorEvent.REBOOT_ERROR, trace ); _gio. addEventListener (FunnelErrorEvent.CONFIGURATION_ERROR, trace ); _gio. addEventListener (FunnelErrorEvent. ERROR , trace ); } // 準備ができたら実行 private function _gioReadyHandler(e:FunnelEvent): void { _gio.digitalOutput(0). value = 0; _timer = new Timer (_DT, 0); _timer. addEventListener ( TimerEvent.TIMER ,_timerHandler); _timer. start (); } } }
  • 21. Gainer に命令 // 読み込みコンプリートハンドラー private function _completeHandler(e: Event ): void { var status: Number = Number (URLLoader(e. target ).data); trace ( &quot;status : &quot; + status); if (status == 1) { _gio.digitalOutput(0). value = 1; } }