東京大学応援部を見る

六大学野球の観戦に行ってきた。2023年の9月17日に行われた、東大vs早稲田の第二戦である。結果は、2vs6で負けてしまい、前日の第一戦も負けていたため、勝ち点はつかなかった。

 

六大学野球について少し解説する。六大学野球とは、東大、早稲田、慶應、法政、明治、立教の六大学による野球のリーグ大会である。ここから派生してか、六大学が集って試合をするスポーツはいくつかある。例えば、軟式テニス

 

リーグ戦は春と秋に毎年行われている。各大学の総当たり戦で、先に二勝した方の勝ちである。どちらかが二連勝すればそこまでだが、一勝一敗だったり引き分けの試合があると第三戦にもつれ込む。

 

六大学のうち、東大以外は優勝したことがある。東大は二位が最高順位で、1998年の春季リーグ以来ずっと最下位につけている。ここ最近は各季に一勝したりしなかったりだが、何十連敗という記録をニュースで聞いたことある人も多いだろう。

 

六大学野球の解説が長くなってしまったが、この六大学野球での応援活動から誕生したのが東大応援部である。戦後すぐは野球が大学スポーツにおいて非常に重要な地位を占めていたらしい。今でも野球の早慶戦では両大学が休校にするぐらいだから、その面影は残っているだろうか。

 

余談だが、東大応援部のチアリーディングの創始者衆議院議員の松島みどりらしい。彼女のことはうちわ不祥事があって知っていたが、当時176人しかいなかった東大の女子新入生全員に勧誘の手紙を書いて、彼女と誘いに乗った一人の女子新入生二人でチアを始めたらしい。なんともバイタリティ溢れるエピソードである。彼女が代議士をしているのも納得である。

 

さて、私はこのブログで何度か東大応援部について書いてきた。最近では、東大応援部の動画をyoutubeで漁ったり、最相葉月の「東大応援部物語」を読んだりしている。こんなことをしていると、本物の東大応援部を見てみたくなる。ということで、一人で神宮球場に向かった。

 

試合は11時開始だったのだが、生憎、起きたのが11時だった。そこから身支度をして出発したが、到着した時には5回の裏の東大の攻撃で、6回が始まろうとしているところだった。この時のスコアはなんと、2 vs 1で東大が勝っていた!!!球場についた時、youtubeで聞き馴染みのある東大のチャンスパターンが聞こえた時は興奮した。

 

500円で応援席の学生チケットを買い、応援席に乗り込んだ。空はまさしく淡青に輝き、東大応援部の応援が鳴り響いていた。

 

一人で行くのに少し躊躇いもあったが、声を出して大空のもと応援するは気持ちよかった。途中、リーダーが目の前にきてこちらをみながら声をはり応援するのだが、私がちゃんと応援しているのがわかると他のところに行ってしまうのが、面白かった。

 

試合展開としては、その後に、早稲田に二点追加されたが、2 vs 3という場面で、東大はツーアウト二塁、三塁という場面も作り出せていた。惜しくも、ものにすることはできなかったが。

 

応援部のリーダーたちの顔は真剣そのものだった。なかなか難しいのは応援の方に集中するとプレーを見ることができず、いつの間にかにミットに球が収まっていることもある。この辺りはコツが必要なのかもしれない。

 

ボロ負けという試合ではなかったし、途中リードしていた場面、一発逆転の場面もあったのだから、応援しがいのある試合であった。私としては画面越しに、活字上で追っていた応援部を間近に見ることができ、闘魂はを歌うことができ嬉しかったが、欲を言えば、是非勝って欲しかった。

 

次も予定が合えば応援に行こうと思う。ところでだが、この日応援部は、ラクロス→野球→サッカーと応援のはしごだったらしい。なんとも大変だが、それでも彼らは声を張り上げ続けるのだろう。

 

「闘魂は:は歌えるし、歌えるようになったが、校歌格のただ一つは歌えなかった。次までには練習することにする。また、部活やクラスの仲間と野球部の応援に行くのは面白いかもしれない。声を出して、手を振って、一緒のことをするというのは楽しいし、思い出になると思う。

 

ぜひコンパ長たちには東大野球部応援コンパを企画してほしいものだ。

JSONのパーサーもどきを作る

久しぶりのアルゴリズム

今日は久しぶりにアルゴリズムっぽいものを作った。JSONのパーサーみたいなものである。

{
  "data": {
    "name": "Taro",
    "age": 24
  },
  "message": "hello",
  "isGood": false
}

例えば、こういうJSONがあったときにkey-valueの最小単位まで抽出したいということがある。要は、

data.name->"Taro"
data.age->24
message->"hello"
isGood->false

みたいな感じで、対応づけをデータにしたい。テストを書いていてこういう需要が出てきたが、他の場合もこんなことを考えることがあるかもしれない。 いい感じにしてくれるライブラリもたくさんあるとは思うのだが、せっかく自分で作ってみたので、その考え方を記録する。

できないこと

  • 正しくない?JSONのハンドリング
  • [ ] への対応
  • エスケープされた"への対応

JSONの公式の取り決めドキュメント(あるはず。。。)を見ていないので、そもそも正しい、正しくないの認識が曖昧とはなってしまうが、文法上正しくないJSONについてエラーが出力されることはない。また、配列への対応もしていない。(今度します)そしてエスケープされたダブルクオーテーションへの対応もしていないが、まぁこれは多分すぐになんとかなる???ただエスケープするための記号をさらにエスケープした場合の対応を考えると大変そう。よく分かりません。

方針

  1. JSONを読み込む。
  2. 改行とスペースを全て抜いて、一つの文字列にする
  3. key, value,left_bracket, right_bracket, comma, colonへとトークンにして分ける
  4. valueそれぞれに対してのkeyを見つける。 といった感じである。1も2も詳細にすると面倒だが、あまり細かくは考えなかった。なんとなく悩むのは4の、例えば最初に挙げた例だとdata.nameのような、入れ子のkeyにする方法だろうか。nameだけを考えるなら、単純にvalueの隣の隣のトークンがkeyなのだが。

トークン化

初めは、最初から読み込んで、スタック構造を作って云々とか考えていたが結構大変そうだなと思った。そこで、まず、"data"のようなダブルクオーテーションで囲まれているものだけ抽出することにした。

抽出されたものは全てのkeyといくつかのvalueを含む。そして、keyかどうかの判断はそのkeyの隣の文字がコロンかどうかで判断できる。また、keyじゃなければvalueになる。 keyで検索して、key-colon-valueと続かないところはkey-colon-???-commaとなるはずだから colonとcommaのダウルクオテーションで囲まれていないvalue(数字や、null、trueなど)を見つけることができる。

またkey-colon-left_bracketとなるところは飛ばして考えればいい。そうすると、全てのkeyとvalueは抽出できたことになる。

そして、まだ一つなぎの文字列でまだどこにも所属していない部分についてはどの文字か検索し、comma、colon、bracketのどれかになるのでそれで埋めてやる。

そうすれば、ひとまず全ての文字がいずれかのトークンに含まれる、もしくは割り振られることになる。そして、このtokenの配列を元にした文字が何文字目かを元にして、ソートしてやる。

少し説明を端折った気もするが、肝としてはダブルクオーテーションで囲まれているものを見つけるところである。

valueとkeyのペアを見つける

さて、tokenの配列が今手元にあるわけだが、これを最初から順に解析する。

key-colon-valueとなればめでたいがkey-colon-left_bracketとなるところもある。なので、ひとまず見つかったkeyについてはkey-stackというものに入れて、stackにすでに入っているkeyがあれば、pre-key.new-keyというように名前をそのkeyにつけてやる。

そうすれば、前の前の前のやつも含めて、名前がchainのようにつながっていく。そうして、valueが見つかれば、stackから一番上のkeyを消してやるという具合だ。

単純だがこれでうまくいった。配列も考えるようになるとまたややこしくなりそうだ。

最後に

久しぶりに頭を使った感じがあって楽しかった。競技プログラミングもしないので、スタックなんて意識して使ったこともなかったが、使えて嬉しかった。個人的には最初からトークン化をゴリゴリするのではなく、ダブルクオーテーションに着目したところがポイントだと思うが、結構当然のことなのだろうか。それともどこかこれだとまずいのだろうか。 任意のJSONに対して動作するように作る必要はなかったのでこれで今回は十分だったが、せめて配列ぐらいは実装しておきたい。

闘魂は

あなたは自分の母校の校歌を歌えるだろうか。僕は、小学校の校歌はもう歌えないが、中高一貫だった中学、高校の校歌はまだ歌える。では、大学の校歌は?残念ながら歌えない。

 

一応、東大には「ただひとつ」という校歌が存在し、入学式の時に応援部の方々が歌っているのを聞くことになる。だが、それ以外で歌う機会もないので覚えることもなく二年生も折り返しを迎えてしまっている。

 

野球部などは応援団が歌っているし歌えるのだろうが、東大の運動会の部活に所属する大半も怪しいのではないのだろうか。

 

校歌の存在は知っていたが、わざわざ大学生にもなって歌う必要はないよな、と長らく思っていた。しかし、夏合宿の帰りの電車で、東大応援部のドキュメンタリーを見て号泣し、考えを改めた。

 

そもそもは夏の甲子園慶應が制し、OBOG一丸となって若き血を歌っているのが羨ましかったため、東大の応援歌を聞こうと思ったことが発端だった。youtubeという大海をサーフィンし続けると、応援部のドキュメンタリーが見つかった。

www.youtube.com

 

号泣である。彼らは絶対に逆転できないであろう、9回に二桁点差ついていても野球部を応援し続けるのである。また、夏合宿の様子も取材されており、自身の夏合宿も振り返り、大変だったな、と涙した。やはり、結果が分かりきっていてもするべきことがあるものなのである。

 

そこから東大の応援歌の「闘魂は」を知った。いい歌である。

www.youtube.com

これ以外にも応援歌はあるらしいのだが、ひとまずこの歌は歌えるようになった。

 

おお、我が東大、栄えある学府〜

 

1学年3000人もいる大学に母校愛も何もあんまりないが、誰かが頑張る姿はやはり誰かを勇気づけてくれる。応援部万歳!!

高校生クイズに物申したい

今日、高校生クイズが放送された。母校が出場していたので、観戦したが、勇気をもらった。頑張れ、母校!!おじさんたちが応援しているぞ。

 

ところで、一視聴者としては今の高校生クイズに物申したいことはいくつかある。今日は日本テレビの方々に向けて提言をまとめてきたので是非目を通してもらいたい。

 

  1. 海外にいけ
  2. OB枠を出すな
  3. 開催時期を前にずらせ
  4. 都道府県一代表校制に戻せ

 

要は、6年ぐらい前の高校生クイズに戻せ!という話である。完全に発言が老害な気もするが、少しは耳を傾けてほしい。

 

まず、海外に行け。スタジオ収録をやめてほしい。正直、番組予算が少なくなってやむなくスタジオでの収録になっている節はあると思うし、それは致し方ないだろう。だが、かつての高校生クイズといえば、一次予選をドーム貸し切りでやったりと、それはそれは華やかだったではないか。それが今は、スマホでぽちぽちして一次予選である。ちなみに言うと、僕が高校生クイズに一回だけ予選に出た時は、相方のスマホの通信環境のせいでほぼ全く回答出来ず、惨敗だった、、、、

これは言い訳ではないぞ。やっぱり華やかなのがいいのである。ワイワイしてほしいのだ。正直、今の感じだと東大王の高校生を呼ぶ回と大して変わらない。まぁ予算が少ないのだったら、せめて日本縦断にするとかだろうか。。。

 

次に、OB枠を出すなである。クイズノック関係者をあまりだしてほしくないのだ。彼らは高校生クイズの有名出場者でもあるし、高校生のクイズ界隈で彼らを尊敬する人は少なくないと想像する。だから、彼らとスタジオで会えることは出場する高校生からすれば嬉しいだろうな、と思う。昔とは違って趣味嗜好も多様化した現在では、わかりやすいみんな喜ぶアイドルなどはいないかもしれない。だから、むやみやたらにアイドル出すよりも、クイズノックを出した方が高校生にとっても、視聴者にとっても面白いと言う判断なのだろうか。ただ、見ている側としては、OBポジでコメントをしているところは別に見たくもない。高校生すげーとだけ思いたいのだ。だからひらめき問題もいらない。変に自分が解けても結局だからどうしただし、大学受験一通りした人間でも、それは知らねーよ、と言いたくなるゴリゴリの知識問題をひたすらに涼しい顔して解いてほしいのだ。

 

開催時期をずらせ。もっと早く開催して、八月の夏休みに放送してほしい。放送時間もゴールデンに戻してほしい。いやわかっている。多分あんまりもう人気がないのだろう。人気がないから予算もつかないしでこのような形態になっているのだろうと思う。だけども、高校三年生ももう少し早めの5月や6月に大会があれば出場できると思うし、より良いのではないのか。ただその時期に学校はあるので、その方面への配慮もあるのかもしれないので、これは難しいところである。いっそのこと春休みに実施するか????

 

最後に、一都道府県一代表校制にしろ。正直、クイズを真面目にしている人たちからしたら今の制度の方が良いとは思う。なぜなら、都会ほど出場難易度が圧倒的に上がってしまうからだ。だけども、、、!!!!!甲子園も各県の代表校制度だろ!!!高校に進学した人たちは、あまり勉強に力を入れていなかったとしても、自分の住む都道府県の一番校ぐらいは知っているだろう。富山なら富山中部だし、福井なら藤島だ!愛知なら、半田、、、じゃなくて東海、旭丘とか。今の出場校の関係者というのは、都会で生活する人たちに限られてしまっているのではないのだろうか。しかも結構被っているぞ。栄光に友達がいる人は大体聖光にも友達がいる。だから、テレビに知り合い、もしくは知り合いの知り合いぐらいが出るから〜とかでみる視聴者が昔より少ないはずだ。地方から出てきたゴリゴリの秀才を見たい。というかそうするなら見てくれる視聴者も増えるのではないのだろうか。

 

まだまだ言いたいことはたくさんあるが、これぐらいにしておく。まぁでも今の形は、クイズを真面目に頑張っている高校生たちからすればすごいいいものなのだろうなとは思う。兎にも角にも予算アップが大事だろう。

 

*藤島高校は福井の高校でした。訂正します。

外部ストレージ?

久しぶりに日記を書きます。三日坊主とは行かなくても一週間坊主となって放置するのもどうかと思いました。毎日書くのは難しいですが、ある程度の頻度で書いていこうと思います。

 

さて、今日のお題は、動画の共有方法です。いろいろ条件が複雑でそこそこ頭を悩ましたのですが、サステイナブルな共有方法を一つ発見したので、記します。

 

まず、今回の条件です。

  1. サークルで行う練習試合を後で見返すために、動画を共有したい
  2. 1試合3分程度で、毎週週末に30試合ほど行う。全ての動画を共有したい。
  3. 試合は全て一つのフィールドで流して行い、一つのスマホで動画撮影を行う
  4. サークル全員が加入するGoogle Driveがあるが、使える容量が100GB程度である。Driveに対して課金して、容量を増やすことはできない。

元々はGoogle Driveに容量の制限がなく(大学が契約していた)、毎週30本アップロードしていました。しかし、この度、使える容量の制限がかけられ、どんなに頑張っても125GBまでしか容量は増やせなくなりました。

 

ちなみ、スマホで撮る3分の動画の容量がおおよそ200MBなので、

 

200MB * 30 = 6GB

 

となり、100 /6 = 16.7 、おおよそ四ヶ月程度分しかドライブには残すことができません。また、練習試合ではなく本番の試合の動画など思い出のものは長く残したいので、練習試合のために使える容量はより限られます。

 

このような状況として検討した解決策は以下の通りです。

  1. LINEで動画を共有して、必要な人はダウンロードする
  2. Google Driveに直近のもののみアップロードして、容量が足りなくなったら古いものから消していく
  3. Youtubeにアップロードする

検討していきましょう。

 

まず、LINEで共有する方法です。一番シンプルです。共有ドライブを持っていない団体にとっては最もオーソドックスな方法だと思います。各自が必要なものをダウンロードすればいいわけです。ただし、他校と練習試合をして、その対戦相手と本番の試合で戦うことになる場合、その練習試合の時の動画を手に入れたいというリクエストに応えられるかは確かではありません。他校との練習試合の時は、ドライブにアップロードする、という方法も考えられますが、あまりサステイナブルではなさそうです。

 

次に、Google Driveに最近のもののみをアップロードする方法です。これもLINEの場合と同様に、他校との練習試合の件を考えると微妙です。

 

最後に、Youtubeにアップロードする方法です。Youtubeでは限定公開と言って、検索してもヒットすることはなく、リンクを知っている人だけだ閲覧することができるように動画を公開できます。これを用いればいいわけです。しかし、一日あたりにアップロードできる動画の数は決まっているし、アップロードする際に動画一本一本にする設定がなかなか面倒です。一応、アップロードのAPIも提供されていますが、どちらにせよ一日あたりにアップロードできる数が決まっています。3分の動画だと一日に6動画ぐらいしかアップロードできないので、撮影した人は一週間かけて30本動画を公開していくこととなります。ドライブやLINEの場合は、ただ共有する動画を選択して、ボタンを押せばいいだけで手軽ですが、この場合はなかなか大変そうです。

 

ここで条件3を思い出します。試合は一つのフィールドで行われるので、三脚にスマホをセットして、初めの試合から最後の試合まで撮り続けることができます。Youtubeに長い動画のアップロードをする際は、電話番号認証が追加で必要ですが、認証自体はすぐに終わります。よって、一本の長い動画を撮って、それだけをアップロードすれば、撮影した人の負担は少なくなります。問題点としては、一つの動画に複数の試合が含まれるので、自分の試合がどこにあるかわからないことですが、1/30なので、動画の進行バーのスクロールで簡単に発見できると思います。面倒ですが、時間ごとに誰の対戦なのかインデックスを作ってコメントすることもできます。

 

結局、Youtubeに一本にまとめてアップロードする、という方法に落ち着きました。最初にGoogle Driveを制限されると聞いた時は結構焦ったのですが、なんとかなりそうです。もし同じ問題で困っているサークルの方がいれば、この記事が役立てば幸いです。

 

アパァ

アパホテルにとまっている。ビジネスホテルといえば、東横イン、相鉄フレッサ、アパホテルなどが有名だろうか。初めて泊まっているのだがロビーが豪華絢爛風で驚いている。

 

また、受付に創業者の本がおいてある。本当の歴史を謳った、近現代史とかかれている。香ばしい匂いがする。

 

部屋に入るといくつか創業者やその夫人の本がおいてある。本当に禁煙ルームなのか、というぐらい匂いがたちこめる。

 

創業者元谷外志雄の経営戦略解説本?の逆境こそ光輝のある機会なり、がある。食わず嫌いはよくないので、そっとページをめくるがこれがなかなかに面白い。

 

へぇ、という感じ知識欲を満たしてくれるし、語り口が小気味よい。アパホテルに宿泊するとき、もし暇なら是非手にとってみてほしい。

 

青臭い

京都関ヶ原名古屋旅行一日目である。今日は京都の名所をいくつかまわった。

 

京都の観光名所の多くは京都市にある。移動は地下鉄もあるが、市バスが便利である。初乗り230円からだがそこそこ移動できる。

 

さて、その市バスについての小話である。最終地点までいっても変わらず230円の路線と、徐々に値段があがる路線がある。前者は乗る際にICカードをタッチしなくてよく乗車口に読み取り機はないが、後者はタッチする必要がある。

 

京大のあたりから京都駅へのバスに乗った際は、後者のタイプだった。京都駅に到着して、他の乗客が降りるのをまっていると、外国人観光客と運転手が話しているのが聞こえてきた。話している、というよりは、外国人の彼が英語で質問し、運転手はひたすらに同じ英単語を繰り返している。

 

どうやら彼は乗るときにタッチをしていなかったので、運転手がどこからバスに乗ったか聞いているのだ。彼は何を言われているかわかっていない。結局、運転手は最大区間乗ったと仮定して決済してしまった。

 

彼はバスから降りたあとも運転手にどういうことが聞いているが、先程と事態は変わらず、諦めてバスを降りてきた。

 

なんだか、見ず知らずの土地に来てぼったくられている彼が不憫で、運転手の意図と運賃の仕組みを話した。彼は納得したそうで、乗るときに、読み取り機があれば、つぎからICOCAをタッチする、と理解したくれた。

 

運転手の判断もいたし方ないと思う。外国人の後ろには沢山のまだ降りていない乗客がいた。だから、誰が悪いというわけでもないと思うのだが、自分が彼に事情を話さないことは何だか嫌だった。

 

理解してもらえたときは嬉しかったし、英語の練習にもなった。本当はただの青臭い正義感なのだが、自分に益があったと思うことでその臭み消しとする。