闘魂Elixir ── 03. 完走賞を目指してみましょう！【自動更新記事】

<b><font color="red">$\huge{元氣ですかーーーーッ！！！}$</font></b>

https://qiita.com/advent-calendar/2022

https://qiita.com/advent-calendar/2022/elixir

# はじめに

闘魂と[Elixir](https://elixir-lang.org/)が出会いました。
闘魂 meets [Elixir](https://elixir-lang.org/).です。
[Elixir](https://elixir-lang.org/) meets 闘魂.でもよいです。

本日は、[Elixir](https://elixir-lang.org/)でこんなことができますよー　を紹介します。
題材は、一つのカレンダーに各人が何件投稿したのかを調べるプログラムを[Elixir](https://elixir-lang.org/)で作ることを楽しみます。
つまり、[完走賞](https://qiita.com/advent-calendar/2022/present-calendar)の応援記事です。

![スクリーンショット 2022-11-23 11.55.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/df5f4394-e423-36e7-c253-c462e00c3c85.png)

**この記事は定期的に実行結果を自動更新しています。**

# [Elixir](https://elixir-lang.org/)のプログラム

さっそくプログラムを示します。
闘魂Elixirを一通り学んだあとはより理解が進むでしょうし、なにかしらプログラミングの経験があればなんとなくご理解いただけるものとおもっております。

```elixir:sample.exs
Mix.install [{:req, "~> 0.3.0"}, {:floki, "~> 0.34.0"}]

with %{status: 200, body: html} <- Req.get!("https://qiita.com/advent-calendar/2022/elixir"),
    {:ok, parsed_doc} <- Floki.parse_document(html),
    [{_tag, _attrs, json} | _] <- Floki.find(parsed_doc, "[data-js-react-on-rails-store=AppStoreWithReactOnRails]"),
    {:ok, decoded} <- Jason.decode(json),
    [table_advent_calendars | _] <- get_in(decoded, ["adventCalendars", "tableAdventCalendars"]) do
  table_advent_calendars
  |> Map.fetch!("items")
  |> Enum.frequencies_by(&get_in(&1, ["user", "urlName"]))
  |> Enum.sort_by(fn {_user, cnt} -> cnt end, :desc)
else 
  _ -> :error
end
|> IO.inspect()
```

# 実行

Dockerで実行します。
`sample.exs`を作ったディレクトリで`docker run`してください。

```bash:CMD
docker pull hexpm/elixir:1.14.2-erlang-25.1.2-alpine-3.16.2

docker run --rm -v $PWD:/app hexpm/elixir:1.14.2-erlang-25.1.2-alpine-3.16.2 sh -c "mix local.hex --force && mix local.rebar --force && cd /app && elixir sample.exs"
```

2日目の「[闘魂Elixir ── 02. インストール](https://qiita.com/torifukukaiou/items/42bc08509fa97fa970ae)」を参考に、[Elixir](https://elixir-lang.org/)をインストールしてくださった方は、[IEx](https://hexdocs.pm/iex/IEx.html)を起動して動かしてみてください。

# 実行結果 (2025-06-23 23:00:12.532014Z現在)

実行結果です。
(**ここは自動的に更新しています**)


```elixir
[
  {"torifukukaiou", 70},
  {"RyoWakabayashi", 60},
  {"mnishiguchi", 34},
  {"piacerex", 31},
  {"Yoosuke", 31},
  {"nako_sleep_9h", 31},
  {"zacky1972", 30},
  {"t-yamanashi", 20},
  {"the_haigo", 15},
  {"Alicesky2127", 13},
  {"GeekMasahiro", 11},
  {"ShigeItoEx", 7},
  {"miwacchi", 5},
  {"koga1020", 4},
  {"westbaystars", 3},
  {"naritomo08", 3},
  {"ShozF", 3},
  {"tamanugi", 2},
  {"ta_to_jp", 2},
  {"k-j-y", 2},
  {"mokichi", 1},
  {"Goody27", 1},
  {"def_elixir", 1},
  {"MzRyuKa", 1},
  {"hisaway", 1},
  {"koyo-miyamura", 1},
  {"gx3n-inue", 1},
  {"GKBR", 1},
  {"curry_on_a_rice", 1},
  {"k41531", 1},
  {"a_utsuki", 1},
  {"ohr486", 1},
  {"akiraarika932", 1},
  {"Shintaro_Hosoai", 1},
  {"kikuyuta", 1},
  {"tomoaki-kimura", 1},
  {"Gsann", 1},
  {"hiro_1107", 1},
  {"tuchiro", 1},
  {"kentaro", 1},
  {"nanbut14", 1},
  {"myasu", 1},
  {"pojiro", 1}
]
```

記事の数が25を超えていると、[完走賞](https://qiita.com/advent-calendar/2022/present-calendar)の候補です。
現状、7名が候補です。

@t-yamanashiさん（あと5記事）, @the_haigoさん（あと10記事）, @Alicesky2127さん（あと12記事）, @GeekMasahiroさん（あと14記事）, @ShigeItoExさん（あと18記事）, @miwacchiさん（あと20記事）, @koga1020さん（あと21記事）, @westbaystarsさん（あと22記事）, @naritomo08さん（あと22記事）, @ShozFさん（あと22記事）, @tamanugiさん（あと23記事）, @ta_to_jpさん（あと23記事）, @k-j-yさん（あと23記事）, @mokichiさん（あと24記事）, @Goody27さん（あと24記事）, @def_elixirさん（あと24記事）, @MzRyuKaさん（あと24記事）, @hisawayさん（あと24記事）, @koyo-miyamuraさん（あと24記事）, @gx3n-inueさん（あと24記事）, @GKBRさん（あと24記事）, @curry_on_a_riceさん（あと24記事）, @k41531さん（あと24記事）, @a_utsukiさん（あと24記事）, @ohr486さん（あと24記事）, @akiraarika932さん（あと24記事）, @Shintaro_Hosoaiさん（あと24記事）, @kikuyutaさん（あと24記事）, @tomoaki-kimuraさん（あと24記事）, @Gsannさん（あと24記事）, @hiro_1107さん（あと24記事）, @tuchiroさん（あと24記事）, @kentaroさん（あと24記事）, @nanbut14さん（あと24記事）, @myasuさん（あと24記事）, @pojiroさん（あと24記事）
がんばってください！
<font color="red">$\huge{闘魂}$</font>
<font color="red">$\huge{元氣があればなんでもできる！}$</font>

**We Are The Alchemists, my friends!**

# ワンポイントレッスン

`sample.exs`中、`"https://qiita.com/advent-calendar/2022/elixir"`をお好みのカレンダーのURLに変えると、ユーザー毎の記事数がわかります。
~~ただし、無理やりなところがあるので、すべてのカレンダーで動くとは限りません。なんとなく、カレンダーのシリーズが複数あるカレンダーでは動作するようにおもいます。無理やりなところというのは、特に`String.split("encryptedId")`の部分です。~~
↑↑↑@mnishiguchi さんのスペシャルサンクスにより改善しました！↑↑↑

[|>](https://hexdocs.pm/elixir/Kernel.html#%7C%3E/2)は、パイプ演算子と呼ばれます。

https://qiita.com/zacky1972/items/2dc7c4930f6ab8a4688a


# 今日の<font color="#d00080">闘魂</font>

今日は、『南洲翁遺訓』から言葉を引きます。

---
人を相手にせず、天を相手にせよ。天を相手にして、己れを尽くし人を<ruby>咎<rt>とが</rt></ruby>めず、我が誠の足らざるを<ruby>尋<rt>たず</rt>ぬ</ruby><ruby>可<rt>べ</rt></ruby>し。
---

解説は、[こちら](http://www.hyugagakuin.ac.jp/about/words/e/2021/03/09/002142.html)をご参照ください。
猪木さん流に言うと、「闘魂」であり「夢というのは、純粋性がなければダメなんだ」ということです。


> 不純な夢は、人に見透かされる。けれども、純粋な夢は人に応援される。それだけで、夢の実現度は大きく変わってくるはずだ。(中略)彼が裏切ろうと真犯人が別にいようと、どうでもいい。わたしは、すべての過去を根に持たないからだ。

天つまりお天道様に恥ずかしくない、別の言い方をすると誰に対しても恥じることのない夢というものは、純なものだということです。純であるがゆえに賛同する人もでてくるのです。

稲盛和夫師の「[動機善なりや、私心なかりしか](https://www.kyocera.co.jp/inamori/philosophy/words47.html)」にも通じます。

ちなみに、稲盛和夫師は鹿児島県出身で西郷南洲翁を敬愛していることはよく知られていることだとおもいます。猪木さんも実は、鹿児島に縁があることはあまり知られてはいないのではいでしょうか。猪木さんのお生まれは神奈川県鶴見です。猪木さんの父は、鹿児島県出水の出身であるとのことが、『[アントニオ猪木自伝](https://www.shinchosha.co.jp/book/129721/)』:book:の中で述べられています。
また、稲盛経営１２ヶ条の第８条には「[燃える闘魂 ―経営にはいかなる格闘技にもまさる激しい闘争心が必要― ](https://www.kyocera.co.jp/inamori/management/twelve/twelve08.html)」が掲げられています。「燃える闘魂」といえば、今度は猪木さんのことを思い浮かべる方が多いのではないでしょうか。
「鹿児島県（つまりは郷中教育、西郷南洲翁、示現流）」「燃える闘魂」になにやら目に見えないたて糸、否、そんな細いものではなく**ぶっとい柱**が通っていることを私は感じます。

:book:『[アントニオ猪木 最後の闘魂](https://www.amazon.co.jp/dp/4833481057)』:book:から引きました。
みなさまもぜひこの本をお手にとられて、猪木さんが残されたメッセージを通じて、直接猪木さんから「元氣」をもらってください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/131808/be8933f5-e3e2-d5f4-1561-f65f75abdf38.png)




# さいごに

[Elixir](https://elixir-lang.org/)でこんなことができますよー　を紹介しました。
題材は、一つのカレンダーに各人が何件投稿したのかを調べるプログラムを[Elixir](https://elixir-lang.org/)で作ることを楽しみました。
つまり、[完走賞](https://qiita.com/advent-calendar/2022/present-calendar)の応援記事でもあるわけです。

あわせて、 @RyoWakabayashi さんの記事もお楽しみください。

https://qiita.com/RyoWakabayashi/items/7729f0e35bfec62e53b0

奇しくも、猪木さんの引退試合のときに古舘伊知郎さんがおっしゃったように、「**闘魂は連鎖する！**」のです。

<font color="red">$\huge{闘魂は連鎖する！}$</font>

[1998年4月4日 東京ドーム 燃える闘魂アントニオ猪木引退試合 アントニオ猪木 VS ドン・フライ](https://njpwworld.com/p/s_series_00151_1_01)

試合後の05:45から、古舘伊知郎さんのナレーションが始まります。
ぜひお聞きになってください。

**闘魂** の意味は、 **「己に打ち克ち、闘いを通じて己の魂を磨いていくことである」** との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。

<font color="red">$\huge{１、２、３ ぁっダー！}$</font>


<iframe width="910" height="512" src="https://www.youtube.com/embed/AWxwmqzbOaw" title="燃える闘魂 アントニオ猪木  追悼VTR" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

https://www.youtube.com/watch?v=FSz7N5hCltw

---

https://qiita.com/torifukukaiou/items/5e96f4e9f12ec3c4b3f4


---

# Twitter

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Elixir Advent Calendar 3の3日目は、みたび <a href="https://twitter.com/torifukukaiou?ref_src=twsrc%5Etfw">@torifukukaiou</a> さんで、Qiita Advent Calendar完走賞についての解説と、各執筆者が完走賞をクリアしているかをチェックするElixirコードを紹介してます😌<a href="https://t.co/ClQm0el4Hy">https://t.co/ClQm0el4Hy</a><br><br>Elixir Advent Calendarは1カレンダーでどうやら5名の完走賞がいる模様😆</p>&mdash; piacere (love Elixir, Gravity and VR/AR/Metaverse) (@piacere_ex) <a href="https://twitter.com/piacere_ex/status/1598956616917086209?ref_src=twsrc%5Etfw">December 3, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

---

<b><font color="red">$\huge{元氣があればなんでもできる！}$</font></b>