Upload
daisuke-imai
View
358
Download
4
Embed Size (px)
Citation preview
2015/03/12 CYBIRD デブコミュ
こんばんは!
社外から飛び入り参加の 「今井」です
っていうか、お前だれよ?
今井 大介 IMAI, Daisuke 1972/07/17生まれ42歳
BEENOS株式会社 執行役員(技術担当) ・グループ内のIT基盤、セキュリティ基盤の管理 ・新規事業立ち上げ ・エンジニアリング&デザイン ・EC/決済
1997~ 【新卒】株式会社ベネッセコーポレーション 2000~ 【起業】ギガフロップス株式会社 携帯向けのポータルサイトの立ち上げ、副社長兼CTO
2003~ 【バイアウト】株式会社サイバード 事業並びに会社の売却→技術部マネージャ
2005~ 【Uターン】石見ケーブルビジョン株式会社 CATV事業の立ち上げでインターネット側の担当
2010~ 株式会社ネットプライスドットコム →BEENOS株式会社(社名変更:現職)
簡単に言うと、 OBのエンジニアです。
【得意な領域】 インフラ>サーバーサイド>
Webフロントエンド>NativeApp 言語はPHPが一番長い
【好きな技術】 AWS(OpsWorks、S3)
BEENOS株式会社
1999年「ネットプライス」として創業。 モバイルネット通販の第一人者として成長。 2004年マザーズ上場。 2007年より持株会社、グループ経営体制に。 2014年社名を「BEENOS株式会社」に。
クロスボーダー(越境)ECを強みとした企業グループ。海外から日本の商品を買いたい人に向け、また国内で海外の商品を買いたい人に向けたサービスなどを展開。 また、USでは30を超えるスタートアップに投資、アジアではECマーケットプレイスや決済を手がけるスタートアップへの投資・育成にも取り組んでいる。
無茶ばかりしています。
「新規事業を始めたい、 できれば1ヶ月以内に」
「エンジニアいないけど」
「大規模アクセスが想定される 通販サイトたちあげたい、
一ヶ月で」
「エンジニアいないけど」
なのでエンジニアとデザイナの ハンズオンチーム作ってました
最近の興味
「ロボット」や「IoT」で 一緒に遊ぶ人が増得ると楽しい
「IoT気になるよね」 じゃ、ハードウェアで
遊んでみればいいじゃない。
BEENOS Inc. 執行役員(技術担当) 今井大介
ハードウェアの印象
電気回路とかよくわからないし アセンブラとか割り込みとか? 特殊な開発環境と言語?
感電したりするんじゃないの? ハードウェアが趣味とかモテなくね?
「とにかく敷居高い」
そんなことない。
例えばArduino
無料の専用IDE(Win/Mac/Linux) C言語ライクな専用言語
簡易にハードを扱うライブラリ 回路わからなくてもコードで何とか 「とにかく敷居は下がった」
それでも感じる超えられない壁
ならば、ハードウェア部分は 隠匿してしまえばいい
お手本にするもの
【LeapMotionとは】 空中の手のジェスチャーでパソコンを操作できるUSBデバイス。マイノリティ・リポートか!みたいな感じで。C++やJavaScriptなどから制御可能。
leap.jsって 結構面白い仕組み
C++で動かす場合の仕組み
JavaScriptを使う場合
なんと、WebSocket Server
デバイス制御コードはシンプルなプログラムにして、 WebSocket経由でJavaScriptからアクセスさせれば、
普段から書き慣れているJavaScriptで 色々なアプリケーション作れるじゃないか!
【使う機材】 ・RaspberryPi A+(約3,500円) ・3軸加速度+ジャイロセンサー(約500円)
【RaspberryPi】 DebianベースのLinux。/bin/shでも、pythonでもrubyでも好きな言語でハードウェア制御コードが書ける。もちろん、LAMP環境なども作れる。
それなら書けるよね?
【pythonでデバイス制御】 ・pythonからRPiのピンを利用 ・センサーとはI2Cというシリアル通信 電源2本と信号線2本の4本だけのシンプルな接続で利用可能。最近デバイスがどんどん増えている。
・ごくごく単純な数値変換だけは実施
【WebSocket Server】 ・python+Tornadoで簡単に実装 ・cross originのアクセスの許容 ・thread切って、デバイスから数値取得 ・数値データをJSONでpush
{ "gyro": { "x": -605, "y": 16, "z": -114 }, "accelerometer": { "x": -840, "y": -20, "z": 15736 }, "rotation": { "x": -0.07271770519639839, "y": 3.055590994479732 } }
投げられるJSON
【JavaScript側の実装】 ・最近のブラウザならWebSocket対応 ・Serverに接続していれば、pushされればws.onmessageイベントハンドラが呼び出される。 ・JSONデータをパースしてあげればいい
(DEMO)
<html> <head> <title></title> <script language="javascript"> var ws = new WebSocket("ws://192.168.13.101:8080/ws"); ws.onopen = function() { ws.send("Hello"); }; ws.onmessage = function (evt) { try { var obj = JSON.parse(evt.data); document.getElementById('gyro_x').innerHTML = obj["gyro"]["x"]; document.getElementById('gyro_y').innerHTML = obj["gyro"]["y"]; document.getElementById('gyro_z').innerHTML = obj["gyro"]["z"]; document.getElementById('accel_x').innerHTML = obj["accelerometer"]["x"]; document.getElementById('accel_y').innerHTML = obj["accelerometer"]["y"]; document.getElementById('accel_z').innerHTML = obj["accelerometer"]["z"]; document.getElementById('rotate_x').innerHTML = obj["rotation"]["x"]; document.getElementById('rotate_y').innerHTML = obj["rotation"]["y"]; } catch(e) { } }; </script> </head> <body> <div id="sensor_data"> gyro_x:<div id="gyro_x"></div><br /> gyro_y:<div id="gyro_y"></div><br /> gyro_z:<div id="gyro_z"></div><br /> accel_x:<div id="accel_x"></div><br /> accel_y:<div id="accel_y"></div><br /> accel_z:<div id="accel_z"></div><br /> rotate_x:<div id="rotate_x"></div><br /> rotate_y:<div id="rotate_y"></div><br /> </body> </html>
超シンプル
(DEMO2)
数値として扱えるなら、 いろんなことができる。
自分の得意分野に持ち込め
ネットと連携するデバイス
ウェアラブルデバイス
色んなものが作れる。 もっともっとhackしよう。
ご清聴 ありがとうございました。