Soumettre la recherche
Mettre en ligne
PIC RoR Heroku
•
1 j'aime
•
915 vues
M
mgwsuzuki
Suivre
2012/10/26 Un-Conference
Lire moins
Lire la suite
Signaler
Partager
Signaler
Partager
1 sur 17
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
about Tcpreplay
about Tcpreplay
@ otsuka752
hpingで作るパケット
hpingで作るパケット
Takaaki Hoyo
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
Yasuhiro Mawarimichi
Apache James - local mail server
Apache James - local mail server
Tozo Tanaka
Varnish
Varnish
Ayako Hatori
Stuart attacking http2 implementations truefinal-jp
Stuart attacking http2 implementations truefinal-jp
PacSecJP
Webサーバの性能測定
Webサーバの性能測定
Ryo Maruyama
Recommandé
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
about Tcpreplay
about Tcpreplay
@ otsuka752
hpingで作るパケット
hpingで作るパケット
Takaaki Hoyo
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
Yasuhiro Mawarimichi
Apache James - local mail server
Apache James - local mail server
Tozo Tanaka
Varnish
Varnish
Ayako Hatori
Stuart attacking http2 implementations truefinal-jp
Stuart attacking http2 implementations truefinal-jp
PacSecJP
Webサーバの性能測定
Webサーバの性能測定
Ryo Maruyama
HTTP2入門
HTTP2入門
Sota Sugiura
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
Takashi Takizawa
Redis速習会@Wantedly
Redis速習会@Wantedly
Yoshinori Kawasaki
Redisととあるシステム
Redisととあるシステム
Takehiro Torigaki
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
Takaaki Hoyo
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
do_aki
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
Jxck Jxck
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
Kazuho Oku
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Panda Yamaki
GGEasyMonitor技術情報
GGEasyMonitor技術情報
KitASP_Corporation
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記
96smcln
WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?
Masanori Oobayashi
NanoStrand
NanoStrand
Masashi Umezawa
高速化のポイント
高速化のポイント
ryos36
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
azumakuniyuki 🐈
本番環境で使いたいPHP
本番環境で使いたいPHP
Takuya Sato
H2O - making HTTP better
H2O - making HTTP better
Kazuho Oku
今週やった事
今週やった事
Aira Sakajiri
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめ
Panda Yamaki
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Panda Yamaki
Heartbleedチェッカの改善(不正アクセスしないような改造)
Heartbleedチェッカの改善(不正アクセスしないような改造)
Kensuke Nezu
Contenu connexe
Tendances
HTTP2入門
HTTP2入門
Sota Sugiura
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
Takashi Takizawa
Redis速習会@Wantedly
Redis速習会@Wantedly
Yoshinori Kawasaki
Redisととあるシステム
Redisととあるシステム
Takehiro Torigaki
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
Takaaki Hoyo
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
do_aki
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
Jxck Jxck
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
Kazuho Oku
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Panda Yamaki
GGEasyMonitor技術情報
GGEasyMonitor技術情報
KitASP_Corporation
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記
96smcln
WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?
Masanori Oobayashi
NanoStrand
NanoStrand
Masashi Umezawa
高速化のポイント
高速化のポイント
ryos36
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
azumakuniyuki 🐈
本番環境で使いたいPHP
本番環境で使いたいPHP
Takuya Sato
H2O - making HTTP better
H2O - making HTTP better
Kazuho Oku
今週やった事
今週やった事
Aira Sakajiri
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめ
Panda Yamaki
Tendances
(20)
HTTP2入門
HTTP2入門
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
Redis速習会@Wantedly
Redis速習会@Wantedly
Redisととあるシステム
Redisととあるシステム
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
CpawCTF 勉強会 Network
CpawCTF 勉強会 Network
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみた
HTTP2 時代の Web - web over http2
HTTP2 時代の Web - web over http2
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
Hokkaido.cap#4 ケーススタディ(ネットワークの遅延と戦う:前編)
GGEasyMonitor技術情報
GGEasyMonitor技術情報
Raspberry Pi 2 誤自宅サーバー移行日記
Raspberry Pi 2 誤自宅サーバー移行日記
WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?
NanoStrand
NanoStrand
高速化のポイント
高速化のポイント
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
本番環境で使いたいPHP
本番環境で使いたいPHP
H2O - making HTTP better
H2O - making HTTP better
今週やった事
今週やった事
Hokkaido.cap#10 実践パケット解析まとめ
Hokkaido.cap#10 実践パケット解析まとめ
Similaire à PIC RoR Heroku
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Panda Yamaki
Heartbleedチェッカの改善(不正アクセスしないような改造)
Heartbleedチェッカの改善(不正アクセスしないような改造)
Kensuke Nezu
HTTP入門
HTTP入門
Sota Sugiura
websocket-survery
websocket-survery
hogemaru_
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
Kei Mikage
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
Masashi Shibata
コンピューターネットワーク入門
コンピューターネットワーク入門
Yusuke Miyazaki
Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
Hideyuki Takeuchi
Web基礎
Web基礎
stx_kata
ゆるかわPhp
ゆるかわPhp
Ryota Mochizuki
Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo
yuki-f
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
Ryo Ito
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
h2so5
Soft layer network概要_jslug向け
Soft layer network概要_jslug向け
Hideaki Tokida
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
You_Kinjoh
Httpを振り返ってみる
Httpを振り返ってみる
galluda
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
Shotaro Uchida
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
信之 岩永
WebSocketでリアルタイム通信 (第13回学生LT資料)
WebSocketでリアルタイム通信 (第13回学生LT資料)
stmkza
HTTP を肌で感じる
HTTP を肌で感じる
Kazuya Kohara
Similaire à PIC RoR Heroku
(20)
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Hokkaido.cap #osc11do Wiresharkを使いこなそう!
Heartbleedチェッカの改善(不正アクセスしないような改造)
Heartbleedチェッカの改善(不正アクセスしないような改造)
HTTP入門
HTTP入門
websocket-survery
websocket-survery
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
Webフレームワークを作ってる話 #osakapy
Webフレームワークを作ってる話 #osakapy
コンピューターネットワーク入門
コンピューターネットワーク入門
Web時代の大富豪的プログラミングのススメ
Web時代の大富豪的プログラミングのススメ
Web基礎
Web基礎
ゆるかわPhp
ゆるかわPhp
Status 425 HTTP/Tokyo
Status 425 HTTP/Tokyo
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
DXライブラリでMMO作ったよ!
DXライブラリでMMO作ったよ!
Soft layer network概要_jslug向け
Soft layer network概要_jslug向け
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
Httpを振り返ってみる
Httpを振り返ってみる
20apr2012 kernelvm7-main
20apr2012 kernelvm7-main
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
WebSocketでリアルタイム通信 (第13回学生LT資料)
WebSocketでリアルタイム通信 (第13回学生LT資料)
HTTP を肌で感じる
HTTP を肌で感じる
Plus de mgwsuzuki
80年代ゲーム機の技術をFPGAに実装してみた
80年代ゲーム機の技術をFPGAに実装してみた
mgwsuzuki
Hardwre Sprite controled by mruby
Hardwre Sprite controled by mruby
mgwsuzuki
レーザーカッターを使おう
レーザーカッターを使おう
mgwsuzuki
3Dプリンタを使おう - 20131110
3Dプリンタを使おう - 20131110
mgwsuzuki
最近一年間で作ったもの
最近一年間で作ったもの
mgwsuzuki
カッティングプロッタの使い方
カッティングプロッタの使い方
mgwsuzuki
3 dプリンタの使い方
3 dプリンタの使い方
mgwsuzuki
IR remocon
IR remocon
mgwsuzuki
Plus de mgwsuzuki
(8)
80年代ゲーム機の技術をFPGAに実装してみた
80年代ゲーム機の技術をFPGAに実装してみた
Hardwre Sprite controled by mruby
Hardwre Sprite controled by mruby
レーザーカッターを使おう
レーザーカッターを使おう
3Dプリンタを使おう - 20131110
3Dプリンタを使おう - 20131110
最近一年間で作ったもの
最近一年間で作ったもの
カッティングプロッタの使い方
カッティングプロッタの使い方
3 dプリンタの使い方
3 dプリンタの使い方
IR remocon
IR remocon
PIC RoR Heroku
1.
PICとRoR・herokuの無茶な関係
@mgwsuzuki
2.
自己紹介 • 本職はLSI設計とかデジタル無線通信とか組
み込みソフト開発とか • 小さいマイコンとか電子部品が好き • Low Layer好き、というか好き
3.
PICマイコン • 32bit 80MHz
CPU • 128KB Flash Memory, 32KB RAM – MBじゃない、KB • OS無し
4.
マイコンとセンサ • 小さいマイコンに興味を持つと大体センサに手を出す • 今回は気圧センサ
5.
ネットワーク?? • これは?? • 10Mbpsのイーサネット
6.
PICマイコン • 32bit 80MHz
CPU • 128KB Flash Memory, 32KB RAM – MBじゃない、KB • OS無し • でもEthernetでDHCP, DNS, TCP, UDP, Webサーバまでできる – 製造メーカーがライブラリを無償提供
7.
妄想 •
気圧センサで取得したデータを • Ethernet使って • 今はやりのRuby on Railsで作ったサーバに • PCを使わずにPICだけで • 自動的に投稿してみようじゃないか
8.
困難 • PICでjavaやrubyが動くわけじゃない • 文字列処理に便利な正規表現があるわけ
じゃない • HTTPライブラリがあるわけじゃない • 要するに無いないづくしorz
9.
楽観 •
TCPあれば80番ポート叩けばいいよね • HTTPなんて”GETなんちゃら”って送ればいいよね • セッションもcookieをオウム返しすればいいよね • authenticity_tokenだってオウム返しでしょ? • BASIC認証だって(ry • なんとかなるよね、きっと
10.
とりあえず現物 • senslogs.herokuapp.com/senslogs
11.
Ruby on Rails •
Scaffoldingでひな形作って 改造 • BASIC認証追加 • データがPOSTされたとき の時間を記録する • Herokuへdeploy
12.
HTTP GET GET /senslogs/new
HTTP/1.0 <- PICから送信 HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 … <- 途中省略 Set-Cookie: _sensor_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWE2MzJmMGVhNDkzNGNjZTI0Z WZlYzZiYWRkOTI2NjRjBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMUpmT1hzOHZJa1RDSHdoZDVB bC9lQTlWRkRkRHJScVdOcE5aSDRjc0pUMjA9BjsARg%3D%3D-- 7f1dc20e289a0a5bc0cb5dbe1bc2522cee8fb0bd; path=/; HttpOnly … <form accept-charset="UTF-8" action="/senslogs" class="new_senslog" id="new_senslog" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="nFgUyFamqODtURZ0W81UcofMPDh1Esx1hurNDC/Jt04=" /></div> • GETで得た文字列をどうにかして解析しないといけない • そのための文字列操作関数を作る
13.
作ったライブラリ
• 可変長の文字列を扱 う文字列クラス • いわゆるString
14.
作ったライブラリ
• HTTPサーバと会話する ためのクラス
15.
受信と送信 Content-Ty
文字列が細切れになって時間差で到着する pe: text/h これを連結して1つの文字列に直す tml; chars set=utf-8 送信はその逆を行う Content-Type: text/html; charset=utf-8
16.
HTTP POST POST
/senslogs HTTP/1.1 Host: senslogs.herokuapp.com これが無いと接続できなかった Connection: close Cookie: _sensor_session=BAh7B… GETで得たCookieを返す Authorization: Basic XXXXXXXX BASIC認証の文字列 Content-Length: XXX BODYの文字列長 utf8=%E2%9C%93&authenticity_token=8r3AJu9wnUoZRL5iRG%2Ffc3TLdYRVJPcPO86PCMa eZE0%3D&senslog%5Btempature%5D=23&senslog%5Bpressure%5D=429&commit=Create+ Senslog • POSTするためにはGETが必要 – Cookie, Authenticity_token • HTTPサーバに受け付けられるか見ながらヘッダを追加していった • BASIC認証のヘッダはとにかく付けておけばo.k.
17.
まとめ • ネタとして • 2W以下の低消費電力で動作する •
外部のサーバに指令を書いておけば… – スマホでエアコンをオンすることだって可能 • 小さなマイコンでもネットにつながる • 最近は無線LANボードも安くなった • Low Layerは楽しいのでオイデオイデ
Télécharger maintenant