1年間で読んだWebサイトをRedashで集計して可視化してみた

はじめに

私は、興味がある分野の技術ブログ等をRSS登録して毎日更新された記事をチェックしているのですが、有用な記事や広く共有したい記事などを埋もれさせてしまうことがあり、もったいないなぁと感じていました。
この課題を解決するため、Webサイトをクリッピング・記録し、RSSで共有ができるWebアプリケーション、「fluid」を作りました。
fluid.sublimer.me
今日は、このfluidを使い始めてちょうど1年なので、記念に1年間で記録したWebサイトを集計・可視化してみました。

可視化ツール

データを可視化するツールは色々ありますが、今回はRedashを使いました。
fluidはデータベースにMongoDBを使用しているのですが、Redashは公式でMongoDBとの連携に対応しているので手軽に使うことができました。
加えて、表やグラフだけでなくWord Cloudでの可視化にも対応しており、集計結果を様々な方法で表現できます。
RedashはDockerで動かしました。
公式のdocker-compose.ymlはしばらく更新がされていなかったので不安でしたが、イメージのタグを最新のものに書き換えても問題なく起動しました。
なお、環境変数は以下のようなenvファイルを作り、docker-compose.ymlのenv_fileで指定しています。

POSTGRES_PASSWORD=redash
POSTGRES_USER=redash
POSTGRES_DB=redash
REDASH_REDIS_URL=redis://redis:6379/0
REDASH_DATABASE_URL: "postgresql://redash:redash@postgres:5432/redash"

可視化する

1日あたりの記録記事数

記録した記事の数を1日あたりの件数で集計したものが以下の棒グラフです。
f:id:sublimer:20220305175941p:plain
最大が2021/06/30の76件、最小は2021/04/02、2021/09/05、2021/10/29の1件で、0件の日はありませんでした。

カテゴリーごとの記録記事数

fluidではカテゴリーを設定して記事を登録できます。
カテゴリーごとに件数を集計したものが以下の円グラフです。
f:id:sublimer:20220305180434p:plain
全体の1/3以上がtechでした。
RSSで購読しているサイトは企業の技術ブログなども多く、それが反映されていると考えられます。

タグごとの記録記事数

30件以上記録されているタグについて、タグごとに件数を集計してみました。
fluidにおけるカテゴリーとタグの違いですが、前者は記事1つにつき1つしか設定できないのに対して、後者は1つの記事に0個以上設定できます。
f:id:sublimer:20220305180830p:plain
fluidでは手動で指定しない限り、Webサイトのmetaタグのkeywordsの内容がタグとして記録されます。
keywordsを指定していないWebサイトも多くあるため、どうしても指定しているサイトに偏ってしまっているようです。
時事ドットコム」や「時事通信社」のタグがとりわけ大きいのは、時事通信のニュースサイトをRSSで購読していることが理由です。

カテゴリーとタグごとの記録記事数

techカテゴリーのうち10件以上記録されているタグについて、件数を集計してみました。
f:id:sublimer:20220305181431p:plain
企業の技術ブログではkeywordsを指定している記事が多く、それが反映されているようです。
こうして見てみると、プログラミングの話だけでなくネットワークやインフラ寄りの話もあり、広く浅く記事を読んでいた様子が見て取れます。
techカテゴリーではなく、miscカテゴリーで集計してみると、以下のようになりました。
f:id:sublimer:20220305181938p:plain
miscカテゴリーではガジェット関係の記事が多かったようです。

ドメインごとの記録記事数

Webサイトのドメインごとに件数を集計すると、以下の円グラフのようになりました。(上位20件)
f:id:sublimer:20220305183314p:plain
GitHubが2割近くを占め、2位のZennと合わせると全体の1/4以上になっていました。
techカテゴリーに限定して集計すると、以下のようになりました。
f:id:sublimer:20220305183341p:plain
Zennが1/4以上でかなりの割合を占めています。
また、Classmethod、フューチャー、IIJなど、企業の技術ブログの有名どころも軒並みランクインしていました。

おわりに

1年間で記録した記事の総数は7119件でした。この数はfluidに記録した数なので、実際に目を通した記事は、この数倍はあります。
fluidは自分のために作ったアプリケーションなので、使い心地もとても良く、特に不満も感じずに1年間使い続けることができました。
こうして記録してきたものを可視化すると、なかなか気づかないようなことに気づけるのでとても新鮮ですね。
fluidには、登録した記事をRSSとして共有する機能があるので、私が厳選した記事を読んでみたい。という方は以下のURLをRSSリーダーやSlackのRSS購読機能に登録してみてください。
https://fluid.sublimer.me/api/feed
RSS経由での情報収集は習慣になりつつあるので、今後も継続してやっていきたいと思います。

今回集計に使用したRedashのクエリは、以下のGitHubリポジトリで公開しています。
github.com
fluidとRedashを使えば、誰でも同じように集計ができるはずです。