はむ吉(のんびり)の練習ノート

主に(競技)プログラミングや言葉について,思いついたことや,試してみたこと,学んだことを,覚え書きを兼ねてまとめます.その際に参考になった,書籍などの紹介も行います.

趣味に関するこれまでと現状:Twitter アカウント作成から丸 8 年にあたって

先日,私が Twitter にアカウントを作成してから丸 8 年になった.これを機会に,主に自分の趣味(競技プログラミング,辞書,言葉遊び,その他)のこれまでと現状について,Twitter とも関連付けて,書き散らそうと思う.

競技プログラミング

私は 2015 年 9 月に,はじめてオンラインジャッジ(AIZU ONLINE JUDGE: Programming Challenge)の問題を解いた.これを,私が競技プログラミングを始めた時期としている.当初は,オンラインジャッジにおける問題演習を通じて,プログラミング言語(主に Haskell)を学ぶことを目的としていた.しかし,手段は自己目的化するもので,だんだんと競技プログラミング自体が趣味となってきた.Aizu Online Judge に限らず,yukicoder, AtCoder および Project Euler *1 にも手を広げるようになった.また,使用する言語も,当初は Haskell だけだったが,自分のコーディング能力では問題に対応できなくなると,昔から親しんでいる Python や,競技プログラミングにおける de facto standard (?) である C++ も用いるようになっていった.

本邦における競技プログラミングに関する情報交換は主に Twitter 上で行われていることは,競技プログラミングを始めてほどなくして知った.しかし,当初はなぜかこのクラスタに怖い印象を持っており,ROM の日々が長く続いた.しかし,一歩踏み出してみると,競技プログラミングクラスタにおける温かさに触れることになった.自分の followers や followees の多くが競技プログラマーになるまで,そう時間はかからなかった.

競技プログラミングクラスタに属するようになって,驚いたことが三つある.一つ目は,先にも述べたが,競技プログラミングクラスタにおける温かさである.殺伐とした場であるかと思いきや,決してそんなことはなかった.互いをこれほど尊重し合い,互いにこれほど切磋琢磨する場は,まれであると思う.二つ目は,とりわけ上位の競技プログラマーは,寝ても覚めても競技プログラミングのことを考えているということだ.オンサイトのプログラミングコンテスト後には,懇親会が開かれることが多い.その様子はタイムラインを通じて漏れ聞こえてくるし,私自身も一度だけ参加したことがある.そのような宴席でさえ,アルゴリズムやデータ構造に関する談議が繰り広げられるのである.ここまで没頭しているからこそ,あのような超人的成績を収めているのだろう.本業への支障が気になるが,それは私が口を出す問題ではないだろう.三つ目は,年齢 *2,性別によらず,競技プログラマーの多くが,自らのマスコット(ぬいぐるみ)を所持するだけではなく,それを Twitter やオンサイトプログラミングコンテストの会場にて披露していることだ.そもそも,ぬいぐるみの所持や披露の可否は自らの年齢や性別のような属性によっては規定されないし,されるべきでもないだろうが,実のところは,ためらってしまいがちなものである.そのようなしがらみに左右されず,自分のかわいいと思うものを手元に置くだけではなく,交流のきっかけとするのは,素晴らしいことであると思う.

最近は問題演習の時間もとれず *3,成績は振るわない.それでも,競技プログラミングを細々と続けていこうと思う.

辞書

正確な時期は覚えていないが,ここ 1-2 年の間に,辞書の収集と利用が趣味となった.ある古本屋に立ち寄り,めぼしいものが見つからなかったので,とりあえず『旺文社国語辞典』第十版(小型版)を買ったのがはじまりだったと思う.私が初めて買ってもらった一般向け小型国語辞典は,同国語辞典の第九版だった.ただ,以前から辞書を引くのはいとわなかったので,辞書好きになる素地は昔からあったようだ.

ほどなくして,辞書についての有用なブログ記事を見つけ,辞書沼へとずぶずぶとはまるようになった.記事 辞書について:日本語,英英,英和を中心に - Trick or Think? を通じて,日本語や英語の辞書における大型・中型・小型の区別や,連語(結合語)辞典や類語辞典等の有用性を知った.また,記事 国語辞書の購入の手引き 市販15種徹底比較【1種追加】 - 四次元ことばブログ によって,小型国語辞典といっても多種多様であり,それぞれに持ち味があることを学んだ.当初は,ここに挙げられている一般向け小型国語辞典の中から,自分に最適なものを選ぼうとしていたが,気が付いてみると,すべて買い集めてしまっていた.

手元に辞書が集まるようになると,それを活用すべく,言葉に関する疑問や,気づいたことがあるたびに,辞書を手元に置きながらツイートするようになった.我おもしろのなんとやらになっているかもしれないが,ほどほどに続けたい.

言葉遊び

競技プログラマーの中には,言葉遊びを趣味にする方が多い.私もその影響を受け,言葉遊びへの興味がわいた.最近では,上述のように辞書も趣味とするようになったため,さらに関心が高まっているように思う.

競技プログラマーの間で盛んに行われている言葉遊びの一つは,(くそ)なぞなぞである.これは,私の記事からになるが,次のような言葉遊びである *4

くそなぞなぞとは,主に「......ってな~んだ」という形式のなぞなぞであり,しばしばだじゃれや単なる語感の類似性が鍵となっているなぞなぞです.しかし,最近ではそれにとらわれず,高度な換言や連想を必要とする高品質ななぞなぞや,画像などのメディアファイルを利用した新形式のなぞなぞも出題されています.そのため,cormoran's note - クソなぞなぞコンテストで述べられているように,くそなぞなぞはむしろ,「くそみたいに面白いなぞなぞ」とみなすべきなのかもしれません.最近では,くそなぞなぞ AGC (KGC) が Twitter 上で開催されるなど,単なる気晴らしからある種の競技へと変貌を遂げつつあります.

くそなぞなぞの解答と作問のための技術:すぐに試せる 8 つの方法(例題つき) - はむ吉(のんびり)の練習ノート

なぞなぞは子供の遊びだと思われがちだが,これをレクリエーションの手段として,有効に活用しているのは面白い.子供向けという制約はないので,情報科学を中心とする専門語,外国語,その他高級な語も題材となり,興味深い.

ニダーラン

私が以前熱中していたオンラインゲームとして,ニダーラン がある.2009 年 12 月に,このゲームをやり始めたのを覚えている.当時は,某巨大掲示板群で,書き込み規制が頻発していた.それを回避する手段として,ビューア(通称:●)があった.ニダーランでは,ゲーム内でのアイテムを,二週間限定で使える●に交換できたため,私もそれをやることにした.やはり手段の自己目的化は起こるもので,●の確保を行ったあとも,サバイバルやアヒルレースなど,各種コンテンツにはまった.また,2011 年前後にニダーランの公式 Twitter アカウントが開設された.これをきっかけに,私は Twitter への関心がわき,アカウントを作成したのだった.その時以来今まで,followers や followees であり続けてくださっている方々もいらっしゃる.

ニダーランにつきものだったのが,「還元」という制度だった.アヒルレースなどのゲームでは,上位になることで多量のゲーム内ポイントが入手できる.また,その順位は,ほかのプレーヤによる妨害により左右できるシステムになっていた.そして,上位になったプレーヤは,「還元」と称して,ゲーム内の機能(アンケートなど)を通じてポイントをばらまくのが習わしだった.「還元」額の大きいプレーヤはレースで援助され,逆にそうではないプレーヤは徹底的に妨害されるものだった.私もその慣習に従い,上位にになったときには,得られたポイントの大半をばらまいた記憶がある.レースの参加までには多くの費用が掛かるので,おそらく,収支はマイナスだっただろう.しまいには,得られたポイントを上回る「還元」を行うプレーヤも現れ,あきれた.そのころから,アヒルレースからは離れるようになったと記憶している.

また,ニダーランは私のプログラミング技術の向上にも役立った.規約違反にならない程度に,ニダーランのプレイを支援するツールを書いたことがある.そのときに,試行錯誤しながら,やや汚いコードながらも,Python で何とか動くものを作り上げるのは,面白かったのを記憶している.これがあったからこそ,競技プログラミングを知るまで,プログラミングへの関心が持続したのかもしれない.

いまでは某巨大掲示板群をめぐる状況も大きく変化し,ニダーランのアクティブユーザもめっきり減ったようだ.以前久々に覗いたが,アヒルレースは出走者が不足し,もはや成り立たなくなっていた.それでも,ニダーラン自体のサービスは細々と続いているのが面白い.

図書館

数年前に,とあるきっかけで,図書館を盛んに利用するようになった.以来,忙しい日々が続きながらも,定期的に図書館に立ち寄り,本を借りるようにしている.最近では,借りた本をろくに読めず,そのまま返すことが常態化している.しかし,書棚の一角に本があるだけでも,何らかの価値があるものだと思い,借りるのを必要以上には控えないようにしている.また,借りた本は,まず延滞せずに返すのが,私の数少ないとりえである *5.嵐が迫る中でも *6,期限に遅れまいと,本を返しに行ったことがある.読めようが,読めなかろうが,借用中の本を常に一冊は確保しているのは,少なくとも貸出期間のうちは,変な気を起こさずに無事でいようと努めるからかもしれない.

日常生活その他

仮にしかるべき診療科に行けば何らかの診断が下りそうな状態だからなのか,単に社会経験が少ないかはわからないが,私の対人関係やコミュニケーションにはいまだぎこちないところが多い.店屋でのやりとりでさえ,考えに考えた結果が裏目に出て,おかしな反応を引き出すことがある.そのような場合でも,当初の目的は達成できているので,軽症なのかもしれないが.通い先等では,以前なら陰口や謀などの様々な情報を敏感に察知し,不満やら何やらがにじみ出たトラのようになることもあったが,いまではアホで朗らかなネコのお面をかぶる術を身につけ,ぎこちないながらも当たり障りのないやりとりができている気がする.このお面こそが,社会性の一部なのかもしれない.とはいえ,お面をかぶるのは疲れるのは否定できない.週末になるとぐったりすることもある.そもそも,お面をかぶり切れているかはわからない.どこかでトラが見え隠れしているかもしれない.また,その場における表情や身振りでの補足ができる対面での会話や,過去の文例等を参照した上での推敲を行えるメールなどと異なり,私のやや不明瞭な,その場の発話のみを頼りにしなければならない電話は苦手である.しかし,上述のネコのお面をかぶって,十分に準備をしたうえで取り組めば,目的を達成できるようにはなっている.加えて,実のところ,Twitter でのリプライすら,苦手な部類に入る.Twitter を始めてまもないころは,ほかをまねて素朴なツイートやリプライを心掛けて,「つぶやいて」いた.しかし,今のように,自分からのリプライはめったにせず,字数制限いっぱいの文章を「書く」ようになるまで時間はかからなかった.とはいえ,最近は定型的な受け答えを中心に,自分からリプライもできるようになったので,改善の傾向にはある.これはもちろん,FF 内の方々の温かさによるところが大きい.

おわりに

いろいろと書き連ねてきたが,9 年目も細々と頑張っていきたい.

*1:ここに挙げるのは異質かもしれない.

*2:とはいうものの,競技プログラマーは 10-30 代が主かもしれない.

*3:むしろ,「とらず」が適切か.

*4:なお,下記の KGC には,私も記事 くそなぞなぞ AGC 002 (KGC002) 参加記 - はむ吉(のんびり)の練習ノート を書くほど熱中した.作問も希望しておきながら,私のスケジュールや不調などの問題から,取り下げたのは申し訳なかった.

*5:ただ,最近は諸般の事情で一,二日遅れることがまれにあり,残念な気持ちになっている.

*6:防災情報等を確認し,安全を確認したうえで行った.本当に危ないときには,もちろん返しに行かない.何かに巻き込まれたら,永久に返せなくなるからだ.