$\huge{元氣ですかーーーーッ!!!}$
はじめに
昨年、 @torifukukaiou さんの記事をパクったリスペクトして、以下の記事を書きました
Elixir Advent Calender 2022 について、誰が何記事投稿しているか、を Livebook で視覚化しています
2023/12/4 最新情報を追記
2022年の最終的な結果はこちら
最大が @torifukukaiou さんの 70 投稿で、 6 名もの完走者がいます
全体では 16 シリーズ * 25 記事 = 400 記事というとんでもないお祭り騒ぎでした
というわけで、 $\huge{2023 年も Livebook でカレンダーの状況を見ていきましょう!}$
実装したノートブックはこちら
実装
と言っても、実は 2022 の実装をほぼ変えずに実行できてしまいました
依存モジュールをアップデートしたのと、 2022 を 2023 に書き換えるだけで実行できました
セットアップ
Mix.install([
{:req, "~> 0.3"},
{:req_easyhtml, "~> 0.1"},
{:explorer, "~> 0.7"},
{:kino, "~> 0.11"},
{:kino_vega_lite, "~> 0.1"}
])
エイリアス、マクロの設定
alias Explorer.DataFrame
alias Explorer.Series
require Explorer.DataFrame
リクエストの準備
req =
Req.new(http_errors: :raise)
|> ReqEasyHTML.attach()
Elixir Advent Calendar 2023 のデータフレームへの読込
calendar_df =
req
|> Req.get!(url: "https://qiita.com/advent-calendar/2023/elixir")
|> then(& &1.body["[data-js-react-on-rails-store=AppStoreWithReactOnRails]"].nodes())
|> Floki.text(js: true)
|> Jason.decode!()
|> get_in(["adventCalendars", "tableAdventCalendars"])
|> Enum.at(0)
|> Map.fetch!("items")
|> Enum.frequencies_by(&get_in(&1, ["user", "urlName"]))
|> then(fn map ->
%{
name: Enum.map(map, fn {name, _} -> name end),
count: Enum.map(map, fn {_, count} -> count end)
}
end)
|> DataFrame.new()
|> dbg()
データテーブルの表示
calendar_df
|> DataFrame.arrange(desc: count)
|> Kino.DataTable.new()
グラフ表示
x = Series.to_list(calendar_df["name"])
y = Series.to_list(calendar_df["count"])
VegaLite.new(width: 800, height: 400)
|> VegaLite.data_from_values(x: x, y: y)
|> VegaLite.mark(:bar)
|> VegaLite.encode_field(:x, "x", type: :nominal, sort: "-y", title: "アカウント名")
|> VegaLite.encode_field(:y, "y", type: :quantitative, title: "記事数")
2023年11月22日現在の集計結果
@piacerex さんが 32 件でトップです
ついで 2 名 26 件で完走賞達成、そこに私が追随しています
まだ開始1週間以上前の状況なのにカレンダー 10 シリーズなので、やはり Elixir の勢いはすごいですね
私もまだまだこれからです(他のカレンダーにも参加しているので実は完走賞確定済)
2023年12月4日現在の集計結果
@piacerex さんが更に伸び、 41 件でトップです
4位以下の後続がグンと伸びていますね
参加者数も 26 から 37 に大幅増加し、シリーズも 14 、総記事数は 210 になりました
まだまだ伸びそうですね
2023年12月26日現在の集計結果
クリスマスが終わりました
投稿者数 40 人、記事数 293 という圧倒的ボリューム!
@piacerex さんが 46 件、もうすぐ 2 シリーズ分になります!
(しかも他のカレンダーにも投稿しているという、、、)
他にも私含め 6 名が完走しています!
まだ記事投稿はできるので、ここからどこまで伸びるか
2024年1月1日現在の集計結果
やれるだけのことはやりました
合計 334 記事!
11月以降の記事しか紐づけられない中で、とんでもない数です!
みんなの Elixir 愛が止まらないですね
まとめ
2023 も 2022 と変わらない方法でデータが取得できました
完全にカレンダーの仕組みが完成されている証ですね
この記事は今後も定期的に更新していきます