$30 off During Our Annual Pro Sale. View Details »

why_dont_you_measure_your_performance

mogetta
September 08, 2018
17k

 why_dont_you_measure_your_performance

概要
本セッションでは体の調子をIoT的アプローチ、測定を容易にするアプリの制作、また市販のトラッキング製品などを駆使し測定とログ管理を行い、どうやっていくことで体の調子を上げ、パフォーマンスを向上させ、より良いエンジニアライフを送れるか?を追求、解説します。

mogetta

September 08, 2018
Tweet

Transcript

  1. なぜエンジニアは
    パフォーマンス計測しないのか
    1
    Builderscon 2018
    2018/09/08
    Hiroshi Mimori 三森 裕史 @mogetta

    View Slide

  2. 2
    やあ (´・ω・‵)

    ようこそ、バーボンハウスへ。

    このテキーラはサービスだから、まず飲んで落ち着いて欲しい。


    うん、「また」なんだ。済まない。

    仏の顔もって⾔うしね、謝って許してもらおうとも思っていない。


    でも、このスレタイを⾒たとき、君は、きっと⾔葉では⾔い表せない

    「ときめき」みたいなものを感じてくれたと思う。

    殺伐とした世の中で、そういう気持ちを忘れないで欲しい

    そう思って、このスレを⽴てたんだ。


    じゃあ、注⽂を聞こうか。

    View Slide

  3. 3
    懐かしいって思った⼈
    今⽇のトークのメインターゲット
    だからな?

    View Slide

  4. 4

    View Slide

  5. 5
    ネタ被ってる。

    View Slide

  6. 6
    本セッションの趣旨
    1.世の中のガジェットを駆使して、「⾃分」を測る。
    測ったデータをうまく持ち寄って解析しよう!
    2.じゃあ、どういう⽣活をすると、⽣活の質があがるのか?
    3.そもそも、やってみてどうだったか?

    View Slide

  7. 7
    • ⼀⼈の⼈間が連続して計測している内容なので、
    科学的な正確性はないです。
    • コードの話は期待しないで。
    • 当たり前ですが、サーバーのパフォーマンス計測
    の話はしません。

    View Slide

  8. 8
    本⽇の流れ
    - 動機
    - ガジェット紹介・計測⽅法
    - コード周りとか
    - ABテスト
    - 改善施策

    View Slide

  9. 9
    先に結果から
    体重  72kg -> 65kg
    体脂肪率 17% -> 12%
    平均集中時間 4h30m -> 5h15m
    Gobe2によるストレス指数 減少
    コミット数 ほぼ0から⼤体毎⽇コミット

    View Slide

  10. 10

    View Slide

  11. 11
    ストレス値の下降
    GOBE2というデバイスから取得

    View Slide

  12. 12
    ⾃⼰紹介
    •36歳 独⾝ 
    •フロント寄りのエンジニア
    •現職ではPythonを利⽤した
    ⾃動テストやデバッグ補助
    •ツールの作成が業務

    View Slide

  13. 13
    普通の⾃⼰紹介ではなんなので
    体重7年分のログに合わせてやっ
    てきたこと紹介します。

    View Slide

  14. 14

    View Slide

  15. 15
    ガラケーとかスマホ
    のパチンコアプリのアプリ側担当。
    会社の近くにジムがあったため、
    体重の推移も穏やか
    2011/10 - 2013/10

    View Slide

  16. 16
    転職
    AngularJSを利⽤した
    ソーシャルゲームの
    フロントエンド担当
    すぐデスマーチ
    2013/10 - 2015/02

    View Slide

  17. 17
    某社でベトナムの某社と組んで
    世界発信するぞ!と誘いを受け転職
    フルスクラッチで3,4回作り直し
    を繰り返したが
    最終的にお蔵⼊りするという不遇の
    プロジェクトCocos2dxでUI担当
    2015/02 - 2016/05

    View Slide

  18. 18
    2016/06 - 2016/08
    会社をクビになり
    無職⽣活。

    View Slide

  19. 19
    2016/10 - 2017/08
    フリーランス⽣活。
    忙しさから不摂⽣
    UnityのUIやCI
    gitおじさん業に勤しむ

    View Slide

  20. 20
    2017/09 - 現在
    今の会社に所属
    順調かと思いき
    や、、、

    View Slide

  21. 21
    元旦に振られる

    View Slide

  22. 22
    7年のログから⾒えて
    くる⾃分⾃⾝の傾向
    • 仕事が忙しくなると太る
    • プライベートが不安定になると太る
    • 典型的なストレスによって太る⼈間(痩せる⽅もいますね。)
    • 結局、リバウンドを繰り返している
    • 「ダイエットに失敗し続けている」状態

    View Slide

  23. 23
    年齢を増すごとに無気⼒になるのを感じる
    肩こり
    脂肪増
    仕事以外でコードが書けない
    ⼈⽣の課題増える

    View Slide

  24. 24
    科学的に解説してるサイトがあった
    • ⼈に話したり、質問してもらうことで⾃
    ⼰を再確⽴するらしい
    • 科学の⼒ってすげー
    • なんとか⽴ち直る。(いろいろ相談に
    乗ってくれた⽅々ありがとう
    • しかし、マイナスからゼロになった状態。

    View Slide

  25. 25
    ここでなんとかしない
    と⼈⽣が終わる。
    • ここで踏ん張ってく改善しないと、技術的負債ならぬ、
    • ⼈⽣そのものの負債によって潰れるという謎の焦燥感が⽣まれる
    • やる気を取り戻すとか、失恋、⽴ち直る、科学的などでググる
    https://yuchrszk.blogspot.com/2016/12/blog-post_19.html

    View Slide

  26. 26
    やる気出ない問題も、
    科学的アプローチで対処できる
    のでは?

    View Slide

  27. 27
    改善ターゲットをいかに設定
    仕事外でコードを書く習慣を⾝につける。
    仕事に集中できる環境を整える。
    無理をしなくても体脂肪増を抑えられる⽣活

    View Slide

  28. 28
    測定する

    View Slide

  29. 29
    Withings
    Wifi Body
    Scale
    いわゆる体重計。Wifi 対応。
    wifi経由で専⽤のサービスに保存
    IFTTTに対応してるので
    体重を測ったらTweetする等できる。
    20000円

    View Slide

  30. 30
    Withings
    Activité
    腕時計型のガジェット、歩数管理と
    睡眠時間管理、起床時の
    振動サポート等がある。
    2015年当時39800円

    View Slide

  31. 31
    Withings Sleep
    布団やマットレスの下に敷い
    て使う睡眠の質を測る装置。
    いびき等も検知する。
    IFTTT対応!
    https://health.nokia.com/jp/ja/sleep
    14990円

    View Slide

  32. HEALBE GOBE2
    腕時計型のガジェット、歩数管
    理と睡眠時間管理、起床時の振
    動サポート等がある。
    https://gobe.jp/
    32
    レンタル ⽉2000円

    View Slide

  33. 33
    JINS MEME
    集中⼒や姿勢を測る
    ⽬そのものを計測してるの
    ではなく
    筋電位を利⽤している。
    https://jins-meme.com/ja/
    度付き 47800円
    くらい

    View Slide

  34. 34
    Spire
    呼吸を測ってくれるガジェット
    回数等から状態を教えてくれる
    今緊張してるか、集中してるか
    https://spire.io/
    13800円

    View Slide

  35. 35
    Jabra elite sport
    運動中に⼼拍数を測る
    声で適切な⼼拍数を教えてくれる
    https://www.jabra.jp/sports-headphones/jabra-elite-sport
    30370円

    View Slide

  36. 36
    イラッとボタン
    AWS IoT Buttonを使っ
    てイラッとしたときにイラッ
    としたときに押すことでイラ
    イラを計測するボタン。
    (あまり使わず…)
    2500円

    View Slide

  37. 37
    ZOZOスーツ
    体の⼤きさを測ってくれる。
    ダイエットの進捗が可視化で
    きて良い。
    https://jins-meme.com/ja/
    0円

    View Slide

  38. 38

    View Slide

  39. 39

    View Slide

  40. 40
    体重
    体脂肪
    睡眠時間
    起床時間
    睡眠の質
    ストレス
    ⽔分量
    呼吸の状態
    集中した時間
    歩数
    測定項⽬⼀覧

    View Slide

  41. 41
    全てを集約していく

    View Slide

  42. 42

    View Slide

  43. 43
    ストレスを測る
    最近の研究で、⼼拍変動がストレスを割と正確に反映している。
    ということがわかってきた。
    先程紹介したGOBE2ではその⼼拍変動を検知して、
    独⾃のストレス指数を算出してくれる。
    GOBE2のWebページはきれいなSPAだったのでデータを拝借
    https://scholar.google.co.jp/scholar?q=%E5%BF%83%E6%8B%8D%E5%A4%89%E5%8B%95+
    %E3%82%B9%E3%83%88%E3%83%AC%E3%82%B9&hl=ja&as_sdt=0&as_vis=1&oi=scholart

    View Slide

  44. 44
    体重管理
    •API : http://developer.health.nokia.com/oauth2/
    •Golang Lib https://github.com/jrmycanady/nokiahealth
    APIとライブラリがあるため、利⽤してFirebaseに登録する。
    つい最近まで OAuth1.0しかなかったが、2.0が追加されまし
    た。
    睡眠時間を測る 歩数

    View Slide

  45. 45
    タイプ数を測る
    ⾃分はMacを利⽤しているので上記のライブラリを使⽤。
    https://github.com/KonsomeJona/OctoMouse

    View Slide

  46. 46
    草を測る
    https://github.com/users/mogeta/contributions
    いろいろ仕様変更があるし、公式サポートってわけで
    はないのでいろいろ変わる。
    2018/08現在はsvgで渡されるので分解して登録。

    View Slide

  47. 47

    View Slide

  48. 48
    ⾷事ログを取る
    毎⽇、きっちり計算したり、ログを取れる⼈は
    myfitnessPal等を使うのがおすすめ
    後に説明するPFCバランス等も計算してくれる。
    とりあえず、写真だけ撮って、GooglePhotoと連
    携すると良い機能がある。
    https://www.myfitnesspal.com/ja

    View Slide

  49. 49
    {
    "dateFilter": {
    object(DateFilter)
    },
    "contentFilter": {
    object(ContentFilter)
    },
    "mediaTypeFilter": {
    object(MediaTypeFilter)
    },
    "includeArchivedMedia": boolean,
    "excludeNonAppCreatedData": boolean
    }
    {
    "includedContentCategories": [
    enum(ContentCategory)
    ],
    "excludedContentCategories": [
    enum(ContentCategory)
    ]
    }
    NONE Default content category. This
    category is ignored when any other
    LANDSCAPES Media items containing landscapes.
    RECEIPTS Media items containing receipts.
    CITYSCAPES Media items containing cityscapes.
    LANDMARKS Media items containing landmarks.
    SELFIES Media items that are selfies.
    PEOPLE Media items containing people.
    PETS Media items containing pets.
    WEDDINGS Media items from weddings.
    BIRTHDAYS Media items from birthdays.
    DOCUMENTS Media items containing documents.
    TRAVEL Media items taken during travel.
    ANIMALS Media items containing animals.
    FOOD Media items containing food.
    SPORT Media items from sporting events.
    NIGHT Media items taken at night.
    PERFORMANCES Media items from performances.
    WHITEBOARDS Media items containing whiteboards.
    SCREENSHOTS Media items that are screenshots.
    UTILITY Media items that are considered to be
    utility. These include, but aren't limited

    View Slide

  50. 50

    View Slide

  51. 51
    集中度のログをとる
    https://jins-meme.github.io/sdkdoc/
    メガネの機能を利⽤できるSDK
    はある。しかしWeb⽤のAPI
    がまだない(準備中とのこと。
    画⾯をキャプチャして、
    CLOUD VISION API
    を利⽤する。
    JINS MEMEと連動するアプリoffice
    で集計したデータを集めれば良い

    View Slide

  52. 52

    View Slide

  53. 53
    呼吸データ集計。
    APIはあるので、取得ライブラリを作成
    func (c Client)fetch(opt ...queryOption) *Spires{
    query := Query{}
    for _, o := range opt {
    o(&query)
    }
    values := url.Values{}
    values.Add("access_token", c.accessToken)
    if query.date != "" {
    values.Add("date",query.date)
    }
    resp, err := http.Get(URL + values.Encode())
    if err != nil {
    fmt.Println(err)
    }
    body, _ := ioutil.ReadAll(resp.Body)
    defer resp.Body.Close()
    spireData := new(Spires)
    err = json.Unmarshal(body,spireData)
    if err != nil {
    fmt.Errorf("%s",err)
    }
    return spireData
    }

    View Slide

  54. 54
    こんなデータが取れる
    8/28 9/7(昨⽇)

    View Slide

  55. 55
    集計データ閲覧
    https://
    builder-206303.firebaseapp.com
    /#/base/daychart
    mogettaのデータを触って
    君だけのグラフを作ろう!!!!

    View Slide

  56. 56
    例:
    withings_sleeps TotalSec
    meme_focus Total
    睡眠時間と集中度。というデータになります。

    View Slide

  57. 57
    睡眠データと集中度

    View Slide

  58. 58

    View Slide

  59. 59
    睡眠データと集中度

    View Slide

  60. 60
    ヨシ

    View Slide

  61. 61
    相関関係があるんだかないんだか…
    微妙なところだが、ヨシ!!!!
    ちなみに、個⼈的な所感としては、睡眠時間
    よりも、寝付く時間を早める、早寝が
    重要っぽい感じがしました。
    いや、良くはない

    View Slide

  62. 62
    寝付くまでの時間対集中度

    View Slide

  63. 63
    運動と集中

    View Slide

  64. 64

    View Slide

  65. 65
    ⼈体ABテスト
    朝ごはんを⾷べる
    07/02〜07/08
    個⼈的所感
    集中⼒等には差なし
    11時くらいに普段は感じない
    空腹感を覚えて⾟い

    View Slide

  66. 66
    集中度と体重推移

    View Slide

  67. 67
    カフェイン制限
    07/09〜07/20
    ⼈体ABテスト

    View Slide

  68. 68
    集中度と睡眠時間

    View Slide

  69. 69
    朝運動をしてみる
    ⼈体ABテスト
    07/17〜07/21

    View Slide

  70. 70

    View Slide

  71. 71
    満員電⾞に乗る。
    ⼈体ABテスト
    無駄に⼭の⼿線を⼀周
    新宿駅→東京駅→品川→渋⾕ 乗り継ぐ
    07/23〜07/27

    View Slide

  72. 72
    ストレス指数と集中度

    View Slide

  73. 73
    満員電⾞に乗る。
    つらい。
    良い数値が出てないのが⾟い。
    ちなみに、⾦曜⽇くらいから体調崩した

    View Slide

  74. 74
    断酒 そもそもお酒っ
    てどうなの?という話
    ⼈体ABテスト
    8⽉から今まで。

    View Slide

  75. M なぜエンジニアはパフォーマンス計測しないのか
    • a
    a
    a
    a
    75

    View Slide

  76. 76
    エンジニアが体脂肪を
    測るべき理由
    テストステロンがやる気に作⽤する
    脳機能は⾎流環境に左右される
    健康へのダメージは明⽩なため、⽣涯コード記述量
    に差が⽣じる

    https://yuchrszk.blogspot.com/2016/03/25.html

    https://www.ncbi.nlm.nih.gov/pubmed/22970699

    View Slide

  77. 77
    体脂肪率8〜13%(⼥性は17〜21%)
    https://www.cell.com/cell-metabolism/fulltext/S1550-4131(16)30596-4
    理想の体脂肪率とは?

    View Slide

  78. 78
    改善施策
    導⼊

    View Slide

  79. 79
    睡眠の改善

    View Slide

  80. 80
    睡眠を改善する理由
    寝ないとあからさまに集中⼒が切れる
    ⼀定の時間時間確保が必要

    View Slide

  81. 81
    質の良い睡眠とは?
    ⼈によって違うので要確認!
    ミュンヘンクロノタイプ質問紙
    https://mctq.jp/download/
    http://www.sleepmed.jp/q/meq/
    ⾃分の体質にあった睡眠時間、タイミング
    に合わせて寝る、起きる。

    View Slide

  82. 82

    View Slide

  83. 83
    ⾼品質な睡眠を求めて
    ブルーライトをカットする
    パソコン、スマホ等からでる光が
    メラトニンというホルモンの⽣成を妨げるらしい
    メガネにブルーライトカットをつけ、対応する。

    View Slide

  84. 84
    f.lux
    最近はデフォルト設定で利⽤。
    ⾊がすごいことになるけど
    ⽬へのダメージを軽減できる

    View Slide

  85. 85
    寝る時間、起きる時間を明かりで制御
    https://github.com/mogeta/hueCurtain
    起きる時間は基本のアプリである。
    寝る時間については、
    Hueを使って段々暗くする。を実装。

    View Slide

  86. 86
    いますぐ、寝る前スマホをやめる
    寝るまでに時間がかかっている⽇は
    明らかに睡眠の質が下がっている。
    布団に⼊ったら寝ることだけに集中する。
    寝れなかったら起きる。
    スマホは寝る前に!済ませる

    View Slide

  87. 87

    View Slide

  88. 88

    View Slide

  89. 89
    ⾷事の改善

    View Slide

  90. 90
    量ではなく、タイミングを管理する。
    16時間断⾷して、8時間は⾷べる。
    (⼥性の場合は12時間で様⼦を⾒ながら
    狙う効果
    ・⾃⾷作⽤(オートファジー)
    ・⾷欲の抑⽌
    ・⾎糖値の揺れを抑えて、安定した集中⼒の獲得
    00:00
    23:59
    13:00
    21:00

    View Slide

  91. 91
    栄養を考える
    66×2 = 132g
    132×4 = 528kcal
    を⽬標にする。
    タンパク質 脂質 糖質
    質のいい油を求めて
    サバやくるみを⾷べる
    オメガ3、6の
    バランスが⼤事
    精製された糖を避ける
    ほしいも、
    果物メイン
    ごはんは運動前に

    View Slide

  92. 92
    オススメの間⾷

    View Slide

  93. 93
    タンパク質、良質な油、栄養価
    を考慮した場合の⾷事例

    View Slide

  94. 94
    ザミートガイのグラスフェッドビーフ
    と低温調理は相性が良い!
    ANOVAさんは正解にたどり
    着いていた!!!!!!

    View Slide

  95. 95
    ベストトーク賞とはいわない!3位
    のAnovaが欲しい。投票お願いし
    ます!!!!!!!

    View Slide

  96. 96
    サプリメントの話
    いろいろ調べたけど、エンジニアは必ずこれを飲め!みたいなの
    なかったし、個⼈差が⼤きすぎるので省略
    タンパク質摂取に不安がある⽅は
    プロテインを飲もう

    View Slide

  97. 97

    View Slide

  98. 98
    ⾃分がした改善施策
    ジム通い
    パーソナル
    トレーニング
    歩数
    UP
    • 毎⽇⾵呂に⼊りに⾏く。
    • 気分が悪い⽇は4分だけ
    • 有酸素はしない。
    • 正しいフォームを学ぶ
    • 重量ではなく姿勢
    • 肩こり改善策を学ぶ
    • 1⽇1万歩をノルマに
    • ⽬標は2万歩
    • 昼休憩に公園まで歩く

    View Slide

  99. 99
    ⼈⽣の質を上げるための運動
    筋トレ HIIT
    • 追い込んだ⽇の次の⽇の
    • 集中⼒に注⽬

    • ⾼強度インターバルトレーニング
    • 短時間で済むので効率が良い
    • やった気になれる。
    • 仕事の休憩中にもできる
    歩く
    • 推奨歩数は⼀⽇2、300
    • 脳の活性化と

    View Slide

  100. 100
    https://journals.lww.com/acsm-msse/Fulltext/1996/10000/Effects_of_moderate_intensity_endurance_and.18.aspx
    タバタトレーニング
    20秒の全⼒運動
    10秒の休憩
    8セット繰り返す
    4分で終わる
    忙しいエンジニアにピッタリ

    View Slide

  101. 101

    View Slide

  102. 102
    脳機能改善でよくおすすめされる運動
    トレイルランニング クロスフィット
    トレーニング時間は1時間内
    軽く息が上がる〜ヘトヘトになるの間

    View Slide

  103. 103
    ダイエットの話
    • 摂取カロリー<消費カロリーになっていなければ痩せない!
    • 体重や体脂肪を絶対の指標にすると⼼が折れる
    • おすすめはゾゾスーツ。

    View Slide

  104. 104
    開発環境の改善

    View Slide

  105. 105
    ⼈間の脳がパフォーマンスを
    発揮しやすい環境を考える
    どうやら座るという⾏為はリスクが⾼いらしい。
    ⼈間の脳は歩いている時が⼀番活発になる
    https://yuchrszk.blogspot.com/2016/04/130_12.html
    https://yuchrszk.blogspot.com/2015/07/blog-post.html

    View Slide

  106. 106
    開発環境を改善する(物理)

    View Slide

  107. 107
    開発環境(V1)
    ⽴って開発
    机を買い直すのはちょっと予算が…
    なので、机の上における台を購⼊

    View Slide

  108. 108
    集中時間増加による肩こり悪化
    に対応する。
    Ergodoxの導⼊
    開発環境(V2)

    View Slide

  109. 109
    ⼈間は歩いているときが⼀番脳
    が働くというらしい。
    歩きながらコードを書くには?
    ステッパーの導⼊
    開発環境(V3)

    View Slide

  110. 110
    全部導⼊すると

    View Slide

  111. 111
    集中⼒改善

    View Slide

  112. 112
    集中できる時間
    測定してみた。結果
    朝の時間体の集中⼒は圧倒的。
    お昼ごはん後(14時以降)は落ち込む

    View Slide

  113. 113
    ⾃然に触れる
    ⾃然的なものに触れるだけでストレス低減というデータがある。
    それによって、時間がないという焦りが減り集中⼒が増す

    View Slide

  114. 114
    https://www.youtube.com/watch?v=5wdBpNwNfRo&t=5974s
    https://www.youtube.com/watch?v=Ftm2uv7-Ybw&t=4919s

    View Slide

  115. 115

    View Slide

  116. 116
    ホリデイリフトは本当か?
    ⾃分で⽴てた計画に沿った旅⾏が実⾏できると
    その後のやる気が11週間続くらしい。本当にー?
    ⼀泊⼆⽇、⾏く場所と
    ⾷べる物を計画していってみた
    https://www.youtube.com/watch?v=expen5OTVFg

    View Slide

  117. M なぜエンジニアはパフォーマンス計測しないのか 117
    ผॴԹઘ
    ௕໺ݝ্ాࢢ

    View Slide

  118. 118
    ⾃分の⼈⽣を⾃分で決める
    ⾃分のことは⾃分で決める
    思い通りににできる。
    ということが⼈⽣のモチベーションに繋がる

    View Slide

  119. 119
    集中UP

    View Slide

  120. 120
    これって、旅⾏に限らないのでは?
    アジャイル開発、スクラム開発等では「⾃分たちで⾒積もる」と
    いうことを強調している。
    プロジェクトを「⾃分たちで制御しているぞ」と思えることでや
    る気やモチベーションの維持につながる

    View Slide

  121. 121
    まとめ

    View Slide

  122. 122
    そんなに計測する必要ある?
    ぶっちゃけた話、指標にする数値は⼀つで⼗分だと思っている。
    その数値を伸ばそうという⽣活改善を⾏うと、⾃然と他のパラ
    メータも改善されていく。

    View Slide

  123. 123
    ⾃分の体のことは、
    ⾃分から学ぶしかない
    例えばお酒も酩酊する量は⼈によって違う。
    適切な運動量、筋トレ、朝起きる時間、集中できる姿勢。
    全部⼈それぞれだと思います。

    View Slide

  124. 124
    やる気を出すのではなく
    やる気が出る状態を作る
    よし!やるぞ!とやる気を出さないと⾏けない時点で⾟い。
    楽勝すぎるくらいの⾏動から始めよう!
    ジムで筋トレをするぞ → ジムの⾵呂に⼊りに⾏くぞ
    あの機能を実装するぞ! → あの機能の説明を書こう

    View Slide

  125. 125
    最⾼のエンジニアライフを
    みんなでつくっていこうな!

    View Slide

  126. 126
    余談:健康情報の情報源
    健康界隈、思っていたよりも情報更新が
    早いので、流⾏りにだまされない。

    View Slide

  127. 127

    View Slide

  128. 128
    ・写真、素材等
    https://www.pexels.com/photo-license/
    ・アイコンデータ
    https://www.iconfinder.com/
    ・Gopher
    https://github.com/golang-samples/gopher-vector

    View Slide