日報を書こう! (日報自動投稿プログラムもあるヨ!)

この記事は4分程度で読めます。

はじめに

これは「フィヨルドブートキャンプ Part1 Advent Calendar 2020」14日目の記事です!

昨日は西田剛さんの 見えてきたエンジニア像 でした。

adventar.org

Part2もあります。 adventar.org

この記事で書いたこと

フィヨルドブートキャンプでは学習した日に日報を書きます。 4月から学習を継続できているのは、日報のおかげなのでは?とやっと気付き、いろいろな気持ちが湧いてきたのでまとめようと思います。 +αで日報に関係したコードを書きたかったので、日報自動投稿プログラムを作ってみました。 当たり前のことしか書けませんが、これが今自分が感じていることです!

なぜ日報を書くのか

データ集計のため

ラクティスの画面ではそのプラクティスにどれだけ時間がかかったか、中央値と平均値を集計し表示しています。 日報は15分間隔でしか学習時間を記録できないので、完全に正確な数値ではありませんが、参考になる数値なのでそのプラクティスの勉強をしたら必ず日報を書きたいところです。 学習したのに日報を書かないと集計されず、正確なデータから遠ざかってしまうので良くないな〜と思います。

お金がもったいないから

月額29800円は決して安くない金額です。 仮に毎日10時間学習したとして、1日の金額は1000円になります。 受講生はこの金額をメンターのお仕事への対価として支払っていて、メンターの基本的なお仕事は提出物・日報の確認と考えられます。 (それ以外にも就活の相談、プラクティスの改良、コミュニティ作りなどもあると思います。いつもありがとうございます!) もし勉強したのに日報を書かない日があったら、受けられるサービスを自ら放棄し、損していることになります。もったいない!

将来の自分、他の人が助かるから

自分だけしか読まない雑に書いたメモは、数日経つと何を書いているのか解読できないなんてこともありました。 日報は自分だけが読むものではないので、最低限他の人が分かるように書きます。 自分は何度も過去の自分の日報、他の人の日報に助けられました。

精神的な支えになるから

しんどいなと思った時は初日の日報を見返しています。 「初日の学習時間が10時間45分だと?! あの時はやる気に満ち溢れていたんだ.. また頑張ろう!」という気持になれます。 将来実務でしんどいなと思った時に鼓舞してくれるのは、自分が書いた日報かもしれません。

しんどい時こそ日報を書こう

振り返ってみてちょっとしんどいなと思う時こそ日報を書くべきだなと感じています。 しんどい時って学ぶことが多過ぎてどこから手をつけていいのか分からないと思います。 そんな時こそ最低限理解しているところ、分からないところを日報に書き、一度頭の中を整理するべきだと思います。 またしんどいという自分の気持ちを伝えるのも、日報が一番手軽だと思います。 その人がどんな気持ちかメンターは察することができないので、しんどい時はそれを言葉にした方がいいと思います。

進捗が出なかったり、何を書けばいいのかわからない時は、勉強時間と感想だけの短い日報でもいいので投稿しちゃいましょう。 何も書かないより何倍も良い!

日報自動投稿プログラム

たまに日報書くのをサボってしまうので日報自動投稿プログラムを作ってみました。 毎日WIPの日報を投稿してくれます。

f:id:mashoo1101:20201214033941p:plain
プログラムによって作成された日報

github.com

使い方

  1. report.rbにログイン名とパスワードを記述してください。
  2. 定期実行にcronを使用します。 crontab -eでエディタが起動したら以下のフォーマットに沿ってcronを登録します。
実行タイミング  Rubyのインストール場所  実行するRubyプログラムのフルパス

Rubyのインストール場所はwhich rubyで確認できます。

5 0 * * * /Users/mashio/.rbenv/shims/ruby /Users/mashio/auto-reporting/report.rb   

5 0 * * *report.rbを毎日0時5分に実行するという意味になります。

qiita.com

日報が投稿されない場合

設定した時間を過ぎても日報が投稿されない場合は、/var/mail/xxxを確認してください。

Mac OSがcatalinaの場合、以下の設定をする必要があります

mac-ra.com

コードの説明

以下ざっくりとした流れです。

  1. JWT Tokenを取得する。
  2. 取得したJWT TokenをAuthorizationにのせて、CSRFトークンとcookieを取得する。
  3. CSRFトークンとcookieをのせて、日報を新規作成する。

最初はcurlコマンドを使って書いていたのですが、読みにくかったのでRubyのコードに書き換えました。 以下のサイトでcurlコマンドをペーストすると、Rubyのnet/httpの形式に変換してくれます。便利〜 https://jhawthorn.github.io/curl-to-ruby/

まとめ

改めて日報って良い仕組みだなと思いました。書くしかない!!