はじめに
皆さんは日々アウトプットしていますか?
私も最近になってGitHubの草を途絶えさせずに、アウトプットすることを心がけてます。
学習記録を可視化できることってモチベーションに繋がりますよね!
とはいえ、Udemyなどの動画学習サービスで資格勉強している時に、「学習を継続した証としてGitHubに草を生やせたら、モチベーションも維持できるのにな〜」とふと思い立ち、
じゃあ、数時間継続して視聴したら草を生やせる仕組みを作ってみるか!となって作ってみました。
(学んだことをアウトプットするところまでを習慣化する方がいいということはわかってはいるのですが、、)
今回作りたいものの要件
今回実現したい処理内容はこんな感じです。
- Udemyで動画を1時間見る
- 自動で
learning-log.txt
に学習ログが追記される - 自動でGitHubにコミット&プッシュされる
- 草が生い茂る🌱(ゴール)
作ってみた
READMEに使い方書いてるのでもしよければForkして使ってくださると喜びます。
使用してみてのご指摘などもお手柔らかにご意見いただけると幸いです。
使い方
1. ファイル構成
udemy-learning-log/
├── manifest.json # ブラウザ拡張機能の設定ファイル
├── content.js # Udemyサイトで動作するスクリプト
├── push_log.py # ログ記録とGit操作を行うPythonサーバー
├── learning-log.txt # 学習記録が保存されるファイル
├── LICENSE # MITライセンス
└── README.md # このファイル
2. 動作の仕組み
- content.js がUdemyサイトで動画の視聴時間を監視
- 1時間以上視聴すると
http://localhost:3001/push
にPOSTリクエストを送信 -
push_log.py がリクエストを受信し、現在時刻を
learning-log.txt
に記録 - 自動的に
git add
、git commit
、git push
を実行 - 継続視聴時に更に1時間毎に再度記録を自動的にpushする
3. 早速動かしてみよう!
1. 前提条件
- Python 3.x がインストールされていること
- Git がインストールされていて、このGitHubリポジトリがForkされていること
- Chromeブラウザが使用できること
2. リポジトリのクローン
git clone git@github.com:ユーザー名/udemy-learning-log.git
3. ブラウザ拡張機能のインストール
-
Chromeブラウザで
chrome://extensions/
のURLを開く -
udemy-learning-log
プロジェクトのフォルダを選択
4. サーバーを立ち上げ & Udemyの視聴開始
1. ブラウザからリクエストを受け取るPythonサーバーの起動
ターミナルでプロジェクトディレクトリに移動し、以下のコマンドを実行:
python push_log.py
# バックグラウンドで実行したい場合は↓
nohup python push_log.py &
サーバーが正常に起動すると以下のメッセージが表示されます:
Push server running at http://localhost:3001
2. Udemyでの学習開始
- ブラウザでUdemyサイト(https://www.udemy.com)にアクセス
- 任意のコースの動画を再生
- 1時間視聴する毎に自動的に学習ログが記録されます
3. 学習ログの確認
-
learning-log.txt
ファイルに学習記録が追加されます - 自動的にGitコミット・プッシュが実行されます!
- GitHubリポジトリで学習履歴を確認 & 草が生えます!
(最近頑張り始めたばかりで、まだまだ生い茂っておらずお恥ずかしいのですが、自戒の念を込めて掲載します。。)
まとめ
正直動画を見るだけではインプットでしかないので、アウトプットしたソースコードをpushしたり、「TIL」リポジトリを作成して、アウトプットまでして草を生やした方が学習の質としては高くて効果的ですし、アウトプットするまでを習慣化した方がいいと考えています!
TILとは何かは、↓の記事を参考にしていただければと思います🙇
インプットしただけでも継続だよね、というよこしまな気持ちで今回の仕組みを作ってみたというお話でした。