投稿

IoTButton Go Firebaseで「イラッと」をロギングする。 #golang #lambda #IoTButton

イメージ
Buildersconにプロポーザルを上げています。よろしくお願いします。(挨拶)

ふと、自分が一日にどのくらい「イラッ」としているのかを計測したくなりました。みなさんもなりますよね?。エンジニアとしては余裕が大切ですし、イライラしてるのを周りに撒き散らすのも良くないですね。というわけで、まずは自分のイラつきを可視化するためにログを取ることにしました。

ちょうどよくAmazon IoT Buttonも出たことですし、ボタンを押したら、日付とボタン押しの種類(single double longが取れます。)をFirebaseに雑に投げておいて、あとから可視化できるようにしておきましょう。レシピは以下の通り
GolangAWS LambdaAWS IoT ButtonAWS SAM LOCALCloud Firestore https://firebase.google.com/docs/firestore/quickstart IoTButtonの設定をする。Google PlayiTunes アプリがあるから楽ですね。ちなみにハマった罠としては2.4GHz帯じゃないと使えないので注意。会社でのイラッと計測にいきなり暗雲が立ち込める。 local環境を構築する Lambdaなので毎回書いてアップして、修正して…、やりたくないのでおとなしくlocalに環境構築します。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/sam-cli-requirements.html

以前、0.2あたりのcliをインストールしていた方はまず、npm uninstallを実行してからインストールしましょう。nodeからpythonになったんですかね?

コードを書きましょうhttps://github.com/mogeta/Iratto_button



コード内に環境依存のデータなどを置きたくないので環境変数をセットする。
今回は使っていないですが、Slackのtokenなどをセットするのに良いと思います。(さらにKMSなどと組み合わせるとより良いですね。)
template.yamlとsam_env.jsonに設定を記述します。で、sam localを実行する際にsam_env.jsonを指定すると環境変数が置き換わります。コマンドでの…

トークの種にJiNS-MEME買った #builderscon

イメージ
なぜエンジニアはパフォーマンス計測しないのかというお題目で、buildersconにプロポーザルを提出しています。よろしくおねがいします。というか、タイトルは釣りで、正確にはなぜ、エンジニア「の」パフォーマンスを計測をしないのか。が正しいですね。某人から「強い言葉を使え!」というご指摘を頂いてこの内容になっています。

本題 buildersconで測定する内容を一つでも多くしようと思ってJiNS-MEMEを購入しました。
これはメガネ自体に6軸センサーなどがついており、眼球運動の計測や姿勢の調査などができる代物となっております。microUSBで充電、12時間〜24時間電池が持つそうで、使うアプリによって測定内容が変わるそうです。ちなみに当たり前ですが、電池が切れてもメガネ自体は使うことができますよ。
 重さが気になるかなーと思ったのですが、案外慣れで普段使いとしても十分耐えられるメガネになっています。ちなみに、レンズ込で5万弱という形になっており、俺は本気だ。ということをここでお伝えしておきます。

ボタンがあって、bluetooth接続に利用します。

充電用のUSBが隠れてるところ

今回はハーフリムタイプを購入しました。

良い点 いまのところ、面白いデータが取れているな。という所感です。プログラムや本を読んでるとき、ゲームをしているときなどは集中しているというデータが取れますし、お酒を飲んで本を読んでみると、全然集中していない。などがわかるようになっています。

悪い点 アプリと連動しなければならないため、メガネ単体ではデータを保持してくれません。自分は主にiPadと連動しているので運動のときなどはちょっと難儀する状態です。

 自分はそこまででもありませんでしたが、店員さんいわく、普通のメガネより、調整できる箇所が少ないため、顔の形によっては痛みを感じたりする可能性があります。シリコンバンドなどもあるので対応していきましょう。



というわけで、数日前からデータを取り始めているので、データがまとまってきたらあらためて報告したいなーと思います。


ちなみに、今日は新垣結衣さんの誕生日ですね。
http://amzn.asia/f0r1wf2

RxPyに入門する

イメージ
RxPyに入門する ブログを書くという行為のリハビリ的記事ではあります。
最近、pythonを触っているのですが以下のような場面があったとします。

イベントが発火して処理Aが終わったら処理B、それが終わったら処理Cをしたい。だけど、B処理の結果が芳しくなかったら破棄してまたイベントを待つ。 と言った挙動をさせたいなーとなった際、ああ、これはリアクティブプログラミングだなと思ったので試してみた次第。
Unity触ってるときにUniRxを触っていたのもある。
# documenthttp://reactivex.io/https://github.com/ReactiveX/RxPYhttps://github.com/ReactiveX/RxPY/blob/develop/notebooks/Getting%20Started.ipynb # Tutorialgistを載せときます。
 サンプルは配列に入ってるデータをまとめて処理して出力する。というパターンが多かったのですが、自分はSubjectから入るほうが理解しやすかったので最初にこのパターンを載せます。
 stream.on_nextで値を送信すると、設定しておいた処理順に従って処理、subscribe(購読)しておいた内容を実行する。という内容です。
  途中でfilterが入っていて、filterに指定した関数がFalseを返却するとその値はsubscribeされません。 ↑のファイルをアップロードしたあとに知ったんだけど、ファイルを直接アップロードすればipynbであげられるんすね。こちらもアップしておこう。
# Rxそのものをいろいろ学ぶhttp://ninjinkun.hatenablog.com/entry/introrxjahttps://qiita.com/toRisouP/items/f6088963037bfda658d3 # この先  後はここから処理を足して行けば良い。throwで失敗した際の処理を記述、ある程度値がたまるまで待機、並列実行等。できることは多い。自分もこの後記事を何個か書きたいなと思っている。やっていきましょう。

# 余談 仮想通貨であるところのモナコインをはじめてみたので投げ銭お待ちしております。
50円で買ったモナコインが2000円になってて軽く引いている。

Google Apps Scriptで作ったWebページでPolymerを使う。

動機
有能だけど、あまり使われてないライブラリを使ってみるかサーバー構築するのはだるい。とりあえずメモ。
方法https://github.com/Download/polymer-cdn
を使えば良い

ページ解説にあるCodepenがそのまま動く様になる。のでそこを足がかりに進めばいいでしょう。
http://codepen.io/StijnDeWitt/pen/EyPyyL
補足https://rawgit.com/ というのを使っているらしい、Github上にあるファイルをCDN的に使うのに有用とのこと。自作のcomponentもアップする際にここを使ってみるか。という印象 コード

Builderscon

8/3〜8/5にbuildersconにいってまいりました。
ここでは、自分が実際に投票した特に印象に残ったものを抜粋して感想を
DeepLearningによるアイドル顔識別を支える技術 
概要スライド
機械学習はデータセットが大変というのはなんとなく聞いていたが…
アイドルの顔認識の話を聞いてそれがどういうことなのかがようやく理解できた。
1人につきラベル付きデータが120枚あればようやく。ということなのでこれは…
技術に驚き、すぎゃーんさんに驚き、笑いもある素晴らしいトークでした。

横山三国志に「うむ」は何コマある?〜マンガ全文検索システムの構築概要スライド
データセットの作り方が工夫にあふれていて非常に良かった。
コマがほとんど四角で取りやすい。という話はなるほど。という感じ
後のバージョンUP版のマスクして取り出すのもかなり高精度で取り出せていた。

こういうのは好きがモチベーションになっている人がおおくてなるほど。という感じ。


行く先々のセッションで、「小さなことをコツコツと」という話を聞いて心が痛くなった。とにかくやっていくという気持ちを出すしかない。

知られざる世界 〜WEB以外のPHP〜
概要
軽快なトークを聞きたいから来た。みたいなところがあるけどさすがである。
このトークばかりは、実際にその凄さを聞きに来ていただきたいとしか言えないw
PHPはしばらく触ってないけど、お、やってみてっもいいかな?みたいな気分になる
いや、ならない。とはいえ、ここ10年くらいでPHPの立場ってすごく良くなってると
感じています。



UnityでSceneやPrefabがコンフリクトした時のUnityYAMLMergeについて

■はじめに
Unityでチーム開発する際ってみんなどうしてるんすか案件の話。
つまりは同じSceneやPrefabを触ったときにコンフリクトとか起きると思うんですけど、どうやってその問題を
解決、もしくは回避してますか?
声かけて同じ物を触らないようにするのか -> 運用でカバーしてもミスは避けられない気がする。git-lfsのロック機能を使うのか -> YAMLを登録するのなんかずれてる感じがしません?
■つまり?
SceneとPrefabの作業が被ってYAMLマージすか死ねますね。

■対策

あるのか?あるらしい、以下
https://docs.unity3d.com/jp/540/Manual/SmartMerge.html

■検証

今回は

Unity 5.5.1p4
SourceTree 2.5.2 (111)
の環境で試しました。

解決済みになってるのにコンフリクトが解決されてなかったりしてつらすぎる。うまく動いてなくね?というわけで調査。

* http://labs.gree.jp/blog/2015/04/13836/
* http://qiita.com/Shaula/items/ebe778c232c30aff46fd
* http://tsubakit1.hateblo.jp/entry/2015/05/14/040852

だいぶ参考にさせてもらったのですが、少なくとも自分の環境(5.5.1p4)では上記だけではうまくいかない模様。特に「auto」というファイルでツールを指定するところがうまく行きません。

フォーラムみたり
https://www.reddit.com/r/Unity3D/comments/39bdq5/how_to_solve_scene_conflicts_with_unitys_smart/

色々触ってみた結果、以下のような挙動をするらしい


gitでマージするSceneやPrefabでコンフリクトが発生する。CLIならgit mergetool。SourceTreeなら外部マージツールで設定したUnityYAMLMergeを起動。マージ作業を行ってくれるどうしても解決できない更新があった場合(同じPrefabの同じパラメータを触った場合)/Applications/Unity/Unity.app/Contents/Too…

FirebaseとUnity

個人で製作するUnityアプリとFirebaseは相性が良いのではないか?という直感があるので
改めて検証していこうと思う。
なんで?
サーバー管理が(自前で用意するよりかは)必要ないライブラリが一通り揃ってるホスティング、認証サービスも使える。AdMobとも親和性があるのでPush通知も行ける。開発環境であればほぼノーコストでOK といった利点があると思う。
欠点として考えられるものParseの二の舞いの可能性RDBとは違ったDB管理の理解CloudFunctionがJavaScriptのみなので苦手な人は大変そう移行を希望するときの選択肢のなさ

ドキュメント

https://firebase.google.com/docs/auth/unity/password-auth?hl=ja