株式会社ガイアックスを退職しました。
株式会社ガイアックスという最近ではソーシャルサポート系で稼いでいる会社を昨日(2014/10/31)退職しました。
(超短期間も含め)在籍していた人で有名な方だと、「Zごろう」さんとか「Xろん」さんとか「Cよんご」さんとか「Aまちゃん」さんとか 最近だとPerl界で超有名な大型フリー素材新人のpapixくんとか、現JPA理事の肥後さんがいたりして なんだかんだエンジニア界隈でも露出している良い会社だと思います。
また最近世間を騒がせている「Mむらい」さんや「TOM」もガイアックス出身です。面白いですね!!
退職した理由
単純にプライベートでやってたプロジェクトがいい感じにノッてきたのでそれに専念したかったからです。
つまり起業が理由です。
ガイアックスのやっている事業ドメインと関係ないプロダクトだったこともあり、 そのへんはまったく後腐れなく送り出してもらえる運びとなりました。
前職について
新卒で入った会社だったのでかなりできないところから育てていただきました。
Webアプリケーションの基本的な部分は内定時代の研修で結構ご迷惑をかけながらも 学ばさせていただいて、なんとか一人でPerlのWebアプリケーションをかけるようになり、 その後の新人研修ではAndroidアプリを一人一つつくれるところまでやりました。
その後はコミュニティサイトをつくったりFacebookアプリをつくったりブログをつくったりiPhoneアプリAndroid、運用改善ツールをめっちゃ導入したりしてました。
またマインド的にエンジニアも数字が見れないとだめだということで、 社長自らの経営講座を実施してくれたり、他の営業の方々からビジネスの話を聞く機会もありました。
そんな感じで起業できる人材を多く育てていて、 最後の方は新規事業に従事していたのですが、 エンジニアしながら営業をやったりマーケティングにも携わることができました。
人によるかもしれませんが、エンジニアに集中したい同期はそのままエンジニア専任になっていたし、 自分みたいに事業の営業も経験するなど
「その人自身がいきたい方向へ行くのをアシスト」
してくれる素晴らしい会社でした。
つながり
退職となってから一番うれしかったのは、今まで一緒に働いた人がちゃんと僕と連絡をとってくれようとしたことです。
入社当時の同期の一部とはこれからも一緒ということもあるし、一緒に開発をした仲間というよりも戦友のような人も自分がやめると聞いて駆けつけてくれたり、メッセージを送ってくださったりしてくれて本当に嬉しかったです。
今後もこの縁を途切れさせずにまた一緒に働ける日が来ると嬉しいなと思いました。
これから
Webアプリ、スマフォアプリが書けるようなったのでこれからはIoTという文脈で マイコンの組み込みをやったり回路をつくったりCADでメカの設計ができるようになれればと思います。
まずはスマフォとのマイコンのインターフェイスあたりから攻めてますがかなり楽しいです。
半導体チップの英語のデータシート(仕様書)を眺めながらプログラミングするのは、 研究時代の論文を見ながら実装するのに似ていて先進的なことをやっている気持ちになれてワクワクします。
常に新しいことを学びながらものをつくる。
自分はこういうことが合っているなぁと実感しながら過ごす日々です。
最後に
自分をここまで成長させてくれた前職には本当に感謝しています。 僕が入ったのはだいぶ過渡期の時でしたが、 最終的には朝礼でほろりもしてしまうくらいのいい会社になりました。
今まで本当にお世話になりました。
ありがとうございました。
Mac初期構築メモ 2014
初期設定
- トラックパッド
- 大体有効に
- ドック
- サイズは小さく
- 拡大にチェックを入れて中くらいに
- ミッションコントロール
- ホットコーナー
- 左上…アプリケーションウィンドウ
- 左下…Mission Control
- 右下ディスプレイをスリープさせる
- ホットコーナー
- キーボード
- キーボードタブ
- F1, F2などのすべてのキー〜って書いてある部分をチェック
- 修飾キーからCaps LockをControlに変更
- ショートカットタブ
- Spotlight検索フィールドを表示は⌘スペースに変更
- 入力ソースの前の入力ソースを選択は^スペースに変更
- キーボードタブ
- アクセシビリティ
- ズーム機能をオン
- スクロールジェスチャと修飾キーを使ってズームにチェックを入れ⌘に設定
アプリケーション
- Chrome
- ブックマーク同期、複数ユーザー設定しているとすぐに環境ができて便利
- Slack
- チームとのチャット
- Skype
- いろんな人とチャット
- Astro
- Facebookメッセージだけを見れるので気が散らない
- Alfred
- 高機能なランチャー。カンペ機能が好き。
- Pocket
- あとで読む
- Better Touch Tool
- Win7みたいに画面をドラッグして横に寄せる
- ShiftIt
- ショートカットを使ってウィンドウの横詰め、全画面などが可能
- Dropbox
- Evernote
- LINE
- Karabiner
- HHK mode
- key repeat tuning
- MBPならOption_RをFnにして、Fn+F1系を明るさ・ボリューム調整にチェック
- Spotify
- Google IME
- 環境設定から円マーク入力時にバックスラッシュになるように設定
- Android File Transfer
- 主にKindle用
- ChromeCast
- ClipMenu
- 色々貼り付けられて便利
開発用アプリケーション
- iTrem2
- 何はともあれこれがないと始まらない
- Xcode
- iOSエンジニアなら
- Dash
- ドキュメント用
- Colors
- 画面上の色を採取してRGBで取得できる
- Gyazo & Gifzo
- 画面の静止画、動画のキャプチャ
- Skitch
- 画面キャプチャとモザイク、説明線、コメントなどの追加
- KeyCastr
- 画面に今入力しているキーを教示できる。技術系プレゼン時のデモ用。
- LightBlue
- Buletooth機器に接続できる。BLEモジュールのデバッグ用。
- Reflector
- iPhoneをつないで画面錠に表示できる
- Sequel Pro
brew アプリケーション
Install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew list ansible doxygen htop-osx libtool openssl rlwrap apple-gcc42 dvm hub libusb ossp-uuid rrdtool asciidoc elasticsearch icu4c libusb-compat packer sane-backends aspell emacs imagemagick libxml2 pango snappy autoconf fontconfig influxdb libxslt pcre sqlite automake fontforge ino libyaml pdftohtml terminal-notifier bazaar freetype ios-sim little-cms peco tesseract boot2docker gauche irssi little-cms2 phantomjs the_silver_searcher bsdmake gd jasper lua picocom tig cabextract gdb jp2a macvim pidof tmux cairo gdbm jpeg massren pixman tree casperjs gettext jq maven pkg-config vim chromedriver git leptonica mecab plenv watch cmake git-flow leveldb mecab-ipadic postgresql wget codemod glib libevent memcached proctools wine convmv gnu-getopt libffi mercurial protobuf winetricks cscope go libgpg-error mobile-shell pstree xmlto ctags gobject-introspection libgphoto2 mongodb qt xz curl-ca-bundle gradle libicns mysql readline zsh docbook graphviz libksba ncftp reattach-to-user-namespace docbook-xsl gts libpng netpbm redis docker harfbuzz libtiff nkf ricty
Font
http://sourceforge.net/projects/sourcecodepro.adobe/
homebrewを使ってiTerm2でRicty for powerline設定した - Qiita
CLI Tools
brew install git brew install zsh brew install reattach-to-user-namespace brew install tmux brew install wget brew install hub brew install tig brew install sqlite brew install ansible brew install tree brew install watch brew tap laurent22/massren brew install massren # http://qiita.com/yu_suke1994/items/b9fa651d77aed2eae339 brew tap supermomonga/homebrew-splhack brew install cscope brew install lua brew install --HEAD cmigemo-mk brew install --HEAD ctags-objc-ja brew install macvim-kaoriya --HEAD --with-lua --with-cscope brew linkapps or # https://github.com/splhack/macvim/releases curl https://raw.githubusercontent.com/kazuph/dotfiles/master/install.sh | sh git clone https://github.com/junegunn/fzf.git ~/.fzf ~/.fzf/install
Install Programming Language
brew install go go get github.com/motemen/ghq brew install node brew install rbenv ruby-build brew install libtool libxslt libksba openssl libyaml readline rbenv install 2.1.4
おまけ
MBPのダンボールにおにぎり4つ入ってた
ISUCON2014予選でがんばってきた
去年に引き続きISUCON予選に参加しました。
チーム名は「/^o^\マッミョサーン」で最終スコアは26890でした。チームメイトはid:kazupyongと@kokonokaです。
18時過ぎた時点での管理画面での順位は24位でした。
一日目チームはベンチマークツールに致命的なバグがあってそれで高スコアを出していたチームがいたみたいですが、こっちは普通にworkload 18くらいでフィニッシュしました。
言語はrubyで、今回特にミドルウェアの変更・追加は一切行いませんでした。
スコアの上がり方はこんな感じ。
前半はずっとinputと最初の一手の実装に時間を使ってしまっていて、全体の時間を有効に使えませんでした。このへんは完全なる実力不足ですね><
やったこと
初期準備
まずはいつものように公開鍵を配ってメンバー全員がsshで入れるように。
その後bitbucketでレポジトリをつくってpush。そこからアプリケーションを眺めて全容を把握。DBの構造とapp.rbを一通り眺めてbenchを流して見るって感じ。
初期スコアは1200くらい。
それが終わったらまずはmysqlのスロークエリを出します。
my.cnf
[mysqld] slow_query_log=ON slow_query_log_file=/tmp/mysql-slow.log long_query_time=0
pt-query-digestが便利なのでそれもインストール。
sudo yum -y install perl-DBI perl-DBD-MySQL perl-Time-HiRes sudo yum -y install perl-IO-Socket-SSL sudo rpm -ivh http://www.percona.com/redir/downloads/percona-toolkit/2.2.10/RPM/percona-toolkit-2.2.10-1.noarch.rpm pt-query-digest /tmp/mysql-slow.log > ptqd.log
こんな感じでスロークエリを解析しました。
ヤバイやつからワーストでランキングされて見れるので機械的に上から改善して行ってもほぼ問題ないと思います。
またnginxでaccess.logも出しました。レスポンスタイム含めてLTSVで出しましたが、特にLTSVである意味はなかったと思ってます。
/etc/nginx/nginx.conf
log_format ltsv 'host:$remote_addr\t' 'user:$remote_user\t' 'time:$time_local\t' 'req:$request\t' 'status:$status\t' 'size:$body_bytes_sent\t' 'referer:$http_referer\t' 'ua:$http_user_agent\t' 'taken:$request_time'; access_log /tmp/access.log ltsv;
アクセスログのレスポンスタイムなども集計できるスクリプトをつくって以下みたいに出力してました。
NGINX REPO sum[sec] ave[msec] count URL 40 69 591 POST/login 18 18820 1 GET/report 7 79 100 GET/mypage 4 4 1183 GET/stylesheets/bootstrap.min.css 4 4 1183 GET/images/isucon-bank.png 3 3 1183 GET/stylesheets/bootflat.min.css 3 3 1083 GET/ 2 2 1183 GET/stylesheets/isucon-bank.css count status_code 5912 200 591 302 4 304
これを見るととりあえずlogin時のPOSTでレスポンスタイムの総時間が40秒となっていて他のページよりも割合的に時間がかかっているので、ここを修正すればいいことがわかります。 去年のISUCONと同じ集計スクリプトを使いまわしていたので楽でした。
login時のボトルネック外し
ログイン時にログイン成功・失敗の情報を毎回login_logにINSERTしていたこと、そしてそこからSELECTして過去の失敗履歴を算出しているクエリがワーストクエリだったことを受けて、まずはその部分で複雑なSELECTを実行しないように、専用のテーブルを作成しました。
ログイン失敗時にはそのテーブルにipとuser_idをINSERT or UPDATEして失敗数をCountして行き、ban or lockされているかはそのテーブルからシンプルにSELECTするだけでいいように変更していきました。 作業する度にスコアが徐々に上がり、1200→3000→4500となり、workloadをこの辺でいじり始めて7000ほどになり、最後にlogin_logが必要なくなったのでINSERTしてる部分も削除してスコアが1万を越えました。
終了2時間前くらいでやっとインデックスを貼る
別に最初から貼ってもいいですが、login_logなどは使わなくなることが戦略的にわかっていたので、無視して続けていました。
ここで自分たちで追加したbanとlockを管理するテーブルにおけるクエリが、スロークエリのランキグの上位を占めていたので、INDEXを貼ったら1万5千くらいまでになりました。
my.cnfのチューニング
id:kazupyongさんの秘伝のタレを豆乳!2000くらい寄与した気がします。
cannot assign requested address
このへんでベンチツールが悲鳴を上げるようになりました。直感的にulimitかなって思ったのですがとりあえず何も変わらず、最終的にtcpかなーって言ったらid:kazupyongさんが記事を発見して解決してくれました。さすが!
参考記事
http://d.hatena.ne.jp/download_takeshi/20091013/1255443592
http://blog.ybbo.net/2013/05/27/tcp%E3%81%AEtime_wait%E3%82%92%E7%84%A1%E3%81%8F%E3%81%99%EF%BC%81/
workload調整
workload 4くらいでずっと来ていたのを一気に12や18とかに増やして行き、いい場所を探しました。結果的にこれで2万くらいになりました。
nginxによる静的ファイルのキャッシュ化
どの時点でやったか忘れましたが、この変更では数百くらいしかスコアがあがらなかった認識です。
打つ手をなくし1時間くらいぶらぶらする
新規にテーブルを作成してカウントする方法は元々安牌で、時間があればmemcachedにしようと思っていたのですが、結果的に最後でバグるのを怖れ動けずにいました。
この時点でやったら1万くらい上がっていたかも?
またこの時点で、レスポンスタイムの総計が一番大きいのがGET /となっていたので、これを解決しようとも考えていました。
原理的にはクッキーに値を埋め込んで、nginx側でif文で振り分けURLをリライトすればnginx側だけでキャッシュしたページを捌けるので速くなるだろうと踏んでいましたが、
「え、それどう設定すればいいの(^q^)」ってなって断念。
普段からやってないことはやっぱりできないですね、、、
ラスト20分、思いつきの一手
GET /改善したい!って思って、超雑にrubyの変数を使ってerbのレンダリング結果をキャッシュするようにしました。unicornで10プロセス立ち上がっているので、正直効率悪いのですが、これとworkloadの調整で最後に20000から27000くらいまであがりました。
app.rb
get '/' do - erb :index, layout: :base + if flash[:notice] == "This account is locked." + $html_l ||= erb :index, layout: :base + elsif flash[:notice] == "You're banned." + $html_b ||= erb :index, layout: :base + elsif flash[:notice] == "Wrong username or password" + $html_w ||= erb :index, layout: :base + elsif flash[:notice] ||= "You must be logged in" + $html_y ||= erb :index, layout: :base + else + $html ||= erb :index, layout: :base + end end
はぁー、nginx力あげたい。
終わりに
正直自分たちのレベルでやりたいことは全部やってしまっていて、できると思った実装は全部実現しただけでも良かったのですが、まだまだ実力不足ということを思い知らされました。
実力があれば、
- テーブル増やしてカウントの対応をやったあと、memcached/redisでさらに高速化できた→実装速度不足
- tcp周りで意外に時間を消費した→Linuxのカーネルパラメータ周りの設定経験不足
- MySQLだけでもhandlersocketが使えた?→知らん、経験不足
- nginxの設定だけで出すべきGET /を振り分け→一度でも勉強していればすぐできた
- 他、気づいてない部分での高速化
などできたのかなと思います。
また過去の経験からhtopやdstatは使ってるとかっこいいけど、パフォーマンスを上げることについてはなんら寄与しない
って思っていましたが今回もそうでした。強いて言うならhtop叩いてcpuが暇してればworkloadの変更の時ってことくらいですね。
測定からボトルネックを探し、そこに集中して改善作業を続けるってことは完全に実践できたと思うので、あとは
- 測定力そのものを上げる→自分たちが気づいてないボトルネックがあるはず
- 改善力を上げる→自分たちが実装できないことがたくさんあったはず
ということで、来年へ向けて刃を研いで行きたい所存です。
運営の方へ
楽しいISUCONをありがとうございます。
来年もまた実力を上げてリベンジしたいと思います。
来年はworkloadで何も変なことが起こらないといいですね★
お疲れ様でしたm( )m
BLE Boot Camp White Note : BLEのやば濃いイベントの二日間
※上記写真は帰りの名古屋駅で食べた「矢場とん」のみそひれかつ丼定食の写真であり本イベントとはまったく関係ありません
White Note?
- 白紙状態からの文字起こし
- 当日のメモやある程度のフレームがない状態から、ある項目について頭の中を全部書き出したらどうなるかという試み
- そのため記憶違いがあるかもしれません。予めご了承下さい。
- 下の内容は公開するつもりで書いてるので少し抽象的に書いてます
- 以下の内容はまだ書き出したばかりなので随時URL・画像等を増やしていきます
Pick Up
- まずこのイベントを開催してくださったことが本当にありがたかった。主催・運営された方々、講師陣、そして参加された方々に感謝します。
- 普通のイベントでは考えられないほど濃い参加者
- 講演・ワークショップを通した講師陣・参加者の思考をトレースできるのが本当に楽しかった
- シーケンス図による可視化の重要性、その作成ツールを知れたのは大きかった
- 今後のメンバーとしてのつながり、秘密のFBグループでの情報共有ができることが一番の成果
TODO
- このページの画像・リンク・スライド資料を増やす
- シーケンス図で自分プロダクトを描いてみる
- 「BLE ブラックハット」
- ソフトとハードのライフサイクルの違いから生じるスキマを埋めるBLE機器の今後の展望についてまとめる
そういえば話してないこと
以下作業
- ハードルの高いイベント
- 豪華な講師陣
- 基調講演とワークショップの複合的なイベント
- 参加者のBLEに対する概念の穴埋め的な存在であった基調講演
- 身の回りにある実際のBLE機器を触り、背景や通信のシーケンス的な考察、及び改善案の話合い
- その機器の実際の開発者からの内部的な説明があることも
- アイディアスケッチ
- あるシチュエーション・ペルソナが持つ課題を解決するにはどういうBLEデバイスを作成すればいいのか?
- 出来上がったものよりも、猛者たちとプロセスを共有することで得られたことが大変多かったように思う
- あるシチュエーション・ペルソナが持つ課題を解決するにはどういうBLEデバイスを作成すればいいのか?
- 書くことの出来ない裏話の濃さ
- 飛び火で始まった裏話、予定変更してでも聞きたいとても濃い内容
- あるKickStarter系のデバイスの裏側的な話
- プロトタイプエンジニアの目利き、危険案件を見分けるにはどうすればいいのか?
- 既存のIoT機器開発者の苦労話とそれをどうやって克服しようとしたか
- WillPower
- 人間の根源的なやる気
- 人間の行動は大体これに左右される
- 寝たら回復するが、できるだけ減らさずに生きていくのはどうすればいいのか?
- IT技術者がIoTをやるときには多くの壁が存在する、それを乗り越える力
- 0を1にして更に100とかにするまでずっと継続していくのはどうすればいいのか?という処世術だと思った
- シーケンス図の意外な重要性
- ユーザーとしてクソな商品だと思ったものが、書くことでエンジニア的におもしろい商品だとわかることも
- 共通言語の提供
- 正直1人でアプリとサーバーサイドを書いているときは書いたことなかった・必要性も感じなかった
- イベントドリブンじゃない場合もそうで、デバイスが絡むことでよりシーケンス図の重要性が増したと思う
- [TODO]自分の製品でも実践しようと思った
- アンカンファレンス
- 聞き足りない・話合い足りないことを参加者自身がリクエスト・講師側になることも
- ① BLEにおけるセキュリティ
- 規格嫁
- Webのセキュリティの技術を流用できる
- スニファー対策・デバイスの破壊なども含めた超実践的な話
- 講師の方によるBLEが可能なセキュリティ対策の輪郭が見えるほどまで説明してもらった(今回の技術的には一番の収穫!!)
- そのためBLEで出来ないところ・弱い部分は各々実装する必要がある
- その他免責などについて
- ② ネットワークから見たBLEデバイスについて
- 概念的な話
- もの・人間はネットワークから見たら単なるデータベース
- BLEのプロファイルの表現でしかない
- 人間の行動パターンの抽出からアドテクへの道筋・グロースハックへの応用について
- 形あるもののライフライクルの遅さと、ソフトのライフサイクルの速さ、それを埋める後付BLEの機器の価値
- M2M、マシン同士の関わり、BLEがそれを安価に可能にしたこと
- 3年後のBLEの中核にいるメンバーがここに集まっているのではないか?という実感と期待
- がんばります。
お疲れ様でした。
参考
BLE Bootcampに参加した #blebootcamp
Qittaでこんな記事も書いてます。こちらも合わせてどうぞ。
TimeTicketで上位にいたらしい
後輩がkazuphさんが上位にいるっていうからどのページか探したら普通にランキングページがあったのね。
人気チケットランキング(最近1ヶ月) | TimeTicket[タイムチケット]
iOSやAndroidでアプリいくつかつくっていたり、PerlやRailsやGoでWebアプリケーション書いていたりするのでその辺の話や、会話の過程でどうやって勉強しているとか、よく参考にしているサイトはどれとか周辺の情報も人気があるみたいです。
ちなみにリーンアナリティクスを読んでのうんちくの話もできるつもりなのですが、 そっちのチケットは人気がないですねw なのでサービス企画の話もされたら上のチケットで普通に話しています。
一応レンジは初心者〜中級者までだと思ってるので、 上級者の方は逆に僕の方から購入させてくださいw
ということで気になった方は、まずは是非TimeTicketのメッセージだけでもいいのでご相談くださいm( )m
いつの間にか終わっていたYAPC。
毎年ほぼフル参加して楽しんでいてやっぷしーですが、今年は起業の準備とか色々していたら発表も全然見にいけませんでした。 見れたのは今後関連のある金曜日のIoT関連の発表だけ。 直近は土日の方が忙しい。。。
あと後輩がたくさんLTで発表していたみたいで、TL的に盛り上がっていたのが嬉しかったです。 優秀な人たちなので、これからもどんどん活躍してほしいなと思いました(・∀・)
発表自体は一部でしたがとても楽しませてもらいました。中でもcho45さんのテンションがとても高く、 またウェッブ系のエンジニアだったのにハードに手を出していてすごいなと思いました。
勉強法を質問したらウェッブに転がってるのを読むとか、教科書普通に読んでるとかですごいなと思いましたが、これから自分もこの分野で活躍できるように色々蓄えていきます(すでにもう進めてますが)。
来年のYAPCは余裕をつくって是非フル参加したいと思いました!
それでは以下発表のメモです。
perl meets real world
- 発表紹介ページ
- ラズパイ、arduinoの話。Webエンジニアのハードウェアの学び方。
- 資料
O2O/IoT/Wearable時代におけるWeb以外のネットワーク技術入門
- 発表紹介ページ
- MQTT
- 概要
- 商業施設や過程内での機械サービスの自動化用途
- MQってなに?
- MQ?JQ?
- AMQP
- Advanced Message Queuing Protocol
- RabbitMQが有名
- XMPP
- チャット用
- 仕様が複雑で吐きそうってデメリット以外はMQTTとできることは一緒
- M2M向け
- Pub/Sub
- Redis/STOMP
- Redisは実装
- STOMPはプロトコル、MQTTに一番似ている
- Redis/STOMP
- 省エネ
- QoS,Willなどに対応
- 対象障害性
- Quality of Service
- QoS0
- 送信されたものをそのまま別の場所へ送信
- QoS1
- メッセージを保存する、ちゃんと送信したら削除する
- 送信に失敗していたら保存したメッセージを再度送信
- QoS2
- QoS0
- Will
- Leave Message=遺書
- Quality of Service
- 対象障害性
- Webのグループチャットとかでも応用されている
- Beluga(Facebookに買収された)
- ライブラリ
- nodeとかperlのMQTT実装がある
- sango
- nodeとかperlのMQTT実装がある
- サービスで言うとIFTTT的な感じ
- URLベースの監視
- 誤解
- HTTPと比較される
- HTTPに比べて省エネ?
- いやいやただのPub/Subだから
- でもHTTPでM2Mのネットワークを構築しようとしている例がある
- REST
- GETで温度取得とか
- ちょっと無理がある
- REST
- 実はHTTPベースのCoAPってのもある
- HTTPに比べて省エネ?
- HTTPと比較される
- 概要
- BLE/iBeacon
- BLE
- 昔のはClassicって呼ぶ
- 高速化を目指したけど他の技術との差別化ができなくなってきた
- ペアリング必須
- LE = low enagy
- iBeaconみたいにペアリングなしで使う場合もある
- central
- クライアントとすることが多い
- peripheral
- サーバーとすることが多い
- ネットワークへの参加方法
- ペリフェラルがAdvertisting Packetを送信する
- UUID、LocalNameとかの情報が入っている
- CentralがUUIDを見て自分が望んでいるものかを判断
- ポーリング後接続
- ペリフェラルがAdvertisting Packetを送信する
- Protcol
- MFi
- SPP使える
- 昔のはClassicって呼ぶ
- iBeacon
- 抽象化されたGET
- お店の前に行った→お店情報を取得
- Personalization
- 個人のパラメータ(性別、年齢、、、)などからその人に適した情報を取得させたりできるはず
- タッチがPOSTになるのでは?
- ここはNFCを使おう!
- 抽象化されたGET
- BLE