たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

効率化は個人を幸せにしない、怠惰が個人を幸せにする

効率化の精神は個人を幸せにしない。なぜなら、効率化は為すべき仕事を増やす仕組みだからだ。
仕事を素早く終わらせノンビリする「怠惰」の精神こそが、個人を幸せにする。

爆速でやって、残りを休んだら、それは効率化したと言えるのか?

10時間かかる仕事を1時間で終わらせた。
残りの9時間は、ぼけっとノンビリしてた。
彼は効率化に成功したか?
いや、していないだろう。
なぜなら総生産量が変わらないからだ。

何? 残りの9時間で働けばたくさん成果が出るから効率上がってるじゃないかって?
そうだ、その通り。
残りの9時間働けば、効率化が達成される。

効率化は、瞬間的な仕事速度を意味しない。
所定の時間における生産量を意味する。

効率化は永遠に仕事を増やし続ける

効率化の精神に従うと、永遠に仕事量が増え続ける。
仕事を効率良くこなし、余裕を生む。
余裕が出来たからノンビリする? 言語道断!
より多く生産するために、余裕が出来れば余裕を仕事へ注ぎ込む。
より効率を上げて余裕を生み、余裕を消費して仕事を増やす。

つまり効率化の精神は (論理的帰結として) 無限に仕事を増やし続ける。

たくさん仕事をすると幸せなの?

余裕なく仕事量を増やし続けることは、幸せなのか?
私はそうは思わない。
効率化は余裕を仕事へ変換し続ける、だから個人の幸せを生まない。

余裕が出来たら仕事を入れなければいいって?
そうだ、その通り。
気づいたかな? それは、効率化に真っ向から反対する考え方だ
最初の例に出てきた、1時間で仕事を終わらせてノンビリする、効率化を達成しないやり方だ。
そう、この生き方こそ、幸せに繋がる方法なのだ。

プログラマーの三大美徳 その1 「怠惰」

怠惰は「なまけ」「面倒くさがり」という意味もある。
しかしプログラマー界では、怠惰は三大美徳の1つとされる。
なぜなら、ホンモノの怠惰者は、面倒を最小限にするために工夫を厭わないからだ。
怠けるために、働く。
結果、作業時の生産性 (作業時間あたりの生産量) は激増する。
ここだけみれば、効率化と同じだ。
しかし、怠惰は楽するために働く精神なのだ。
生まれた余裕を仕事へ注ぎ込むなど言語道断。
楽して好きなことして過ごすのだ。
この、最終的な目的の違いが、怠惰が幸せを生み、効率化が幸せを生まない理由だ。

怠惰が幸せを生む。効率化は生まない。

Google Homeに話しかけて記録をとる -私と先人たちのまとめ-

Google Homeは簡単に自分だけのアプリが作れます。
特に、話しかけて記録するやり方は簡単にもかかわらず有効。
先人たちがどのようなものを開発し、私が何を開発したか後世のためにまとめた。

VoiceSleepLogger

OK Google、おやすみ」というと入眠時間を記録。
OK Google、おはよう」というと起床時間を記録し、それをGoogleカレンダーに書き込んでくれる
こいつのおかげでどのくらい寝ているのか完璧に理解できるようになった (思ったより寝てた)
github.com

ThinkStacker

ThinkStackerという、考えごとのstackみたいなものを作った。
考えごとを始めたらpush!
もし考え事中に別のことを考えたくなったら、さらにpush!!
終わったらpop!
すると元の考え事が一番上にくるので、戻れる!
(ドキュメントも実装もほぼ入っていない、整備しなければ…)
github.com

先人たち

"Google Homeに話しかけて手軽に行動ログを記録できるようにした"
qiita.com

"Google Home、IFTTT、Googleスプレッドシートを使って独自音声コマンドでログをとる(ついでにNode.jsやngrokやらも使ってLINEやGoogle Homeに通知する)"
qiita.com

"Google Home に話しかけるだけで、日記を書く仕組みを作ってみた"
qiita.com

”超簡単Google Homeライフログを取る”
qiita.com

"Google Homeで血圧を記録できるようにした"
masawada.hatenablog.jp

モチベーション、confidence、結果

confidenceの喪失はモチベーションを下げ、トライを阻害し、結果を阻害する.
技術的に成熟する寸前であっても、正しい場所と問題ある点が切り分けられない段階ではconfidenceが激減することがある。
∵ 成熟しないと成功点/問題点の場所が見えないから

弱気、自信

専門家のアドバイスによるconfidenceの上昇 (良い点を良い、問題点を問題だと教えてくれる)

Google Calendarを操作する

Google Calendarは様々な方法で操作できる。

Google Calendar API

cliant library (SDK) あり。Node.jsもアルファだけどあり。

REST API

  • Acl
  • CalendarList
  • Calendars
  • Channels
  • Colors
  • Events: 個別予定のCRUD. baseURL - /calendars/calendarId/events

    • C
      • (import)POST /import: import an event
      • (insert)POST : creates an event
      • (quickAdd)POST /quickAdd: creates an event quickly
    • R
      • (get)GET /eventId: get an event
      • (list)GET: list up events
      • (instances)GET /eventId/instances: list up instances of speficied recurring event
    • U
      • (patch)PATCH /eventId: updates an event (partially?)
      • (update)PUT /eventId: updates an event (fully?)
    • D
      • (delete)DELETE /eventId: deletes an event

      • (move)POST /eventId/move: moves an event to another calendar

      • (watch)POST /watch: watch for changes to events resources
  • Freebusy

  • Settings