与作フローチャートと、Neko Hacker - Endless Error Loop feat. ななひら

インフォ・ラウンジアドベントカレンダー８日目です！

https://qiita.com/advent-calendar/2023/info-lounge

昨日は@tamako-info さんの[Panda CSSとの付き合いを小説風に語る](https://qiita.com/tamako-info/items/fe643f79d1f33a1e5070)でした！
開発者さんからリアクションあったのは驚きですねw

今日は少し力を抜いたネタ枠で、マーメイド記法の練習で与作のフローチャートを書いてみたと、大好きなNeko Hackerの「Endless Error Loop feat. ななひら」を紹介したいと思います。

## きっかけ
頼れるエンジニアでお馴染み@ytkhs さんがそれが大事をマーメイド記法の練習で書いたと言ってて、何を言っているんだと思ったのですが、実際に見てみると面白かったので自分もやってみようと思ったのと、一緒に大好きなNeko Hackerのエンジニアネタ全開の曲をご紹介しようと思います。

## 大事MANブラザーズバンド「それが大事」

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

まず、@ytkhs さんの大事MANブラザーズバンド「それが大事」のフローチャートを紹介します。

https://github.com/ytkhs/ytkhs/blob/main/soregadaiji.md
```mermaid
flowchart TD
   START((START)) --> A(負けないこと) --> 投げ出さないこと --> 逃げ出さないこと --> B(信じ抜くこと) --> 涙見せてもいいよ --> C(それを忘れなければ) --> END((END))
   B --> 駄目になりそうな時 --> D(それが一番大事) --> A
   C --> A
   C --> E(Oh...) --> F(高価な) --> ニットをあげる --> G(より) --> 下手でも手で編んだほうが美しい --> H(ここに) --> 無いものを信じれるかどうかにある --> 今は遠くに離れてる --> それでも生きていればいつかは逢える --> でも傷つかぬように --> 嘘は繰り返される --> H
   D --> E
   F --> 墓石を建てる --> G --> 安くても生きてる方が素晴らしい --> H --> I(あなたがいない) --> J(のが) --> K(淋しい) --> L(でも)
   I --> M(と思うことが) --> N(せつない) --> O(のじゃなくて)
   J --> N --> L --> A
   M --> K --> O --> H --> いるだけで --> 傷ついてる人はいる --> P(けど) --> 見えてる優しさに --> 時折負けそうになる --> H
   P --> さんざん我儘言った後 --> あなたへの想いは変わらない --> P
```
```
   START((START)) --> A(負けないこと) --> 投げ出さないこと --> 逃げ出さないこと --> B(信じ抜くこと) --> 涙見せてもいいよ --> C(それを忘れなければ) --> END((END))
   B --> 駄目になりそうな時 --> D(それが一番大事) --> A
   C --> A
   C --> E(Oh...) --> F(高価な) --> ニットをあげる --> G(より) --> 下手でも手で編んだほうが美しい --> H(ここに) --> 無いものを信じれるかどうかにある --> 今は遠くに離れてる --> それでも生きていればいつかは逢える --> でも傷つかぬように --> 嘘は繰り返される --> H
   D --> E
   F --> 墓石を建てる --> G --> 安くても生きてる方が素晴らしい --> H --> I(あなたがいない) --> J(のが) --> K(淋しい) --> L(でも)
   I --> M(と思うことが) --> N(せつない) --> O(のじゃなくて)
   J --> N --> L --> A
   M --> K --> O --> H --> いるだけで --> 傷ついてる人はいる --> P(けど) --> 見えてる優しさに --> 時折負けそうになる --> H
   P --> さんざん我儘言った後 --> あなたへの想いは変わらない --> P
```
見ながら曲を聴くとじわじわきますw
面白いだけではなく、"高価な"や"ここに"のあたりの分岐など歌詞の対比も見れて結構面白いなと思いました。


## 与作
参考に自分も与作フローチャートを書いてみます！

<歌詞>
与作は木をきる
ヘイヘイホー ヘイヘイホー
こだまは かえるよ
ヘイヘイホー ヘイヘイホー
女房ははたを織る
トントントン トントントン

気だてのいい嫁だよ
トントントン トントントン
与作 与作 もう日が暮れる
与作 与作 女房が呼んでいる
ホーホー ホーホー
藁ぶき屋根には
ヘイヘイホー ヘイヘイホー
星くずが 降るよ
ヘイヘイホー ヘイヘイホー
女房は藁を打つ
トントントン トントントン
働きものだよ
トントントン トントントン
与作 与作 もう夜が明ける
与作 与作 お山が呼んでいる
ホーホー ホーホー

```mermaid
flowchart TD
    START((START)) --> 与作は木を切る
    --> A(ヘイヘイホー^2) --> こだまは返るよ --> A --> 女房ははたを織る 
    --> B(トントントン^2) --> 気だてのいい嫁だよ --> B
    --> C(与作^2) --> もう日が暮れる --> C --> 女房が呼んでいる
    --> D(ホーホー^2) --> 藁ぶき屋根には --> A --> 星くずが降るよ --> A --> 女房は藁を打つ --> B --> 働きものだよ--> B --> C --> もう夜が明ける --> C --> お山が呼んでいる --> D -->　END((END))
```

```
    START((START)) --> 与作は木を切る
    --> A(ヘイヘイホー^2) --> こだまは返るよ --> A --> 女房ははたを織る 
    --> B(トントントン^2) --> 気だてのいい嫁だよ --> B
    --> C(与作^2) --> もう日が暮れる --> C --> 女房が呼んでいる
    --> D(ホーホー^2) --> 藁ぶき屋根には --> A --> 星くずが降るよ --> A --> 女房は藁を打つ --> B --> 働きものだよ--> B --> C --> もう夜が明ける --> C --> お山が呼んでいる --> D -->　END((END))
```
何がヘイヘイホーで何がトントントンか分かりやすくなりましたね！
共通項が多そうなので楽しいかと思ったら、元々がシンプルな分感動が少なめでした。。


## Neko Hacker - Endless Error Loop feat. ななひら
続きまして、フローチャートから離れて、エンジニア愛に溢れた曲を紹介します！

https://www.youtube.com/watch?v=0uLwC9uuT6k


セクションごとにみてみましょう！(ChatGPTに手伝ってもらいました！)
```
<header>
ここをもうちょっとシンプルに変えてっと
え、なにこのエラー・・・
</header>
```
まずheaderタグが現れました。

```
TRY / EXCEPT
よくあるError
TRY / EXCEPT
見たことないError
TRY / EXCEPT
不死身のError
TRY / EXCEPT
名も無きError
```
あるあるなエラー処理ですね。
新しいコードを書くたびに見たことないErrorに出会うので不思議です。。

```
if status == "解決しない":
  print("発狂しちゃう")
elif status == "別のエラーが出る":
  print("3日間は寝込んじゃう")
elif status == "解決方法見つける":
  print("英語は全く読めない")
```
発狂しちゃうし、治すと別のエラーでるはあるあるですね。。
どう歌われているかぜひ聞いてみてください！

```
イライラ止まらん エラーも止まらん
あ～今日が終わる・・・
```
何も進捗なく終わってしまう日ありますよね。。

```
SyntaxError
()や:を忘れていないか今すぐ確認
IndexError
シーケンスオブジェクトの要素数は大丈夫か
NameError
どうせスペルミスだし大文字小文字に気をつけろ

目を瞑ればそこに広がる
広大なエラーの海
```
あるあるエラーですね。。
NameErrorは基本自分が間違ってますよね。。

```

SABI_LYRICS = '''
  Endless Error Loopの中
  点と点が繋がる一瞬
  脳汁効率よく出しまくるためのプログラミング教育

  Endless Error Loopの中
  点と点が繋がる一瞬
  諦めた者には辿り着けない場所で笑い合おう
'''
```
ここが歌詞の中で一番好きです！
エラーは学習の機会でもあるし、まさに歌詞の通り点と点が繋がる一瞬でしか得れない栄養素ありますよね。

```
あ、ちょっと待って
ヤバ・・・大事そうなやつ間違って消しちゃった
システム全体が死んでる・・・？
バックアップ、バックアップどこ～～～～～～
```
大型新人がDBを吹っ飛ばすというのは本当にあるあるなんですかね？

```
Thank you Qiita, teratail, stack overflow
Thank you Qiita, teratail, stack overflow
```
いつもお世話になっています！

```
TypeError
型、間違ってない？
IndentationError
えっと、あの・・・
ModuleNotFoundError
う～～～んw
とりあえず、日本語でお願いします！
```
最初は英語の多さにドン引きでした。。


```
print(SABI_LYRICS)
```
SABI_LYRICS変数を定義していたので、2回目はprintで出力することができます！
言語はpythonですかね！(一回目はprintしていないような･･･おや、誰か来たようだ。)
```
def endless_error_loop(stage="進捗"):
  while True:
    print("Error")
  return stage

endless_error_loop("納期")

も～～～何やっても無理じゃんもう寝よ・・・
ってなんかわかんないけど通った！
```
えげつないループが回ってますね。。(納期の引数を受け取っていないのがミソですね。)
１日寝かせるとなぜか動くことありますよね。。

```
<footer>
動けば勝ちだし終わり！
</footer>
```
動けば勝ちです！

プログラミングネタもありつつもところどころいいことも言ってて大好きな曲です！
諦めた者には辿り着けない場所で笑い合いましょう！


## 最後に
面白いと思って触ることで、意外と勉強になったりしますよね。
書いてて楽しかったです！他の歌詞も挑戦してみたいです！

さて、アドベントカレンダー9日目の明日は、大事MANブラザーズの@ytkhs さんが明日書いてくれるそうです！楽しみですー！