Upload
ryuichi-tanaka
View
1.068
Download
0
Embed Size (px)
DESCRIPTION
ライフログ入門。Evernote連携をアプリの機能以外にIFTTTと自作Herokuアプリで送信する手法を紹介。
Citation preview
Web技術勉強会2012/07/28
Ryuichi TANAKA/@mapserver2007/summer-lights.jp
ライフログ入門ライフログで日常行動のモチベーション維持
ライフログとは?
� ライフログとは、人間の生活を長期間に渡りデジタルデータとして記録すること、またその記録自体を指す。 近年、ライフログという言葉が広く社会的に認知されつつあり、例えばブログのような日記の類もライフログと呼ばれることがある。(Wikipediaより)
� 端的に言ってしまえば、生活している上で行動しているす� 端的に言ってしまえば、生活している上で行動しているすべての行動記録。
� スマートフォンの普及で盛り上がってきている
ライフログを記録する意味
� すべての行動に「意味」が付く
� 例:単に歩いて移動する
� 単なる運動、あるいは無意味な時間。
� だが、ログ化することで単に歩いて移動する距離、時間、場所などが記録される
� 例:音楽を聞く
� 暇つぶし的な意味あいが強い。
� だが、ログ化することで、いつどんな曲を聞いたかをすべて記録可能
� すべての単純な行動に意味がつくので、つまらない行動も楽しくなってくる
� ログを取るために行動するモチベーションが生まれる
最近はスマホ+Webサービスが当たり前
� たいていのスマホアプリはWeb対応
� 記録を可視化してくれるのであとで見て楽しめる
� 集計もしてくれる
� SNS要素あり
� しかも有名外部サービス連携も当たり前
� Facebook� Facebook
� ライフログと言っても、人によって用途が違う
� コミュニケーション目的(多そう)
� 日々の記録をつける日記的な目的(正統派)
� TwitterのTLの一部(なんでもかんでも流す派)
� ランキング狙い など
最近はスマホ+Webサービスが当たり前
� たいていのスマホアプリはWeb対応
� 記録を可視化してくれるのであとで見て楽しめる
� 集計もしてくれる
� SNS要素あり
� しかも有名外部サービス連携も当たり前
� Facebook� Facebook
� ライフログと言っても、人によって用途が違う
� コミュニケーション目的(多そう)
� 日々の記録をつける日記的な目的(正統派)
� TwitterのTLの一部(なんでもかんでも流す派)
� ランキング狙い など
ライフログ収集の条件
� スマートフォンが必須� ないと話にならない。ない人は今すぐ買いなさい。
� メジャーどころのアカウントが必須� 特にTwitterは必須(Twitterに流す目的ではなく、別
目的で必須)
Webメールもほぼ必須(持ってない人いないだろうけ� Webメールもほぼ必須(持ってない人いないだろうけど。Gmail推奨)
� Facebook連携はおすすめしない(Twitter以上にある意味危険…)
� Evernoteは超絶必須(今回の肝はこれだし)
� その他写真系サービスなど、有名どころのアカウントは持っておいて損なし。
私のライフログ収集形態
� 次の図参照
Paylog家計簿
Twitterパブリックなつぶやき
僕の来た道現在地常時トラッキング
RunKeeperランニングログ
POST
CloudScrobLast.fm for iPhone
POST
Instagram写真ログ
Fitbit
Last.fm
Foursquareスポットチェックイン
PostEverプライベートなつぶやき
Last.fm音楽ログ
githubプログラムログ
scansnap明細書など
私のライフログ対象一覧
� 日記系ログ
� ブログ(現在は収集対象から外してる。後日追加予定)
� PostEver
� Evernote
音楽系ログ� 音楽系ログ
� Last.fm(iTunes, CloudScrob)
� 運動系ログ
� RunKeeper
� Fitbit Ultra(予定)
私のライフログ対象一覧
� 位置情報系ログ� Foursquare
� 僕の来た道
� 写真系ログ
� Instagram� Instagram
� 会計簿・小遣いログ
� Paylog
� プログラミング系ログ
� Github
ライフログ収集のポイント
� 中心にはEvernoteがいる
� すべてのログはEvernoteに集約する
� ログを集約するのにこれ以上のサービスは現状ない
� Web、クライアント、派生アプリが豊富
� SDKもある
Evernote連携サービスはそのまま連携する� Evernote連携サービスはそのまま連携する
� 派生アプリは当然連携可能(PostEverなど)
� だが意外とEvernoteに直接送信できるサービス、アプリは少ない
Evernote非対応サービスを連携させる
� 以下のパターンなら比較的容易に連携可能
� フィードを吐いているサービス
� ただし、ATOMだとできない可能性が高い。RSS1.0かRSS2.0ならほぼ確実にできる
� メールを送信できるサービス
� Gmailを間接的に叩けたりできれば確実
� Twitter連携しているサービス
� Twitterのタイムラインからぶっこぬいてこれるため連携可能
� 上記の場合、プログラミング不要!
� 上記以外の複雑な要件がある場合はプログラミングで解決。
IFTTT
� http://ifttt.com
� 外部サービスを結びつけて連携させることができるサービス。
� なんと、プログラミング不要!
� TwitterBotとか簡単にできる。
� レシピと言う単位で作成、共有可能。しかも共有されているレシピをフォークしてカスタマイズまでできる。
現在連携しているサービス� RunKeeper→Evernote
� RunKeeperで走ったデータをTwitterに流す。そのTwitterデータをIFTTTが捕捉し、Evernoteへ送信。内容はTweetデータそのまま。
� Foursquare→Evernote� FoursquareはIFTTTでサポート済み。チェックインしたデータ
をEvernoteへ送信。場所、時間、地図画像など。をEvernoteへ送信。場所、時間、地図画像など。
� Last.fm→Evernote� iTunes、iPhoneで聞いた音楽データをEvernoteへ送信。
IFTTTでサポート済み。1曲単位で送られてくる。
� Instagram→Evernote� 撮った写真データをEvernoteへ送信。IFTTTサポート済み。
� github→Evernote� githubのコミット履歴をEvernoteへ送信。githubのフィード情
報をそのまま送信。
IFTTTでできないこと
� IFTTTはだいたいのことが解決できるが、以下の場合は無理� IFTTTで対応していないサービスを使いたい
� スケジュール実行させたい
� IFTTTは更新即時実行なので日単位でのバッチ処理ができない。ない。
� ライフログデータを集計してまとめて一括で送ってほしい、という要求に応えられない
blogtrottr
� http://blogtrottr.com/
� フィード情報に限られるがメール送信が実行できる
� Evernoteのアドレスに指定したサブジェクトで送るとノートを作成できる
� しかもスケジュール実行(時間単位、日単位など)が選択可能能
blogtrottrでできないこと
� フィード情報は「RSS」のみ。
� ATOMは無理だった
� 殆どの場合問題にならないが、Last.fmではこれが問題になる。Last.fmのアーティスト別、トラック別フィードはATOM。指定してもエラーになる
� なぜか直近聞いた音楽のみはRSSだが10件しか選べない。10� なぜか直近聞いた音楽のみはRSSだが10件しか選べない。10件ってなめとんのか…。
� ATOM→RSS変換サービス(Google)を通してもやはり無理(変換自体できなかった)
もはや作るしかない
� やりたいこと
� これまで聞いた曲のアーティスト、トラック別ランキングを1日1回Evernoteに送信したい
� 今日聞いた音楽情報を1日1回Evernoteに送信したい
� IFTTTのLast.fm→Evernoteは数が多すぎて見づらい。集計データがほしい。計データがほしい。
要件
� Herokuで運用
� Rubyで作る、Herokuでアプリを動かすノウハウあり。
� Evernoteの特定のノートブックにLast.fmデータが必要
� IFTTTで溜めたデータを元に集計(今日聞いた音楽)
� Last.fmのフィード情報を取得する
� 取得して加工してEvernoteに流すだけ� 取得して加工してEvernoteに流すだけ
� 1日1回実行する
� Clockworkでスケジューリング
はまったところ
� rubygemの「evernote」は使えない
� サンプルが動かない(うちだけ?)
� 参照はできるが書き込みができない
� 結局公式のSDKを使うことに
� ソースがおいてあるだけ。gem化くらいしろよ…。
� コミット、デプロイ時にソースがまんま入るのは正直嫌なんだけど� コミット、デプロイ時にソースがまんま入るのは正直嫌なんだけど
� Sandboxで試験しろとあるが
� 無視してProductionで試験しまくり(問題無さそう)
� 手動でデータ作るのがめんどくさい
書いたアプリ
� LastfmFeedEver
� https://github.com/mapserver2007/LastfmFeedEver
� アーティスト総合、トラック総合データを1日の終りにEvernoteに送信
� LastfmDailyEver
� https://github.com/mapserver2007/LastfmDailyEver� https://github.com/mapserver2007/LastfmDailyEver
� 今日聞いた音楽を1日の終りにEvernoteに送信
� どちらもHerokuで運用中。
今日聞いた音楽
アーティスト別総合
トラック別総合
これで音楽系ログは万全
� 特に「今日聞いた音楽」は知りたかった。
� たぶん、これが取れるサービスはないんじゃないか?
� Last.fmは認知度No.1だと思うが、公式や外部サービスを使ってもこれは取れない。直近聞いたデータ(RSS)は使いものにならない。
� ライフログ系のブログはいろいろあるがこれをやっているところはない。はない。
運動系ログを強化したい
� RunKeeperを使っているが、月に10回程度しかログをとれない(毎日走るのは厳しい…)
� なんとか毎日の運動系ログ(消費カロリーとか)をとれないだろうか。
� iPhone単体を常に装着するのは…。
� 毎日の運動系ログがとれれば、単なる徒歩ですらログ収集� 毎日の運動系ログがとれれば、単なる徒歩ですらログ収集対象になり、楽しくなる。
Fitbit Ultra� クリップタイプのガジェット
� 10cmくらい、ベルトにちょうどフィット
� 取れるログがいい!� 歩数
� 消費カロリー
� 距離
� Floor Climbed(何階層移動したか)
� 睡眠時間
� 覚醒状態と睡眠状態をそれぞれ取れる
� 連携サービスが多い� Twitter、Facebook、RunKeeper、Wifi体重計、心拍計、血圧
計など
� iPhoneアプリ連携も多い� 食事ログ、飲んだ水の量ログなど(別アプリ)
公式サイトが見やすい
� 詳細なデータを可視化してくれる
使い方がとても楽
� PCとの同期が楽
� 同じ部屋にいればWifiで勝手にデータを本家へ送信
� 明示的な同期不要
� ただし、睡眠ログはドックに差し込まないとだめ(かも)
� 普段は装着しておくだけ
� スイッチとか入れる必要なし� スイッチとか入れる必要なし
� 帰ってきたらドックに挿せば終わり
� 就寝前に手に装着してスイッチを長押し
� ここだけは1ステップ必要。装着用リストバンドあり。
� 起床時、同様にスイッチ長押しでログ収集終わり
� バッテリーは結構持ちそう
� 少なくとも1日使っても半分も減っていない
� ただし、なぜかバッテリー残量はWebでしか確認できない…。
iPhone連携も(一応)可能
� iPhoneアプリがある。
� http://itunes.apple.com/us/app/fitbit-activity-calorie-tracker/id462638897?mt=8&ign-mpt=uo%3D4
� ただし、USのみ。日本のAppStoreにはない。
� 入れてみたが、他のサービス(食事ログなど)の項目が多くて、Fitbit Ultra単体ではあまり役に立ちそうになりのが残て、Fitbit Ultra単体ではあまり役に立ちそうになりのが残念。
� 食事ログとかは選択式のようだが、USの食い物ばかりらしく、日本人が利用するにはいちいち手動入力が必要らしいため、使う気にならない。
Evernote連携ができない
� 公式に連携できる機能がない。
� 一応Twitterにはデータを流せるので、IFTTTで捕捉してEvernote送信は可能。
� だが、データが全然含まれていない
� 日付、歩数、距離だけ。あとリンク。
� 消費カロリー、Floor Climbed、睡眠ログなどは取れない。� 消費カロリー、Floor Climbed、睡眠ログなどは取れない。
� これでは正直いまいち。
しかたないのでアプリを書く
� FitbitEver
� https://github.com/mapserver2007/FitbitEver
� Fitbitの公式サイトからデータをぶっこ抜く
� Mechanizeを使うのだが、HTTPSでログインする処理が必要なので、そこだけやや手間取った(証明書が必要だった)
� 午前3時に前日のデータを取得� 午前3時に前日のデータを取得
� 生活スタイルを考慮し、午前3時とした。
� 午前0時や23時55分だと、まだ帰ってきてなく、同期されないままデータを取りに行く可能性がある。午前3時ならいくらなんでも帰ってくるということで。
� 現状、帰って来なかった場合まで考慮してない。対応はする予定。
昨日のアクティビティデータ
� Twitterからのデータと比べ、種類が多くなった。
ログをあつめておけば…
� 振り返ることができる
� 数ヶ月後、数年後とかに何気なく見ると、あの時はこんな漢字だったのかと振り返ることができる
� アプリを作るための下地
� 自分専用のライフログアプリを作るためのデータ収集。
� 日頃の行動のモチベーション維持� 日頃の行動のモチベーション維持
� ランニングが続かない→ログをとるために走るのはいいこと
� 運動不足解消したい→1日の目標歩数を達成したいがために歩いたり
� ひとりごとをメモし続ける
� ブログは面倒→Twitter or PostEver
� 外出の記録をつけて出かける楽しみを増やす
� Foursquare、僕の来た道
まとめ
� ライフログをつけよう
� 行動のためのモチベーション維持が最大の利点
� Evernoteはライフログのための最強アプリ
� なんで絶賛されているかようやく理解した。神アプリでした。
� メモ用途でも相当役に立つ
� IFTTTで簡単Evernote連携� IFTTTで簡単Evernote連携
� プログラミング不要
� プログラミングでなんでもEvernote連携
� プログラミングできればどんなデータでもライフログ化可能
� iPhone以外のガジェットも使おう
� FitbitUltra以外にもたくさんある
� 詳細なデータが取れる