MESH SDK でタグを作ってみた
アプリ開発イベント~プログラミングが君の未来を拓く!!~というイベントに、お手伝いとして参加しています。お手伝いなので、アイデア出しとか実装とかで困ってる人の手助けをするのがこの土日の過ごし方なのですが、空いた時間で少し遊んでいます。
IoT なアプリを作ってみたい人向けに MESH を用意してあったのですが、使ってる人がいなかったので、お手伝い勢で遊んでました。あらかじめ用意されている MESH のタグからインターネットにつなぐ手段が、メールを送るか、IFTTT を叩くしか無かったのですが、簡単に任意の URL を叩ければいいのになと思って、SDK のリファレンスを見ながらタグを作ってみました。
タイトルとか説明文は適当に。
任意の URL を指定するためのプロパティをひとつ作ります。Input Connector はひとつ作ってありますが、なぜ作ったか覚えてません。とりあえず押しただけだったかも。
コードは天気予報のサンプルを参考にして Execute のところにこれだけ書きました。
- プロパティで設定した url は
properties.url
で参照する。 - いったん pause で返して、非同期処理が終わった後に
callbackSuccess
で continue を返す。
ajax ({ url : properties.url, type : "GET", timeout: 5000, success : function ( contents ) { callbackSuccess( { resultType : "continue" } ); }, error : function ( request, errorMessage ) { log("GET URL : ERROR"); callbackSuccess( { resultType : "continue" } ); } }); return { resultType : "pause" };
これをスマホ側の MESH のアプリで読み込むと、こんな感じで配置できます。試しに動きタグから自作のタグにつないで、タグを横向きにしたら URL を叩くことができました!
MESH にふくもく会タグを追加して任意の URL を叩くことに成功した。JavaScript で書けると知ってワクワクしてるぞ #ふくもく会 pic.twitter.com/xNpVz88pB6
— りちゃ (@rch850) 2016年8月20日
今回は URL に GET リクエスト出して、結果は気にせず continue するだけでしたが、結果に応じて Output Connector に何かだしてあげれば、もっと MESH らしい動きをしてくれそうです。
TESLA TEST DRIVE for GEEK に参加してきた
@shao1555さんが個人で不定期に開催している TESLA Model S の試乗会 "TESLA TEST DRIVE for GEEK" に参加してきました。
TESLA TEST DRIVE @ #NT金沢 、第2セット無事終了! ありがとうございます #NT金沢テスラ試乗 pic.twitter.com/TOpk5oSKZA
— Sho Sawada (shao) (@shao1555) 2016年7月17日
りちゃ @rch850 運転中 #NT金沢テスラ試乗 pic.twitter.com/XtIYOnTmuP
— 湯村 翼@7/16-18 NT金沢 (@yumu19) 2016年7月17日
「前の車に追従した自動停車、発進を体験してもらいたいんですが……青ばっかりですね」
— りちゃ @ #sesfukui (@rch850) 2016年7月17日
「あそこの信号赤ですね!……あー、青になっちゃった」
「こんなに赤信号が楽しみなの人生初めてですよ」#NT金沢 #NT金沢テスラ試乗
加速と減速
EV 自体を運転するのが初めてだったのですが、まず加速の滑らかさというか、反応のよさに驚きました。最初 shao さんの運転で加速してもらったのですが、飛行機が離陸する時みたいに体がシートに押し付けられて、あっという間に法定速度でした。高速での合流も、踏んでしまうとあっという間に加速して、後方確認してる余裕がない感じです。自分が運転しているときは、幸い(?)前に軽自動車がいたので、あまり加速せずに合流しましたが、一緒の回で試乗していた @yumu19 が合流した時は、すごいすごい言ってる間にすぐ 100km/h に達してました。今思えば、なんで軽自動車が遠くに去るまで待たなかったんだろうと後悔してます。
加速についてはすごいすごいしか言葉が出ない小並感だったのですが、減速するほうは興味深いところがありました。まず、回生ブレーキがとにかく効きます。青信号で右左折する機会が何度かあったのですが、アクセルから足を離すと、それだけで右左折に十分な速度までスピードが落ちます。なのでブレーキを踏まなくても右左折できてしまいます。場合によっては加速する必要があるんじゃないかと思えるぐらい。
ブレーキを踏まずに右左折するなんて、後続の車からしたら危ないんじゃないか?と思えますが、減速の具合を見て自動的にブレーキランプが点くようになっているそうです。クリープ現象やステアリングの抵抗についても、ソフトウェア的に再現、調整しているとのことで、普通の車とは、普通の運転とは何かを考えさせられます。
自動運転
自動運転については、運転手が考えながらやっていることを、うまくアシストしたり、肩代わりしてくれているな、という感想です。これによって、運転に関するストレスが軽減されて、頭や足が疲れにくくなるんじゃないかと思います。
前車の追従については、巡航、停車、発進どのシーンでもほとんどやることありませんでした。自分で運転するときは、前車との距離感に気を使いながら、ブレーキやアクセルを細かく調整するわけですが、その必要がないのはとても楽でした。車線変更はウインカーの上げ下ろしだけ。タイミングを見計らって車線変更を開始してくれるので、こちらもまた楽でした。
ソフトウェア
現状の Model S は、駐車機能が完全でなかったり、信号を見た運転ができなかったりするのですが、これらの機能は内蔵された SIM や WiFi を使って OTA でアップデートされていくとのことです。普通は、一度車を買ったら次を買うまで大きな変化が無い日々を過ごすことになりますが、それに比べると楽しみがとても多くてうらやましく思いました。故障するパーツもガソリン車に比べれば少ないようなので、初期投資はかなりかかりますが、長い間楽しめる車のようです。
また、運転席のメーターなどの表示が全て液晶で、これもアップデート次第でデザインが変わったりして楽しめるんでしょうね、という話をしたら、実際にアップデートされていたそうです。ここに好きな画像を設定できるとしたら、自分含めて一部の人にはとんでもない付加価値だと思うんですけど。ちなみに中身は Ubuntu
他にも、サモンという機能でスマホアプリから車を操作できてしまうなど、Model S というハードウェアを、ソフトウェアで柔軟に制御できるという事がよく分かりました。ソフトを書く側の人間としては、こんなことが可能になってきたという事にただただ高まるばかりです。
ちょっと気になって採用情報の中から、IT エンジニアの採用を見てみたら、こんなラインナップでした。
仕事の内容も、
- Angular2, TypeScript, JavaScript, HTML5, CSS3 でのフロントエンド開発
- CI, 自動テスト, ビルド自動化, デプロイ, リリース管理
- ミッションクリティカルな iOS, Android アプリケーションを Xamarin で作る
などなど、どれも面白そう!テスラで働いて Model S 乗り回せたらいいなぁ。
以上、TESLA TEST DRIVE for GEEK の感想と、やや脱線した話題でした。主催の shao さん、貴重な経験をさせていただきありがとうございました!こんなイベントがあるよと誘ってくれた @yumu19 もありがとう!
Amazon Machine Learning vs. サザエさん
ずーっと使ってこなかった Amazon Machine Learning なんですが、そろそろ何ができるか知っておきたいと思い、触ってみました。
チュートリアルを流してみたら、CSV を与えると予測ができるようになるんだなということが分かりました。さてどういうデータを与えようかなと考えてたらピンときたので、サザエさんと対決させることにしました。
が、これ既出でしたね。だいたい Developer.IO さんの記事と同じことをしました。
Amazon Machine Learningでサザエさんじゃんけんを予測してみた | Developers.IO
注意点としては、S3 にアップロードした CSV を指定した次の Schema を指定するときにそのままホイホイ進むと、せっかく CSV の先頭行にいれたカラム名が無視されてしまう、というか、データとして入ってしまうということです。
h1,h2,h3,h4,h5,y パー,グー,パー,チョキ,グー,パー パー,パー,グー,パー,チョキ,グー チョキ,パー,パー,グー,パー,チョキ (以下略)
こんな風にカラム名を先頭に入れた場合は、この選択肢の Yes を選びましょう。どうもデフォルトでは No になっているっぽいので、最初はこれを見逃して予測結果に y という謎のデータが入ってしまいました。
ちょこっと CSV 作って予測ができる Amazon Machine Learning はなかなか面白いです。しかも安い!
料金 - Amazon Machine Learning | AWS
学習にかかった時間1時間あたり 0.42 USD、予測が100件で 0.01 USD 程度です。安い!ソシャゲのイベントボーダー予測ぐらいには使えそうです。
Facebookの地図に出ている建物の話
Facebook で表示されている OSM の地図に建物を出すには、エリアとして登録しなきゃいけないんじゃないだろうか。という話。
Facebook で、新しい魚屋ができたという投稿を見て、どこにあるのか見てみたら、いくつかのことに気づいた。
ひとつは、地図に OpenStreetMap (OSM) を使っていること。もうひとつは、近くの建物の情報が妙に少ないことだ。病院や薬局、郵便局、そしてビデオCITY文京店が表示されている。ちなみにゲンキーは福井とかではメジャーなドラッグストアです。
これは単に福井で OSM に載ってるデータが少ないからじゃないの?と思って同じ場所を OSM で見てみたら、結構情報があった。
Facebook の地図で病院や薬局、郵便局が表示されているのは、比較的重要な建物だからだろう。にしてもなぜレンタルビデオショップが出ているのか。これを出すならコンビニとか銀行とかも出していいんじゃないか。
もうちょっと詳しい理由が知りたいと思って、OSM で編集画面を開いてみたら、違いがすぐに分かった。
左側の福邦銀行は、ポイントとして、右側のビデオCITY文京店は、四角いエリアとして記録されていた。おそらく Facebook で表示している地図では、エリアとして記録されている情報を表示しているんだろう。
検証のため、ポイントとして記録されていたファミマを削除して、同じ場所に作られていた無名のエリアをファミマにしてみた。そのうち Facebook の地図でファミマが表示されるようになったら成功ってことで。
沼津においでよ
沼津においでよ、ラブライブ!サンシャイン!!
静岡県沼津市の海辺の町、内浦にある私立浦の星女学院。
駿河湾のかたすみにある小さな高校で 2年生の高海千歌を中心とした9人の少女たちが、大きな夢を抱いて立ち上がる。
沼津においでよ、ビールがうまい
ベアード・ブルーイングは、 2000年にブライアン・ベアード&さゆり夫婦が沼津に設立した合資会社。 ビールへの深い愛情と、ビール醸造の歴史、伝統、文化に対する 尊敬の念から生まれた家族経営の会社である。
沼津においでよ、魚がうまい
沼津内浦漁協直営いけすやの活アジ丼
沼津においでよ、水族館が3つもある
Aqours 2nd シングル「恋になりたいAQUARIUM」の舞台は伊豆・三津シーパラダイス
恋になりたい AQUARIUM のドラマパートで2年生が行ってるのがあわしまマリンパーク
※最初、あわしまマリンパークには水族館がないと思ってて2つと書いてましたが、5/1に修正しました
- アーティスト: Aqours,伊波杏樹,逢田梨香子,諏訪ななか,小宮有紗,斉藤朱夏,小林愛香,高槻かなこ,鈴木愛奈,降幡愛
- 出版社/メーカー: ランティス
- 発売日: 2016/04/27
- メディア: CD
- この商品を含むブログ (3件) を見る
沼津においでよ、沼津御用邸記念公園
沼津においでよ、いい温泉あるよ
沼津においでよ
Open Street Map に登録したデータのライセンス
μ'sのファイナルライブでもぬけの殻になったので、少しでも回復しようとサンシャインの舞台沼津市のマッピングパーティーに参加してきました。
ゴーゴー沼津は浦の星 pic.twitter.com/87XcaOIYFS
— りちゃ (@rch850) 2016年4月8日
そこで集めたデータの扱いについて「単にデータを OpenStreetMap (OSM) に登録するだけで終わってしまうともったいないかもよ」という話が出たので、調べてみました。
まず、OSM に登録したデータは基本的に Open Database License (ODbL) が適用されるようです。
OpenStreetMap® はオープンデータであり、Open Data Commons Open Database License (ODbL) の下にライセンスされています。 https://www.openstreetmap.org/copyright
OpenStreetMapデータ は Open Database License の下にライセンスされています。 http://wiki.openstreetmap.org/wiki/JA:Legal_FAQ
ODbL そのものについては、ODbL の要約、和訳 に(原文に比べれば)わかりやすく書かれています。
表示や継承といった表現が使われていますが、これらの義務が必要かどうかは ODbL のデータの使いみちによって変わります。OSM のユースケースにいくつかのケースが書いてあります。それらは大きく2つの概念で言い表せます。
- 制作著作物:作成する際にOSMを利用して公開した著作物。「表示」が必要となる
- 派生データベース:何らかの方法でOSMのデータを基にしている、または派生したデータを含んでいるデータセット。「継承」が必要となる。
アプリのようなものを作る分には「表示」だけで済みますが、データセットを作ろうとすると「継承」しなければなりません。ここに「もったいない」があります。
Google マップに載っていないデータを集めるためにマッピングパーティーに参加しているという人もいると思います。集めたデータが Google マップに載るといいですよね。でも、集めたデータのライセンスが ODbL になると、おそらく Google マップには載りません。
Google が ODbL のデータを Google マップに表示するためには、Google が持っているデータベースに ODbL のデータを組み込むことになると考えられます。そうなると、組み合わさったデータが「派生データベース」になり、データベースを公開する必要が出てきます。Google などがデータベースを公開するかというと「???」なわけです。
ではどうすればいいかというと、データを別の場所でゆるいライセンス、例えば CC0 で公開するという手があります。 CC0 などのライセンスで公開しておけば、Google などは何の抵抗もなくそのデータを取り込めます。
まとめ:OpenStreetMap にデータを登録すれば OpenStreetMap は充実しますが、別途 CC0 などで公開しておくことでデータの活用範囲が広がります。