Ping-tの学習履歴をGoogle Calendarに同期する仕組みを作った



Ping-tというeラーニングサイトの取り組み履歴をGoogle Calendarに同期する仕組みを作ったという話です。

Ping-tとGoogle Calendar

仕事しながら資格勉強をするとなると、手が空いている時間、特に通勤時間や昼休みを有効に活用する必要があります。
私は分厚い本を持ち歩くのが嫌、というか重すぎてできないので(資格勉強の本って500ページとかあるので)Ping-tを使ったeラーニングに頼っています。



勉強は、

  1. Google Calendarでどの期間に問題集のどの分類に取り組むか登録しておく
  2. それに従って問題集に取り組む
  3. 取組の履歴から、予定と進捗の進み具合を照らし合わせて受験日をずらしたり前倒しを判断する

という風に勧めています。なので学習履歴をそれなりの頻度で閲覧するわけです。



その履歴は、問題集の学習履歴ページから閲覧できます。

いつもこのページの学習履歴ページを元にして、進捗を判断しているわけです。
また、合格した後から自分がどう取り組んだかについて振り返るのにも使います。





このページに最近不満がありました。

それは、

  1. 学習履歴のCSVエクスポートができない
  2. 履歴をGoogle Calendarと同期できない

の2点です。成果として履歴をテキストの形で残しておきたいのですがそれができないということです。
Google Calendarとの同期については手入力していました。だるい。

また、このエントリを書いていて初めて知りましたが、履歴の保持期間というのがあるらしく、どの問題にもログインしないと半年で履歴が消えるそうです。後から振り返りとかできなくなるのでそれは困る・・・

http://ping-t.com/modules/bulletin/index.php?page=article&storyid=470

データ自体はプログラムからセッションを維持してアクセスしてやれば簡単に取れるし、Google Calendarへの予定登録は、以前に映画館の上映スケジュールをカレンダーに同期させるという似たような事をやった事があったのでそれほど時間をかけずに実装できそうだよねという事で、実装しました。



gcal-sync-with-ping-t



定期実行でバッチをまわせば、Google Calenarに実績を同期させてモバイルデバイスから閲覧できるし、PCからなら、JavaScriptでユーザスクリプトを書いて、学習履歴を表示させた瞬間にサーバにあるバッチをキックして即時で同期させるなんてこともできるかもしれません。



unix系のサーバがあれば、Pythonとgitがあれば簡単にインストールできるので、Ping-tでLPICとかCCNAOracle Masterの資格勉強をしている人は、これで予定と実績の管理だとか、月単位のカレンダーでざっとみてどれぐらいの頻度とか密度で問題集に取り組めているかを確認するのに使って見てはどうでしょう。

改善点

取組の履歴を記録するだけではなく、自分で定義したオリジナルの実績解除システムみたいなのを実装するのも面白そうです。例えば

  • 5日連続で問題集に取り組んだ
  • 1日に200問以上取り組んだ
  • 正答率100%を5回以上

とか。そこまでやりだすと勉強する時間がなくなって本末転倒になりそうなのでやらないですけど。
誰かやって。



あとはこの前作ったtweet.shを使って、「今日は○問の問題に取り組みました #pt_study」
とかTwitterで呟く仕組みを作るとか。