Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

2 やあ (´・ω・‵)
 ようこそ、バーボンハウスへ。
 このテキーラはサービスだから、まず飲んで落ち着いて欲しい。
 
 うん、「また」なんだ。済まない。
 仏の顔もって⾔うしね、謝って許してもらおうとも思っていない。
 
 でも、このスレタイを⾒たとき、君は、きっと⾔葉では⾔い表せない
 「ときめき」みたいなものを感じてくれたと思う。
 殺伐とした世の中で、そういう気持ちを忘れないで欲しい
 そう思って、このスレを⽴てたんだ。
 
 じゃあ、注⽂を聞こうか。

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4

Slide 5

Slide 5 text

5 ネタ被ってる。

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

10

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

14

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

21 元旦に振られる

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

28 測定する

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

38

Slide 39

Slide 39 text

39

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

41 全てを集約していく

Slide 42

Slide 42 text

42

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

47

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

50

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

52

Slide 53

Slide 53 text

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 }

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

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

Slide 57

Slide 57 text

57 睡眠データと集中度

Slide 58

Slide 58 text

58

Slide 59

Slide 59 text

59 睡眠データと集中度

Slide 60

Slide 60 text

60 ヨシ !

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

63 運動と集中

Slide 64

Slide 64 text

64

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

66 集中度と体重推移

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

68 集中度と睡眠時間

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

70

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

72 ストレス指数と集中度

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

76 エンジニアが体脂肪を 測るべき理由 テストステロンがやる気に作⽤する 脳機能は⾎流環境に左右される 健康へのダメージは明⽩なため、⽣涯コード記述量 に差が⽣じる • https://yuchrszk.blogspot.com/2016/03/25.html • https://www.ncbi.nlm.nih.gov/pubmed/22970699

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

78 改善施策 導⼊

Slide 79

Slide 79 text

79 睡眠の改善

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

82

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

87

Slide 88

Slide 88 text

88

Slide 89

Slide 89 text

89 ⾷事の改善

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

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

Slide 92

Slide 92 text

92 オススメの間⾷

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

97

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

99 ⼈⽣の質を上げるための運動 筋トレ HIIT • 追い込んだ⽇の次の⽇の • 集中⼒に注⽬ • • ⾼強度インターバルトレーニング • 短時間で済むので効率が良い • やった気になれる。 • 仕事の休憩中にもできる 歩く • 推奨歩数は⼀⽇2、300 • 脳の活性化と

Slide 100

Slide 100 text

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

Slide 101

Slide 101 text

101

Slide 102

Slide 102 text

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

Slide 103

Slide 103 text

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

Slide 104

Slide 104 text

104 開発環境の改善

Slide 105

Slide 105 text

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

Slide 106

Slide 106 text

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

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

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

Slide 109

Slide 109 text

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

Slide 110

Slide 110 text

110 全部導⼊すると

Slide 111

Slide 111 text

111 集中⼒改善

Slide 112

Slide 112 text

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

Slide 113

Slide 113 text

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

Slide 114

Slide 114 text

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

Slide 115

Slide 115 text

115

Slide 116

Slide 116 text

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

Slide 117

Slide 117 text

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

Slide 118

Slide 118 text

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

Slide 119

Slide 119 text

119 集中UP

Slide 120

Slide 120 text

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

Slide 121

Slide 121 text

121 まとめ

Slide 122

Slide 122 text

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

Slide 123

Slide 123 text

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

Slide 124

Slide 124 text

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

Slide 125

Slide 125 text

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

Slide 126

Slide 126 text

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

Slide 127

Slide 127 text

127

Slide 128

Slide 128 text

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