モノクロームの部屋

「趣味は?」と聞かれても言いよどんでしまうので新しく趣味を探すことにしました。

Python の非同期処理・並行処理・並列処理を完全に理解する - 前編


これはなに

タイトルの通り、Python の非同期処理・並行処理・並列処理についてまとめた記事です。
本題に入る前に、ハードウェアの話をします。
正直ハードウェアはあまり詳しくはないので、間違った記載や「これどうなってる?」とかあったら気兼ねなく言ってください。

というのも、最近プログラム (Python) を書いてて「このループ重いなあ……」と思うことが多々あり、そのたびに並列処理やら何やらを調べているのが面倒になったのでここらで完全に理解しておこうと思った次第です。

このブログの更新を期待している層が一定数いて、その層はこういった記事を求めていないのは承知ですが、なんか思い立ってしまったのでやります。
逆に、こういった記事があると「何書いてもいいや」って気になれて更新頻度が上がるかもね (果たして本当にそうでしょうか)。
普段の読者層にも伝わるように咀嚼して解説するつもりなので、お仕事や研究などで Python をやらされてる人々には有益な情報だと思います。

(執筆後記: ) 思いのほか本筋とは関係ない話が盛り上がってしまったので前後半に分けることにしました。





























今更聞けないハードウェアの話

なんとか処理の話をする前に、ハードウェアの話をします。

みなさんは PC 選びのときに「HDD と SSD ってどう違うんだっけ……」とか「クロック周波数って何なんだ……」とか思ったことありませんか?1

CPU のことを知らなくても通話しながらゲームができますし、記憶階層のことを知らなくても写真のサムネイルは表示されます。
詰まるところ、ソフトウェアがハードウェアを高度に隠蔽しているので、我々はコンピュータの内部構造を知らなくてもコンピュータを使うことができています。2

じゃあ一体コンピュータとは何なのか?






我々が普段使っているコンピュータは、
実はお寿司屋さんだったのです!

おお3

当然スマホや PC から寿司が出てくることも、タイピング速度が速いと寿司がたくさん食べられることもないのですが、
ハードウェアが「処理」をすることは寿司職人が「シャリ」を握ることと同じです。
「やかましいわ」「お前これが言いたかっただけだろ」などと思うかもしれませんが、このまま突っ走ります。




おいしいお寿司ができるまで

まず、一般的なコンピュータの主要な構成は

  • CPU
  • メモリ
  • ストレージ
  • 入力装置
  • (GPU)
  • 出力装置

です。
これらは、お寿司屋さんにおける

  • 寿司職人
  • まな板
  • 冷蔵庫
  • 注文
  • (お皿にお寿司とタンポポを乗せて配膳するカイリキー)
  • お皿

です。




では、先程の萌え萌え寿司職人さんに「1 兆以下の自然数の総和」を一丁注文したとしましょう。

ええ!?一兆!?

この萌え萌え寿司職人、実はとてつもないスピードでシャリを握れます。
具体的には、1 秒間に最大 2,000,000,000 (20億) 個のシャリを握ることができます。
しかし、彼女は人生を寿司に捧げてきたので、 \displaystyle \sum_{k=1}^{n}k=\frac{1}{2}n(n+1) などという公式は知るよしもありません。

幸い、彼女はたゆまぬ努力と天賦の才から、シャリに含まれる米粒の数を任意に調整でき、さらにシャリを握っただけで米粒の数がわかります。
ついでに、米は無限粒あります。

そのため、米粒が 1 個のシャリ、米粒が 2 個のシャリ、……、米粒が 1 兆個のシャリを作り、それらすべてを合体させたシャリの米粒を数えることでお客さんの注文に応えることができます。

この萌え萌え寿司職人こそが、お寿司屋さんの中核を担う CPU です。

では、「1 兆以下の自然数の総和」という注文が入ってから「500,000,000,000,500,000,000,000」が提供されるまでに厨房では何が起こるでしょうか?

まず、萌え萌え寿司職人は米粒が 1 個のシャリ、米粒が 2 個のシャリ、……、米粒が 1 兆個のシャリを作ります。
萌え萌え寿司職人はシャリの米粒が 1 個だろうが 1 兆個だろうが同じ時間で握れますが、結局 1 兆貫のシャリを握る必要があります。

1 兆貫のシャリを彼女一人で握った場合、 10^{12} \div (2 \times 10^{9}) = 500 秒かかります。
こんなスピードじゃお客さんは満足しません、もっと早くするにはどうしたらいいでしょう?

解決方法は大きく 2 つあります。

一つは、もっと早くシャリを握れるようにするというパワー系の方法です。
もし彼女が 1 秒間に最大 5,000,000,000 (50億) 個のシャリを握ることができたなら、500 秒かかっていたものが 200 秒まで縮まります。
ですが、当然「1 秒間に握れるシャリの数」なんて一朝一夕でどうこうできません。
そのような苛烈極まりない注文が横行するお寿司屋さんでは、もはや彼女はやっていけません。
お店の客でありオーナーであるあなたは、心苦しいですが彼女をクビにしてもっと有能で萌え萌えな寿司職人を雇うべきです。4

もう一つは、萌え萌え寿司職人をもっと雇うという合理的でスマートな方法です。
この方法なら、もう 9 人雇うだけで 500 秒が 50 秒になります。
これで萌え萌え寿司職人が路頭に迷うことはありませんし、新たな雇用の機会を生むことができました。

1 秒間に握れるシャリの数をクロック周波数5、お寿司屋さんにいる萌え萌え寿司職人の人数をコア数と呼びます。
今回の話はコア数に関連する話です。

さて、高速にシャリを用意できるようになったらこちらのものです。
あとはシャリが 1 兆貫乗るまな板 (メモリ / RAM)6 を用意して、その上で 1 兆貫を合体させたシャリを作ればよいのです。7






よかったね。

これで注文していたものが来ました!
これからはちゃんと \frac{1}{2} \cdot 10^{12} \cdot (10^{12}+1)と注文しましょうね!

本筋とは関係なかったので紹介しませんでしたが、ほとんどのお寿司屋さんにはお皿にタンポポを乗せるためのカイリキー (GPU) がいます。
最近はタンポポを乗せることよりも、ChatGPT のような巨大な寿司を作るほうに使われています。




まとめると、こんな感じです。

ハードウェア お寿司屋さん
CPU 萌え萌え寿司職人
メモリ まな板
ストレージ 冷蔵庫
入力装置 注文
(GPU) (タンポポを乗せるカイリキー)
出力装置 お皿

疲れたので前半はここまで!
いつか後半書きます。


  1. 僕は中学生ぐらいのときに家族共用の Nexus7 をいじり倒してメモリとストレージの違いを知りました。そんな Nexus7 も今では立派な文鎮として書類の上で使命を全うしています。↩
  2. 妹から「iPhone でファイルを作りたい」と言われて (iPhone に touch コマンド的なやつってあるのかな……てか何をしようとしているんだよ……) と思っていたら話が噛み合わず、よくよく話を聞いたらファイルではなくフォルダを作りたかったということがありました。iOS は OS という自身の存在すらも隠蔽し始めています。↩
  3. AI (Gemini 2.5 Pro) が考える「萌え萌え寿司職人」。どうして両手にシャリを握っているのでしょうか。↩
  4. 当然、もっと有能で萌え萌えな寿司職人を雇うにはもっと高い費用がかかります。↩
  5. もう少しちゃんと言うと、1 秒間に行える「行動」の数です。今回はシャリを握ることしか考えていませんが、萌え萌え寿司職人は時として冷蔵庫に寿司ネタを取りに行ったり、寿司ネタを切ったり、お皿にタンポポを乗せたり、配膳したりする必要があります。↩
  6. このお寿司屋さんのまな板はとても大きいので大抵の場合は事足りるのですが、足りない場合は一度まな板の上のシャリを冷蔵庫 (ストレージ) に入れる必要があります。まな板代わりに使われる冷蔵庫を仮想メモリと呼びます。↩
  7. あなたはただの客兼オーナーに過ぎないので 500,000,000,000,500,000,000,000 個の米粒の行方は知らなくてよいのですが、たまにごみ収集 (garbage collection) をしないと米粒たちがまな板を占領して他の寿司を握るのに支障が出ます。↩

Wordleをやろう

これはなに

お久しぶりです。みなさんお元気でしたか?

かく言う僕は最近何とは言わんものが出て、来年から東京に行くことになりました。めでたいね。

さて、Wordle熱が異常なのでWordleについての記事を書きます。
唐突すぎて意味がわからないと思いますが、本気です。

本稿では、

  • 最強の初動
  • 押さえておきたい重要パターン

について徹底解説していきます。

今回使う語彙レベルは一部を除き中学生レベルなのでご安心ください。
それでは解説していきます。

































Wordleとは

まずはこれを読んでください。

例えばお題がSTUDYで、最初にAUDIOを打った場合、

AUDIO → AUDIO

となり、

  • U, Dはお題の文字には入っているが場所が違う
    • Uは2文字目ではない
    • Dは3文字目ではない
  • A, I, Oはお題の文字には入っていない

ということがわかります。

そこからUNDERを打った場合、

UNDER → UNDER

となり、

  • Uは1文字目でも2文字目でもない
  • Dは3文字目ではない
  • N, E, Rはハズレ

ということがわかります。

さて、2手目のUNDERについて考えると、初手の時点で「Dは3文字目ではない」ことがわかっていたので無駄打ちをしてしまっています。

ここから得られる教訓としては、

  • 文字の位置を徐々に確定させること
  • まだ打っていない文字を打つこと
    • もう打った文字は打たないこと (例外アリ)

が大事だということです。

こんな感じで最大6回のチャンスでお題の単語を推測していきます。

ちなみに次にSTUDYを打った場合、

STUDY → STUDY

となり、ゲームクリアです。

この瞬間のために生きています。
ありがとうWordle。

ゲームの仕様として、同じ文字を2個以上含む場合はお題にある文字数分だけ光ります。

例えば、お題がTHEIRでTHREEと打った場合は、

THREE → THREE

のように2個目の"E"は光りません。
これでお題にEは1つしかないということを確認できます。

本家本元のゲームは一日一回(お題は全プレイヤー共通なのでネタバレしないでね)ですが、有志の方が作ってくださったWORDLE+で永遠に遊ぶことができます。

最近ずっとWORDLE+を狂ったようにしばいているので、今回はその経験をもとにお話しします。




最強初動単語

さっそく初動についてお話ししていきます。

Wordleにおいて最強の初動は









PENISです。

信じられないと思いますが、これまで培った様々な経験からPENISの強みを解説していきます。

なぜ強い?①

PENISが最強である第一の理由は、PENISが一発で当たったら面白いからです。

冷静に考えて毎回PENISって打ち続けてるの面白いし、それが当たろうものなら絶頂します。

「いや、ロマンがあることは強さではないだろ」という声も聞かれると思います。
「SNIPE(PENISの並べ替え、日本語的にはスナイプ)でよくない?」とか言われたらぐうの音も出ません。
それでも、我々はPENISに懸けたいのです。
だって、そのほうが面白いから──。

ちなみにSNIPEよりPENISである妥当性は美学です。
どうせなら美しくWordleをクリアしたくないですか?
後述しますが、美しくWordleをクリアできる可能性を秘めた単語、それがPENISなのです。




なぜ強い?②

ここからはSNIPEのことは忘れてください。

第二の強みは、"P"の存在を確認できることです。

実際にプレイしてみるとわかりますが、そこまで"P"の出現頻度は高くありません。
ではなぜ確認するのか?ということですが、ざっくり言うと"P"があったらめちゃくちゃ面倒だからです。

以下、これまで出たことのあるP絡みの単語です。

  • PUPPY
  • PAPPY
  • POPPY
  • HAPPY
  • HIPPY
  • HOPPY
  • TIPPY
  • TAPPY
  • GAPPY
  • CAPPY
  • MAPPY

……………………
だいたいわかるかもしれませんが、英語には**PPYが多すぎます。
PUPPY, PAPPY, POPPYに関しては"P"が3つもあります。
これは「P, Yを使うのがわかった!あと3文字なんだろう?」とか思ってると沼ります。

しかも普通に

  • PAPER
  • PAUSE
  • PULSE
  • POLAR
  • POUND
  • PLACE
  • PRICE
  • PARSE
  • PANIC

とかもある有様です。

意図的に"P"から始まるものを選んだだけで、SPENDとかCHEAPとかありとあらゆる場所に"P"がいるので絞るのがキツすぎます。

改めてキツい理由をちゃんと言うと、

  • "P"の文字数に幅がありすぎる
  • "P"の場所が自由すぎる

といった感じです。

4手目に"P"があることがわかったところで、そこから絞り込むのはかなり厳しいです。

というわけで、

  • 初手から"P"の存在を確認して
    • なかったら安心して進める
    • あったらさっさと場所を特定する

というのが安全です。
PENISの強みはリスクヘッジでもあります。




なぜ強い?③

ここから攻略チックになりますが、シンプルに展開が良いです。

母音に関してはE, Iを確認できます。
Eは大体の単語に入っていますし、入っていなかったらそれはそれで大きな情報です。
Iが4文字目で確定したら、だいたい***ICや***ITです。

そういった意味でも母音の情報が確認できるのは非常に嬉しいです。

母音を確認できると嬉しいとは言いましたが、全部すぐに潰すことについては否定的です。
比較的多くのプレイヤーがAUDIOやADIEUから始めるらしいですが、母音を削っても残された子音が多すぎます。
そのため僕は、子音を削りながらついでに母音もちまちま消すという戦略を取っています。

体感ですが、S, T, R, C, Y, Lあたりが子音の中でも頭一つ抜けて頻出な気がします。
特にS, T, Rは2手目で確認することを心がけてます。

というわけで、ここからはよく使うパターン(だいたい2手目まで)について解説していきます。




とにかく文字を潰す

Wordleは5文字×6回のチャンスがあるので、最大30文字打てます。

特に何も考えたくない場合、あるいはPENISで何も当たらなかった場合、以下のフローで15文字確認できます。

  1. PENIS
  2. FLOUR
  3. MATCH

注意点としては、***CHが意外とあって間に合わない可能性があることです。
頑張ってね。




"E"の位置を確定させる

Wordleの壁として、同じ文字が複数回出現するというパターンの対処が難しいです。

特に"E"に関しては2回出現することも間々あるので早めに位置を確定させておきたいところです。
ここからパターンごとに考えていきます。

"E"だけが黄色だった場合

PENISだった場合ですね。

この場合、ERECTがいいですね。
聞き馴染みのない単語かもしれませんので意味を解説しておくと、




勃起するという意味です。
これこそが僕の美学です。

E, Sが黄色だった場合

PENISだった場合ですね。

この場合、普通にSTEELとかでいいです。

特殊パターン

本当は全網羅したかったんですが、アツい(何が?)ものだけご紹介します。

パターン①

PENISだった場合についてです。






迷わずSEMENと打ち込んでください。

またもや聞き馴染みのない単語かと思います。
意味は




精液, ザーメンです。

気持ちいい〜

パターン②

PENISだった場合についてです。






迷わずSPERMと打ち込んでください。

またもや聞き馴染みのない単語かと思います。
意味は




精液, スペルマです。

SPERMチャンスこそあれど、まだ出題されていません。

パターン③

PENISだった場合についてです。






迷わずPUSSYと打ち込んでください。

さすがに意味はわかると思うので省略。




まとめ

WordleはPENIS始動が強い!SEMENもSPERMもPUSSYも狙えるぞ!

みんなもWordle、やろう!
じゃあね!

バイト先の送別会のために理論武装する(後編)


これはなに

コミュニケーション不安人間がバイト先の送別会に参戦する話の後編、送別会レポートです。

前編をお読みでない方はぜひ読んでみてください。

……の予定だったのですが、いかんせんお酒をたくさん飲んだのでほとんど覚えてないですね〜笑
大風呂敷を広げておいてなんだその態度は。

今回は送別会レポートと今後の展望についてお話ししたいと思います。
すごく雑な記事にはなりますがよろしくお願いします。































言語学を学んでもギリシャ語は喋れない

コミュニケーション学を学んでもコミュニケーション強者にはなれないという話。

まずは課題点だったコミュニケーションの結果から述べます。









結果: 覚えてない









もうなんも覚えてないです。
本当は「こんなコミュニケーションがあったけどこの観点からダメだった」みたいな例示ができればベストだったのですが、全然思い出せません。
それでもふわっとした反省点はあるのでいくらか挙げてみようと思います。

  • インプット自体は良かったが、常にそんなことを考えながら発話するのは不可能
  • "人を褒める"が致命的にできない
  • キャラ付け、アレで良かったのか……?
  • 自己開示をやりすぎた

上から順番に反省をしていきます。




正直、頭でっかちになることは予期してました。
個人的にはもうちょっとだけ処理能力高いかと思ってたんですが、僕の発達特性上もともと無理なものを更に酒というデバフをかけて処理しようってのは無理難題でしたね。
じゃあ平常時ならいけるかと言われると、キャパオーバーでそれも無理だと思います。
なんのためのインプットだったんだ?1

これは自己満足ですがインプットが役立ったと思わないこともなかったです。
特に会話が止まったときにどのような発話によって終了状態2に至ったか、そしてどんな規則から次の発話が生まれそうかというのを観測するのがすごく楽しかったです。
自己完結してるのでまず発話に参与しないのがタチの悪いところです。

御託はここまで、きちんと反省します。
体感、そんな悪くないコミュニケーションを取れたと思います。
ですが、僕は無意識的にできる理論立った行為をめちゃくちゃ気味悪く感じるので、今後このような場があれば3コミュニケーションの記録をつけて分析していこうと思います。
あとは参加者のみなさんにフィードバックをお寄せいただくことなども検討しています。
定量評価は大事……




次に"人を褒める"ことが致命的にできなかったことですね。
これに関しては僕の人間性みたいなところが大きいです。

社員さんと同じテーブルになったのですが、卒業されるみなさんが順繰りに回ってきては社員さんをヨイショ4していました。
ここで僕も気の利いた一言を添えて説得力を強めてあげられれば良かったのですが、全くできませんでした。
全く褒めるところを見つけられなかったんですよ、これは悪口ではなく。

僕の人間性として、自己評価が著しく低いため基本的に他者には何らかの尊敬の念を持っています。
突出した技能があれば「突出した技能すげー!」ってなりますし、特に何も無ければ「生きてる!すげー!」ってなります。
当然問題は後者の場合で、今回はそれに当たったため、あまりに称賛の対象が曖昧すぎて何がすごいのか言語化できませんでした。

まあとにかく人を褒めるというのは練習が必要だと思った次第です。
反省点としては自分との相違点から褒めポイントを見つけ出すこと、その人の過去と現在との比較をして成長した点を述べることなどが挙げられますね。
今思えばこれは努力次第でやりきれたかもしれなかったことでした。




次にキャラ付けの話です。
実際にどんなキャラ付けをした(された)かというと、コミュニケーション不安がめちゃくちゃ強くて破茶滅茶にネガティブなネット弁慶です。

一般の方からすると珍獣みたいな存在5なので興味を持っていただけて何よりでした。
「コミュニケーションの練習に今度メイド喫茶行きましょう!」6とも言っていただけました。
前編で学んだ体験も試しに話題にしてみました、だいぶウケは良かったです。
しかし結局よくある変人のロールプレイに過ぎず、パンピへのレールからまたしても逸れてしまいました。
これに関しては次の自己開示の話とも繋がります。




えー、自己開示の話です。
これはめちゃくちゃやらかしました。

コミュニケーションの更なる向上を図って2次会にも参加したのですが、ここでは更なる自己開示をしてコミュニケーションを円満にこなしていこうと思っていたんですよ。
キャラ付けが上手くハマった(当社比)ので、僕の持ち得るコンテンツの全てとしてふとブログの話をしました。
これが諸悪の根源でした。

嬉々として筋子からイクラを精製した話などをしていたんですが、このブログ、禁忌の記事7が一つだけあったの忘れてました……
その話になった途端、たちまち酔いは醒め、眼前の世界は明瞭になり、ただ目を据えて「これだけはダメです」と発していました。
ネガティブ・フェイスですね。
一方で人は物事を禁止されると余計にやりたくなってしまいます。8
一人ちょっと信頼を置いてるやつを犠牲にすることで「これは確かにダメですね」とセカンドオピニオンを頂き、事なきを得ました。9

そこから全てが狂っていきました。
まず何らかの脈略でインスタ交換会が発生し、「インスタなら大丈夫だ〜」と言い交換しました。
そんな僕のインスタの過去の投稿がこちらです。









インスタで遊ぶな。
これはめちゃくちゃ突っ込まれました。
僕もなんでこんな投稿をインスタでしたのか全くわかりません。

して、SNSの話になった(最悪だ)わけですが、何を思ったか「Twitterアカウントたくさんあるんですよ〜」とか口走ってしまいました。
なんでそんなこと言ったの?
順当な流れとして「どのぐらい?」となってTwitterの画面を見せました、これが意味するところはIDの開示です。




はい、私はTwitterの垢バレをしました。
家帰ったら鍵にフォロリク来てて戦々恐々としました。10
この話、この人生、終わり。




ちなみに最後にありがたいお言葉もいただけました。

「これでめっちゃ勉強してコミュニケーション強くなられても、なんか勿体無い気がします」

社交不安は、終わらねェ!




今後の展望

結果的に丸く収まったと思っていますが、やはり課題となるのは会話が途切れたときの次の話題です。

コミュニケーションが強いように見える人はいつでも話題に困っていないです。
実際そう見えるだけで本当は尋常じゃない速度での連想ゲームを行っているはずです。
僕はその連想ゲームに使うシナプス間の繋がりがまだまだ弱いなと感じた次第です。

今後コミュニケーション活動があったら、もう少しいい感じの性能を出せると思います。11
インプットする行為自体は無駄じゃなかったと思います、会話の引き出しという点で。
我ながら引き出しの数はそこそこあると思ってるので、どの引き出しを引くかっていうのを効率よく探して、その引き出しの近くの引き出しを更に引けると会話が上手く回りそうだなって思いました(日本語?)。

兎にも角にも、激烈に悪い思い出にはならなくてよかったです!!
一概に成否は決められませんが、ある種の社会活動の成功として記録に収めておきたいと思います。
お読みいただきありがとうございました。





  1. 面白かったので万事OKです。↩
  2. 会話(の感情)をオートマトンでモデル化したみたいな自然言語処理のポスターセッションをみたことがあります。↩
  3. もう二度とないかと思います……↩
  4. 言い方は悪いですが、そういうふうに見えました。↩
  5. オタクに伝わるように伝えると、後藤ひとり(20代男性)です。↩
  6. 理想環境で実験が行えるのは確かに良いのでは?と思いましたが、金を払ってコミュニケーションしに行く気持ちが分かりません。↩
  7. 当然、その場には女性がいる。↩
  8. カリギュラ効果という心理学的現象です。↩
  9. ちなみにブログタイトルは覚えられてしまったんでガチで終わってます。↩
  10. 破茶滅茶な善人なのでフォロリク通しました。↩
  11. 誘われるかはさておいて。↩

バイト先の送別会のために理論武装する(前編)


これはなに

お久しぶりです。明けましておめでとうございます。

早速本題ですが、先日バイト先の送別会に誘われました。
進んで行くほど仲の良い人はいなかった1のですが、断るほどの勇気もなかったため行くことになってしまいました。
いつも通り付和雷同な人生を送っている次第です。

今回はコミュニケーションに難を抱える僕がさまざまなアプローチで送別会、もとい関係希薄な人間とのコミュニケーションの場に挑んでいくさまをご覧いただこうと思います。
前編としては対人関係に役立つ知識のインプットを、後編としてはその実践例(送別会レポート)をお届けする予定です。

今回はその前編で、覚えた知識のアウトプットとして記事を書いていきます。
今までの記事が信じられないぐらいに文字ばかりのお勉強テーマなので飽きたらすっ飛ばしてください。

このブログがパンピとのコミュニケーション不安を抱える津々浦々のオタク2の一助となれば幸いです(ならないと思います)。































今回のモチベーションと目標

簡潔に今回のモチベーションを述べます。









シンプルにお喋りを楽しみたい!!!!!
そしてあわよくば脱オタクして「正常」というレールに乗っかりたい……











ざっとこんなところですね。

小目標として来る送別会で満足なコミュニケーションを取ること、大目標として今後の人生における人との関わりを十全にこなすことを掲げておきましょう。

送別会の実態はただの飲み会(実際そう言われた)なのですが、社会的経験値(≒友達)が少ないのでそのただの飲み会とやらでの振る舞い方がわかりません。
寂しい人生だったな。




簡単に状況を説明します。

飲み会の規模としては僕含めて13人、紛うことなき人生最大の飲み会です。
僕以外のみなさんは煌びやかな大学生活を送ってそうな感じです、偏見ですが。
女性の方もいらっしゃるのでポリコレ棒で口に戸を立てなければなりません。
送別対象のみなさんは誰ともまともに会話した記憶がありません。3
というかそもそも他の面子もまともに喋ったことがありません。




Q. なぜ誘われた?
A. たぶん義理。




やってしまった〜〜〜〜〜〜〜〜
義理を義理と理解するのが遅かった〜〜〜〜〜〜〜〜
「こいつ義理で誘ったら本当に来ちゃったよ……」とか思われてるなこれ……………………
一応断れなかった理由を述べておくと、送別会に先立ってバイト先の研修会があってそちらには参加表明をしてしまっていたため流れに抗えなかった、という話はあります。

まあ後悔は先に立たないので前向きに事を捉えましょう。
これはコミュニケーション能力を試す場である、と考えて最低限「義理でこいつ誘ったけど思ったより面白かったな」と思ってもらえるように頑張ります。

面白トークがバンバン出るほど最後までコンテンツ力たっぷりの人間じゃないので所謂「雑談」というやつで乗り切る他ないのですが、この「雑談」がとてつもなく苦手で困っています。




兎にも角にも気乗りしない飲み会ですが、コミュニケーションの何たるかを学ぶきっかけだと思って万全の準備で臨むことにしました。
僕以外の誰もがここまで真摯に飲み会に向き合っていないでしょうが、僕にとっては由々しき問題なのです。




めんどくさい?これが社交不安ですよ。




グライスの会話の公理(Maxims of Conversation)

もういきなり見当違いな話題から入っていきます。

言語学に、発話(utterance)の意味を扱う語用論(pragmatics)という分野があります。
これから発話というタームを多用しますが、普段のお喋りだと思ってもらって大丈夫です。

にわか言語オタクとしてはコミュニケーション能力の改善には語用論を学ぶべきだと思ったわけですね。
コミュニケーションって発話の連続ですからね。

見出しにある「会話の公理」は語用論のタームなのですが、ざっくりと言えば会話を円滑に運ぶための基本的なルールです。
コレコレ!求めていたものですよ!!

以下に独自解釈した内容を示します。

  1. 量の公理
    • 過不足なく受け応えをしよう。
  2. 質の公理
    • 嘘だと思うことは言わないようにしよう。
  3. 関連性の公理
    • 脈絡のない話はやめよう。
  4. 様態の公理
    • 分かりやすく述べよう。

オタクがやりがちな発話がことごとく禁止されていますね!
一見当たり前ですが、言語化してくれると何に気をつけて発話したらいいか分かりやすくなって嬉しいですね。

分かりやすくなったものの、いざ実践するとなると様態の公理はなかなか難しいです。
リアルタイムで分かりやすい文を作ることが求められているわけです。
しかも、音声という不可逆的な媒体で。

そうなると「分かりやすい文」について考える必要が出てきますね。
これに関しては特に学術的アプローチとかないんですが、備忘録として個人的に意識していることをまとめておきます。

  • 一文を短くする
  • 主語と述語を近づける
  • 能動態で述べられることは能動態で述べる
  • 副詞は動詞のすぐそばに置く
  • 名詞句を短くする(助詞を多用しない)
  • 結論から述べる(あんまりできてない)

手軽に取り組めそうなのは最初の『一文を短くする』ですね。
発話になるとどうしても「〜なんですが……(終)」みたいな非文を生成してしまうので気を付けたいです。

ちなみに、例外的に会話の公理が守られないような会話も存在します。
大体相手に(直接的には)伝えたくない事柄があるような場合(あるいはマジで会話がヘタクソか)です。
意図を汲む、という点で会話の公理に則っているか否かを意識するのは大事そうですね。




この調子でどんどん語用論の見識を深めていきましょう!




ブラウンとレビンソンのポライトネス理論(Politeness Theory)

お次のインプットは「相手との距離感、いい感じにしたいよね」って話です。

読んでるサイトによれば、『人間関係を円滑にするための言語ストラテジー』とのことで本課題にピッタリです。

具体的にどうするのかというと、「ポジティブ・フェイス」と「ネガティブ・フェイス」の二面を脅かさないように振る舞います。

ポジティブ・フェイスは大まかに言えば承認欲求、ネガティブ・フェイスは相手と一定の距離を保ちたいという欲求のことです。
ポジティブ・フェイスは"相手に近づく欲求"、ネガティブ・フェイスは"相手から離れる欲求"とも取れます。

コミュニケーションの目標は、双方のフェイスを維持することにあります(あるそうです)。
しかしながら、自慢話とか踏み込みすぎた話とかによって、時として一方のフェイスが脅かされるときもあります。
フェイスを侵害するような行為をFTA(Face Threatening Act)と呼び、コミュニケーションではFTAの度合いを見計らっていい感じに意思疎通しよう、というのがポライトネス理論から得られる学びです(独自解釈)。

いい感じに意思疎通、というのも嬉しいことにランク付けされています。
以下、上から順に「いい感じ」の意思疎通です。

  1. FTAにあたる行為を行わない
    • 自分のフェイスを諦める
  2. 仄めかす(なんだこの曖昧な表現は)4
  3. ネガティブ・ポライトネス
    • 相手のネガティブ・フェイスを尊重すること
  4. ポジティブ・ポライトネス
    • 相手のポジティブ・フェイスを尊重すること
  5. あからさまに言う
    • 相手のフェイスの保証をしないこと

上から順に、次の飲み会を提案する例5を挙げるならば、

  1. 「……(何も言わない)」
  2. 「ここの料理結構美味しいですね〜(飲み会を楽しんでいることを仄めかす)6」
  3. 「気が向いたら(相手の自己決定権を担保している)また飲み行きましょう〜」
  4. 「またこのメンツで(相手を同じ集団の一員として扱うことで承認を行っている)飲み行きたいですね〜」
  5. 「次の飲みいつにします?(相手のフェイスを考慮していない)」

とかですかね……7
要するに相手の気持ちを考えて行動しようというわけで、その"相手の気持ち"って"接近(approach-based)"と"忌避(avoidance-based)"の2つがあるよね、という理論でした。

当然のことながら賛否両論ある理論なので絶対ではないですが、コミュニケーションにおける"気持ち"を接近と忌避の二元論に簡略化できそうなのは便利だと思いました。




順番交替(Turn-taking)

語用論とはちょっと別ジャンルの会話分析という分野で大事な概念です。
会話分析、まさしく求めているものがありそうな名前してますね。

順番交替とは、話す/聞くのスイッチングです。
会話、と言われて思い浮かべるのは双方向的な発話の場面でしょう。
"双"方向というだけあって、会話の参与者は聞き手と話し手の役割を交互に交替していくことになります。

なんで順番交替が重要かというと、会話の秩序に関わるからです。
授業みたいに一方的に話し続けることは一般には会話と呼びませんし、相手の話を遮って発話を始めるのもあまり良い会話(秩序立った会話)とは言えません。
順番交替が言いたいのは、「正しいポイントで発話の順番を獲得しよう」ということです。

一体、正しいポイントとは何なのか、というのが"移行適切場(Transition Relevance Place; TRP)"です。
参考になりそうな文献を読んでみましたが、語弊を恐れずに言えば話の区切りですかね。
先程、

発話になるとどうしても「〜なんですが……(終)」みたいな非文を生成してしまう

と述べましたが、統語的に(≒文法的に)完了していない場合でも、イントネーションが下がれば話の区切り(TRP)として扱われるそうです。
実際の会話を振り返ると、

「ニンニク入れますか?(統語的完了・イントネーションの完了・質問行為の完了)」
「ヤサイアブラマシマシで(統語的には未完了だがイントネーション・応答行為としては完了している)」

みたいな例がありますね。8

この例でも分かる通り、TRPで順番交替が起こり得ます。
必ず交替する訳ではない、というのがミソですね。
会話分析ではTRPのたびに以下の手続きが行われるとしています。

  1. 発話中に初めてTRPに至った場合
    1. それまでに現在の話者が次の話者を決定していたら、指定された人が次の話者になる権利と義務を持ち、そこで順番交替が起こる
    2. 現在の話者が次の話者を指定しておらず、他の者が次の話者として自己を指定すれば、その者は次の話者となる権利を得て、そこで順番交替が起こる
    3. 現在の話者が次の話者を指定しておらず、他の誰も次の話者として自己を指定しなければ、現在の話者が話し続けてもよい(順番交替は起こらない)
  2. 1-cが適用された場合、次のTRPで再び1-[a-c]のいずれかを適用し、順番交替が起こるまでこれを続ける

ボドゲの説明書か?

ちょっと噛み砕いて言うと、(1)話の区切りがついたら、(1-a)話の流れ的に喋るべき人が喋るべきで、(1-b)特に流れがなければ喋りたい人が喋ればよくて、(1-c)誰も喋らなければ喋り続けてよくて、(2)喋り続けたら次の話の区切りでまた(1)の判定が起こる、といった感じです。

我々コミュニケーション不安部としては何を学ぶべきかというと、健全な順番交替を行うために「TRPを明確化しよう」、そして「1-cが適用される前に1-bを適用しよう」ということではないでしょうか。

不明瞭なTRPでは、他の会話参与者がいつ順番交替を行えばよいか分からなくなってしまいます。
対策としてはやはり統語的・イントネーション的・行為的完了を意識することですね、特に統語的完了は一番伝わりやすいです。9
やはり非文はよくない……

「1-cが適用される前に1-bを適用しよう」は言い換えれば、言いたいことはさっさと言おうということです。
1-cが示しているのは、こちらが何も言わなくても会話が継続し得るということです。
発話に対する反応を考えていたら別の話題に切り替わってしまい言いたかったことが言えなくなったこと、ありませんか?
僕は何度もあります。
そういうのを防ぐために迅速に反応できるようにしておきたいですね。10
相手の話をバンバン切ろう、と言いたい訳ではないので誤解なきよう。

会話はターン制だという自覚をきちんと持ってコミュニケーションしていきましょう。




発話順番の割当(Turn allocation techniques)

会話はよくキャッチボールに例えられますが、どうやってボールを投げたらよいでしょうか?11
順番交替では"どのような場合に順番交替が起こり得るか"を見ましたが、"次の発話者をどう決めるか"はあまり触れられていませんでした。
ボールの投げ方、つまり次の発話者の決め方を考えるのが発話順番の割当です。

発話順番の割当には以下の2パターンがあります。

  1. 次の発話者を現在の発話者が指定する場合
  2. 会話の参与者が自分から話し始める場合

それぞれ他者選択と自己選択と呼びます。
どちらの場合も必要な手続きがあるのでそれをまとめておきます。

まず他者選択の場合です。
順番交替の法則だと1-aに相当します。
他者選択では、以下の2つの手続きが両方とも必要です。

  1. 隣接ペア(後述)の第一成分を産出する
  2. 発話順番を次の発話者として選択する参与者に宛てる

1つ目ですが、要するに投げかけですね。
「そうですよね」みたいな応答・同意にあたるような発話は次の発話者を指定しません。
隣接ペアの第二成分だから〜って説明が一番良い気がしますが、それは次のところで説明しようと思います。
会話を続けるには相手の反応を求めるような発話をしようというわけです。

2つ目は話者を指定したい場合は(ある程度はっきり)指定すべきということです。
「誰かイスラエルのEDM聴いてる人いませんか?」と聞いても、"誰か"では次の発話者が不特定で(自己選択が起こらない限りは)会話が続きません。
なので、きちんと「○○さんって、イスラエルのEDM興味ありませんか?」と聞くようにしましょう。12

補足しておくと、"(ある程度はっきり)指定"というのは、発話の中で相手の名前を言うとか次の発話者の目を見て喋るとか手振りで相手を指す13とか明示的なものに限りません。
先程の文献によると、非明示的な選択の例としては、

を利用して発話を宛てることが挙げられていました。
連鎖上の位置って言われると難しいですが、「さっきこの人が喋ったから次は自分だな」みたいな前提のことです。
発話内容と参与者のアイデンティティについては、例えば「うちの大学って前期いつからでしたっけ?」と聞かれたときに、参与者は"発話者の大学(発話内容)"と"自分の大学(参与者のアイデンティティ)"を比較して発話が自分に宛てられているか理解する、みたいな流れのことです。
非明示的な選択を使いこなせるようになれば相手の名前を呼んだり目を見て話したりしなくて済む……ってコト!?

以上が他者選択の手続きでした。

次に自己選択の手続きです。
自己選択の手続きは特段難しいこともなく、喋りたかったら喋るというのが原則です。
これは順番交替の法則1-bにあたる部分ですね。

難しいことはないのですが、喋り続けたい場合(1-c)に自己選択(1-b)される(割って入られる)と困ります。
話の前提になるような部分をあとから喋るつもりが相手に先を越された、みたいなことはよくありますね。
そのような事態を防ぐため、会話では時折"駆け抜け(Rush-through)"という手続きが見られます。
"駆け抜け"とはTRPの前後で発話スピードを上げることです。
駆け抜けのない例とある例を見てみましょう。

「休みの日はだいたい奈良健康ランド行ってるんだけど……(イントネーションの完了; TRP)」
「奈良!?時間かかるでしょ」

会話としてはまあ成立してそうですが、僕はサウナの話に持っていきたかったので移動の話はちょっと邪魔です。
そこで、駆け抜けを使ってみましょう。

「休みの日は奈良健康ランド行ってるんだけど(ここから発話スピードup)、あ、サウナ入りにね」
「へぇ〜サウナかぁ、サウナ好きなの?」

よし、上手に話せたな!14
このように駆け抜けを使うことで話題をコントロールできそうだ、というのがここでの知見でした。




隣接ペア(Adjacency Pair)

こちらも先の順番交替と並んで会話分析において最重要とされる事項です。

隣接ペアは隣り合った発話のペアを定型化したものです。
挨拶をしたら挨拶が返ってきますし、質問をしたらその答えが返ってきますよね。
この"挨拶-挨拶"とか"質問-返答"みたいなペアのことを隣接ペアと呼んでいます。
ペアと呼ぶだけあって、"挨拶"と"返答"は対応しませんし、"返答"の後に"質問"が来ることもありません。
順序対ですね。

隣接ペアで重要なのは、隣接ペアの第一成分には規範や期待が伴っているということです。
挨拶という第一成分には挨拶を返さなければならないという規範が、質問という第一成分には相手は返答してくれるはずだという期待が含まれています。
これを上手く汲み取ってやることで円滑なコミュニケーションが取れるのでは!?

先述の他者選択で挙がった『隣接ペアの第一成分を産出する』というのは、第一成分の規範性に基づいています。
隣接ペアの第一成分を産出することで「この第一成分には対応する第二成分があるよな?」と相手を誘導する訳です。
『質問を質問で返すなあーっ‼︎』ってやつです。15

色々な隣接ペアを見てみましょう。

  • 出会いの挨拶-出会いの挨拶
  • 呼び出し-応答
  • 質問-返答
  • 申し出-受け入れ/断り
  • 要請-受け入れ/断り
  • 提案-同意/不同意
  • 評価-同意/不同意
  • 苦情-謝罪/言い訳
  • 別れの挨拶-別れの挨拶

などがあります。

読んでる文献では、"質問-返答"ペアはやや注意と指摘されていました。
どう要注意なのかというと、疑問文の形をしていても必ずしも"質問-返答"ペアの第一成分とは限らないという点です。
以下はその例です。

「今何時?」
「ごめんスマホの電池切れちゃって……」

一見すると「今何時?」は質問に見えますが、実体としては「現在時刻を教えて欲しい」という要請でした。
そしてこの会話は、"質問-返答"ではなく"要請"に対して"断り"を入れていると解釈するのが妥当でしょう。

さっきの文献では以下のように述べられていました。

「相手から質問されればこちらは返答しなければならない」というのは経験的に事実だが、それで当該のやり取りが終わるのではなく、 「なぜその質問がなされたのか」の疑問が解決されてはじめて完結をみる

質問をしたら『なぜ・それを・今・私に?(why that now and to me?)』が解決するように会話を広げよう、という学びが得られました。
質問は話題提供として便利ですが、注意すべき点もあるということですね。




まとめ

得られた学びをまとめます!

  • 過不足なく話そう
  • 嘘だと思うことは言わないようにしよう
  • 脈絡のあることを話そう
  • 分かりやすく述べよう
  • 相手が接近したいか忌避したいかをわきまえよう
  • 話の切れ目は分かりやすくしよう
  • 会話に参加したかったらなるはやで参加しよう
  • 会話を続けたかったら相手の反応を求める発話をしよう
  • 会話を続けたかったら次の発話者を選択しよう
  • 様態の公理を守り損ねた場合は駆け抜けよう
  • 隣接ペアの第一成分に対応した発話をしよう
  • 質問をしたら『なぜ・それを・今・私に?』が明らかになるように話を広げよう

これらのことを意識して、楽しくコミュニケーションが取れるよう頑張ります!16




驚くほど文字だらけの記事になってしまいましたが、お読みいただきありがとうございました。




参考文献







  1. バ先の人間がこの記事を読まないことを願うばかりです。↩
  2. 斯くいう僕はオタクなのか?と言われると非常に怪しいですね。最近何のオタク活動もしていないので。↩
  3. 喋ったことはありそうなんですが事務的な内容ばかりだった気がします。必要なときしか会話をしない最小公倍数的な関係です。↩
  4. こちらの論文だと、"off record"と言われています。どちらにせよ結構曖昧では?↩
  5. 絶対にそんな提案しないと思います。↩
  6. ほんまか?↩
  7. 一生懸命考えたのに、あからさまにコミュニケーションが下手そうで泣いてしまった……↩
  8. 普段こんなコミュニケーションしか取ってないから……↩
  9. 先の文献では、イントネーション的に完了していないにもかかわらず統語的に完了してしまったせいで会話が遮られてしまう例が挙げられています。補足情報を後から倒置で言いがちな人は要注意(自戒)。↩
  10. 時間が許せばファスト&スローとかも読んでおきたいですね。↩
  11. ハンドボール投げ9mです。↩
  12. そもそもこの話題の発展性がない。↩
  13. ジェスチャーはまだしも、相手の名前呼ぶとか目を見て話すとか正直めちゃくちゃハードル高いです。↩
  14. 様態の公理が守られていればこんなことにはならなかった。最初から「サウナ入りに、奈良健康ランドまで……」って言っておくのが理想的です。↩

  15. でも別に質問を質問で返してもよくて、その場合は会話分析では"修復"という手続きになります。
    「この前○○さんが言ってたこと覚えてる?(質問)」
    「誰って?(修復の開始)」
    「○○さんだよ(自己修復)」
    「あ〜覚えてる覚えてる(質問に対する返答)」
    のように質問と返答の間に一連の「質問」が入ることがあります(挿入連鎖)。↩
  16. これだけのことを考えながらコミュニケーションをエンジョイできる気がしません。↩

刺身工場でタンポポを乗せていたところTwitter botが出来上がった


これはなに

GW日記3日目1。
刺身工場の職業訓練生がTwitterのAPIを叩くなどしてbotを作りたくなったのでその進捗など。

情報系のトピックしかないなので興味がない人はおたより返信のところから見てみよう。

あとソースコードとか一切ないんで本筋の話を読んでもコードが書けるようになったりはしません。カスのブログ。











経緯

みなさんは、好きなラーメン屋さんがたくさんありますね?


光の速度で更新されてゆくタイムラインの中でラーメン屋さんの営業情報を知りたくてリストを作ったりしていますね?


そして、ラーメン屋さんが客のツイートを無駄にRTしていて結局リストに無駄な情報が流れてきたりしますね?






はい、開発のモチベーションとしてはこんな感じです。

  • リストにあるラーメン屋さんの公式Twitterから、営業情報"だけ"を表示したい
  • ラーメン屋さんによる「○○食べました😋今日も美味しかった❗️」みたいな客のツイートのRTは見たくない
  • だがリストにはRTを非表示にする機能はついていない
  • じゃあラーメン屋さんをフォローしてRTを非表示にすれば解決するかというと、他のツイートに埋もれて結局営業情報が流れる

ということで純粋な営業情報だけを取得するbotが欲しくなりました。

step-1: わたしのステータス

Twitter botを作る記事はごまんとあるのですが、大概前提知識がデカすぎて「いやそれは知らんが……」となります(なっていました)。

ここで開発開始のわたしのステータスを公開します。

  • Twitter APIとやらが存在して、それをよしなに"叩く"とよしなな"戻り値"をドロップするらしいことは知っている
  • じゃあどうやってAPIを叩く?それは知らん
  • そもそもどんなAPIがある?ドキュメントを読んでいない
  • プログラミング自体はまあ別にやってやれんことはない
  • もう全体的に何が必要で何が足りていないのかわからない
    • APIを叩くライブラリがどうやら存在するらしく、それは必要な気がした
  • Pythonはほぼ書けない
    • なんかTweepyというライブラリが便利そうなのだが……
  • AtCoder灰色(叩かないで……)
    • AtCodererあるある: C++の環境はできてる

よわい(確信)。

この記事は0からAPIの叩き方を学んでドキュメントを読んで実装する開発ドキュメンタリー記事2となっております。

ちなみに絶対にどこかでボロが出てハックされるのでソースコードは載せません(あとコードの載せ方もよくわかんない)。




step0: 作りたいものの仕様設計

結構大仰な言い回しですがさすがに決めておくかと思い、仕様を決めました。

以下の感じのものができたら嬉しいですね。

  • リストに入っているアカウントのRTを除いたツイートを取得してどこかに垂れ流す

課題を細分化していきます。

  1. リストに入っているアカウントを取得する
  2. それぞれのアカウントのツイートを取得する
  3. そこからRTを消す
  4. その結果をどこかに放出する

がやりたいことですね。


要するにTLにあるラーメン屋さん直々のツイートだけをどこかにストアしておきたいわけです。

サーバーを借りたりは面倒だったので、今回は自分にDMするという方法にしました。




step1: APIはどうやったら叩けるのか

ここから未知の領域に突入していきます。

APIとは"Application Programming Interface"の略だそうです。そうなんだ。
インターフェースを謳っているあたりプログラムとプログラムの橋渡しをしてくれそうですね。

まずは"Twitter API 叩き方"なんかで検索してみましょうか。

結果こんな感じの理解が生まれました。

  • API利用には申請がいる
  • 申請をするとAPIキーやAPIトークンなどをもらえる
  • 申請には「何に使うのか」などを英語で詳細に記述する必要がある
  • 申請するためのアカウントはメールアドレス登録が必須

キーとかトークンはなんとなく知っています、確かタンポポの花言葉でしたよね。

あと全部英語でしたが義務教育を修了していたおかげで特に詰まることはありませんでした。

して、Twitter APPsにログインしたところDeveloper Accountにしろと言われたので必要事項を記入してメール認証を経て登録しました。

して、たぶん必要であろうものを取得しました。以下の4つです。

  • API Key(Consumer Keyとも)
  • API Secret(Consumer Secretとも)
  • Access Token
  • Access Token Secret

こいつらを厳重に保管しろと言われたのでそうしました。

あと、英語で色々書けとか言われなかったけどなんだったんだろう(これが伏線になっています)。

それはそれとして、これがあればTweepyで簡単に、具体的には20行ぐらいでbotの作成ができるらしいのですが……




Pythonのコードが読めない!






動的型付け言語が一気に嫌いになりました。
やっぱりOCamlやね3。




step2: 沼

pythonを入れてtweepyを入れてVSCodeにtweepyのパスを通してエトセトラしてたら沼にハマりました。




沼1: API v2

とりあえずテストでなんかツイートしてみようとして、道端でソースコードを拾ってやってみたのですが403Forbiddenが出る始末。

ありえんやろそんなんと思い、色々調べてみた4ところ、このAppはEssential accessしかなく、さまざまな例で挙がっているAPI v1.1が叩けないことがわかってしまいました。

API v1.1を叩くにはElevated accessが必要5なのですが、この申請に英語で詳細な利用目的を書く必要があったらしいです。

デフォルトのままEssentialしかないやつを作成したため初手でぶつかんなかったわけだ6。

ネットの知識のほとんどが無に帰したわけですね。

API v1.1を利用するにはElevated access7が必要なのでとにかくAPI v2縛りでやってみる必要が発生しました。




沼2: Read only App

これは普通に文字通りで、設定ミスっててツイートのポストができなかっただけのお話です。

デフォルトだとRead-Onlyになるので気をつけよう。




step3: Hello, TwitterAPI!

できました。

ここまでできたのでリストからツイートを取得してみましょう。




沼3: OAuth1.0a認証

当然サクサク行くわけもなく沼りました。

具体的にはリストのツイート取得ができませんでした。

なんでかというと、リストが非公開で、そもそもリスト作ってる開発用アカウントも非公開なのでpublicに見られるものならなんでも取得するOAuth2.0認証とは相性が悪かったのです。

して、Appのユーザの権限を利用するOAuth1.0a認証が必要になりました。8

これに関してはtweepyのドキュメントを眺めていたらOAuth1.0a認証でリストを取得するためのパラメータがあるのに気づいて解決しました、デフォルトが2.0なのはダメだろ。




step4: 完成

実装しながらこの記事書いてたらなんかElevated accessの申請が通っていたのですぐにAPI v1.1を叩くコードに軌道修正したところ無事30分で出来上がりました。

卑怯とは言うまいな。

ちなみに各tweetはjson形式で保存できるのでその辺もうまいこと活用してみました。

今回の報告は以上です。結局GWはこれやってたら終わったのですが、そこそこ面白かったのでもうちょっと暇になったらまた色々作りたいと思います。




Re: おたよりフォーム

一応今回もやりますよ!

まずはこちら!

PN: Tom-H@苦
「苦しいよ〜」

またよりそいホットラインと化してる。

幸せになりたければ苦しめ!幸せになれるとは限らんが!

本筋とは逸れますが最近ふと思い出してちょっと良いなと思ったセリフをご紹介……

「命令は3つ、死ぬな、死にそうになったら逃げろ、そんで隠れろ、運が良ければ隙を突いてぶっ殺せ」

ゲームのセリフなんですが、人生もこれらしいです。
その場合何をぶっ殺すのかは知りませんが……




次!

PN: No.3215
苦痛論について。人生Zero-Sumというのは無数の反例が作成可能で成り立たないが、苦しみ論者が言わんとするところは『大きな夢を実現するには多数の困難を乗り越えることが必要だ』なる命題であろう。 アイドルコンテンツを具体例として考えてみる。
各アイドルは等しく大きな夢を持ち、それに向けて日々を鍛錬に過ごしている。アイドルの才能には多寡があるため練習量[苦しみ]は人によって異なるが、多くのアイドルコンテンツでは才能のあるキャラはそれはそれで何か人間関係等のトラブル[苦しみ]を介することが常態化しており、結果としてどのアイドルも苦しみを以てして夢を実現している。この事実が苦しみ論者の発言の根底にあることは、苦しみ論者の傾向を踏まえると疑う余地はない。
しかし、各視聴者視点での各キャラの苦しみの多さは様々である。これはコンテンツが切り取るシーンの分量や、受難の種類に視聴者がどれだけ共感できるかが関係しており、これらのパラメータから導き出された苦しみの総和こそが絶叫のデシベルと相関する。つまりキャラの伸びる伸びないという判断は、視聴者視点で多くの苦しみを経験したか否かが関与している、これが自身の主張となる。
この自説の上で、苦しみ論者は自身も多くの苦しみを纏うことで大きな躍進を望んでいるのではないかと考えた。要するに、苦痛論者のいう苦しみとはいかなる辛苦をも表すものではなく、アイドルコンテンツ内で描かれる人間としての成長や他人に絶叫を与えることに繋がる、意義のある試練に限るのだ。単に苦しいという状態ではなく、夢に続く茨の道を踏み進める"覚悟"こそが『ナイス苦しみ』なのだろう。
ちなみに自分は大きな夢がないため苦しみ論者とは袂を分けている。お前も刹那的快楽主義者にならないか?(740letters/1hour)

このおたより読み切るのが苦しかったよ。

はい、読みました。

なんか論破されそうな勢いのある文章だったので読み進めてみたら別にそこそこ共感してくれてただけだった、ありがとね。

アイドルコンテンツの話、一体何ドルコネクトの話をしているんだ……早く完全版をリリースしてくれ……

創作における苦しみの総和が絶叫のデシベルと相関するって表現好きです。

得てしてある程度苦しんでくれればそれなりに絶叫するし、ある一定ラインで絶叫のデシベルはあんまり伸びなくなる(デシベルは音圧かなんかの常用対数を取っている)からそこまで苦しんでほしくないし、それを超えて苦しんでもデシベルは単調増加するのでいいですね。対数化した恩恵がモリモリと現れています。

こちらの文脈の話は概ね同意です。創作において、苦しみの多相性はデカいカタルシスを生みます。

あと"覚悟"とか"苦しみ"とか"袂を分かつ"とか一部地域でのトレンドワードが満載でワロています。

さて、刹那的快楽主義ですが……

詰まるところ刹那的快楽主義とは両立可能で、その刹那が終わったのちの苦しみにこそ目を向けるべきだと思いました。

実際長続きする幸福なんてそんなに数なくて、なんなら今のところ思い当たるものもありません。

苦痛論で語ったのは今ある苦しみにどう向き合うかという話で、私の立場では幸せになりたくないというわけではないです。

個人的には刹那的快楽主義は大いに賛成なので、金銭などに余裕があればモリモリと快楽をしていこうと思いました。

具体的にはそろそろ外気浴シーズンなのでサウナとかモリモリと行きたいです。




本日のラスト。

PN: 石川啄木
ヌバラシイもの
・ラーメン二郎京都店
・乳のでかい女

石川啄木もラーメン二郎京都店行ってたんだ。

後者はかの有名な一握の砂で詠んだ『大という 字を百あまり 砂に書き 死ぬことをやめて帰り来れり』という歌にも著されています。

海で自殺を図っていた啄木が渚のパイパイデカデカギャルのデカ乳に見惚れて人生に活気を見出した際の歌です。

大という字を百あまり砂に書くという行為でその出来事を反芻している、という描写はデカパイの印象深さをありありと表現していますが、一方で行為そのものは自殺志願者の陰鬱とした思考回路を深遠に表現しています。

その結果『死ぬことをやめて帰り来れり』となるあたり、乳のでかい女は全てを解決してくれるということでしょう。

ヌバラシイ……9




おたよりフォーム

おたよりフォームを置いておきます。

今後はGWほど充実した日々を送れなさそうなので更新が不定期になると思いますがおたよりはいつでも募集しています。


  1. 日記とは毎日記すから日記なのでは?ボブは訝しんだ。↩

  2. 日記は?↩

  3. 講義でやらされているんですが、意味わかんないエラー吐くし引数ひとつひとつにいちいち括弧つけないと正しくパースされないしでこちらもヘイトが高いです。でも、静的検証は、素晴らしい……↩

  4. この間1日。↩

  5. エラーメッセージにも載ってたのにEssential accessとしばらく見間違えていて「?」と言っていた。↩

  6. 見ていた記事がことごとく昔のものでAPI申請まわりのやつが古かった。↩

  7. なんとこの記事を書いていたら、通った。↩

  8. ざっくり言うと、2.0のほうは非鍵垢の公開リストしか見れなくて、1.0のほうは認証済みユーザが見れる範囲のものはなんでも見れるって感じです。OAuthにしろAPIにしろ1より2のほうが不便ってどういうことだよ。↩

  9. 私は別にどっちでもいいです。↩

GWにラーメン屋に行くと見られる地獄


これはなに

日記2です。
地獄を見てきました。



















GWとは一体なんだったのか

昨日の話なんですが、月曜、暦の上では平日なので当然授業がありました〜




しばくぞ。

宇宙ネコのような顔をしつつ講義を受けたのち、喫煙所で同期(原義)とお喋りをした月曜でした。

この至極平時と変わらぬGWは?




目下最大の悩み

井戸端、もとい灰皿端会議で挙がった話題なんですが、今一番ヤバいことが決まりました。

人狼CO1です。

今期、実験でグループワークをしているのですが当然2留年生であることを隠して活動をしています。

みんなで設計をして仕様とかのレポートを出す実験です。

このままつつがなく2020年度入学生3としてやっていければいいのですがそうは問屋が卸しませんでした。
問題はレポートに書く学籍番号です。

弊学の学籍番号には入学年度の情報も入っているのですが、それってつまり私がレポートを出した瞬間に留(しかも多留)がバレるワケですね。

まだ多留の特大事故物件であることを明かしていない私は──。4

以下こんな未来は嫌だ。

「レポートの学籍番号打ち間違ってるぞw」
「あ〜それ合ってるわ、間違えてんのは学籍番号じゃなくて進級のほうなんよ〜(乾坤一擲のギャグ)」
「あっ……(禁忌の扉)、そうなんですね」

いくら年が離れてるからと言っても敬語だけは使わないでいてくれ。今までもタメだった仲じゃないか。

被害妄想でした。解決策求む。




京都二郎チャレンジ

破茶滅茶な雑踏を極めているGWの京都。

流石に何年も住むとGWの京都二郎の混み具合もわかってくる。




はずだった。




今日の話です

14:00起床わたし「今日は京ニでも行くか」

起きがけにTwitterを見たわたし「15:00以降にするか」

15:30に京都二郎前を通過するわたし「あの行列はナニ?」

さすがに一人でアレに並ぶのは嫌なわたし「暇そうなオタクでも呼ぶか」

16:00ごろオタクと合流したわたし「行くぞ〜い」

わたしとオタク「(絶句)」






結局17:00に池田屋開凸しました。よかったね。

良くねぇよ明日の限定食べたいしどうすんだよ。




Re: おたよりフォーム

前回いただいたおたよりの返信です。




PN: 大谷
「馬鹿め!このお便りはデコイだ」

デコイのおたよりってなんだよ。
デコイだからって返信しないことはないぞ!今回もおたよりフォームを設けています。




次。

PN: NAVER
「文章好きなので無理のない範囲で定期的にアップしてほしい。周りの目なんて気にせずやりたいことをやってほしい。マジで楽しみにしてます。」

誰でも書ける普通の文章なんですが、どうやら物好きもいるみたいです。ありがとね。

周りの目はね、残念ながらこれからも気にしますよ。社会的動物だもの。
ウサギにとっての天敵がライオンみたいなもので、ヒトにとっての天敵は社会の監視ですよね。
私は社会にバレないようにコソコソと行動していくつもりです、でも襟足は刈りたいなぁ。




続いて。

PN: ポケモンNo.222
「出席応援してます!」

サニーゴからの応援をいただきました。

GW半ばの講義出るとか、大学生活史上類を見ないぐらい出席を重ねている5ので今後も出席していきたいですね。

ちなみにまぜのっけチャレンジのせいで無遅刻は失敗しています。
遅刻してまでまぜのっけ朝食食べる必要あるんですかね?




ラスト。

PN: 卑下ドライバー
「苦しい」

よりそいホットライン?




個人的に人生は苦しめば苦しむほどよいとされています。

せっかくのカス日記なのでこう考えるに至った経緯をお話しします。




苦痛論

初手謝りなんですが、あんまり推敲をしていないので論理性はごめんなさい。

さて、苦しんでいるとき、人生はZero-Sumか?なんて命題6がよくエセ形而上学で考えられます。
ざっくりと言えば「人生を通じた幸せ具合を総和すると0になるのか?」という問いかけですね。

この問題、一般的には「挫折を乗り越えて大成功した!」みたいな生存バイアスの擬似体験に依拠してZero-Sumでないとされています。
ちなみにこんな話題を振って"Zero-Sum sux! Enjoy your days!"7と言えるほどポジティブな人間は、そもそもこの悩みに直面しません。びっくりですね。

じゃあなんでそんなことを考えてたのかというと、この命題の真偽を決定して、それを基に至上命題である「今の苦しみの先に幸せはあるのか?」ということを考えたかったからです。

だったら人生Zero-Sum問題の真偽に関わらず苦しみを肯定的に捉えればいいじゃん?というモチベーションで苦痛論が生まれました。8

思考プロセスそのものが間違っているというのが苦痛論の言いたいことです。

だいたい人生Zero-Sum問題について思惟しているときにやろうとしている手順って、

  1. 今苦しんでいる意味を知りたい
  2. そのために未知の幸福度関数みたいなものがどんなふるまいをするのか考える(ここで詰まる)
  3. それが分かったら今の苦しみがどういう未来を確定させるのかを考える
  4. その上で現在の苦しみの価値を考える

じゃないですか。
でも不確定な未来の性質を確定させてから現在を確定するのって難しくないですか?
やるなら普通逆ですよね。

あとこれは詭弁なんですが「人生はZero-Sumか?」みたいな命題自体、苦しみを肯定的に捉えたい情操に端を発しているんじゃないですか?
勝手に情操を決めるなという意見はあると思いますが、そうじゃなければさっさと苦しみに否定的な立場を取って「苦しみは何も生まない、苦しみはカスだからどんどん幸せになっていこう」と舵を切って人生Zero-Sum問題に触れることなく現在の苦しみにケリをつけます。

個人的な苦痛論のロジックはこうです。

  1. 人生がZero-Sumかどうかは知ったことじゃない
  2. だから今の苦しみの価値は人生Zero-Sum問題の真偽に左右されない
  3. だったら苦しみを肯定的に捉えれば生きるのが多少楽にならないか
  4. 苦しむことを是としよう
  5. 別に幸福になることは非ではない
  6. 苦しみが幸福を生んだら嬉しい
  7. 苦しみは何も生まなくてもいい、じゃないと幸福を伴う苦しみ以外を求めなくなってしまうから
  8. このように苦しみが何かを生むかどうかは不確定なので、どんどん苦しんで幸福を生む期待値を上げたほうがいい

仏教の教えにだいたい似たような文言がありそう9ですが私の考えている苦痛論はこんな感じです。

個人的かつ悲観的立場としては、人生Zero-Sum問題を悩んだところで不幸に転ぶことは間違いないというのが結論です。
だって悩むぐらいネガティブ思考だったら、Zero-Sumだったときに「幸せになるということはその分苦しむということと等しい」とか思うし、そうじゃなければ「このまま苦しみ続ける」とか思うじゃん。

最近は自分の周りで苦しみの輪(苦しみの輪を提唱したのは別人)が広まってきて「ナイス苦しみ!」といった声かけ運動が興っています。

以上薄っぺらい苦痛論でした。




おたよりフォーム

お待たせしました、おたよりフォームです。
Google Formsの仕様を知らないのでいつリンクが切れるかわかりません。
人生について語りたい人や美味しいラーメン屋さん情報や良いサウナ情報や怪文書を募集しています。


  1. 文字通り狂った行いです。↩

  2. 隠すから厄介になるのであって最初からリヴィールしておけばこんなことにはならなかった。↩

  3. 算数苦手&現実を直視できないせいで今ストレートの代が何年度入学なのか計算するのに10分ぐらい要した。↩

  4. どのみちバレることなのでさっさとレポートを提出したほうがいい。↩

  5. 具体的には、去年度まで出席したコマ数と今年度出席したコマ数が同じぐらい。体感だけど。↩

  6. 個人的にはZero-Sumであってほしいと思っています。↩

  7. 言いたかっただけ。動画の18:17。 ↩

  8. 「無理数の無理数乗は無理数か?」という問題の解き方と似ています。ちなみに有理数になることもあるのでこの命題は偽です(あの有名な証明は結局正しいんかな)。↩

  9. あるわけねぇだろ。↩

1,000円カットで襟足刈り上げをすると死ぬ


これはなに

日記だよ。
不幸であり続けなければ、文化的生産者にはなれない。



















なあ

今期全講義出てる。

ヤバくないかこれ。

無遅刻無出席というアイデンティティがなくなったってことですよ(そんなチャチなアイデンティティはいらん)。
今後どうやって生きていくんですかね?




まぜのっけチャレンジ

平日朝8:25ごろに行われるチキンレースです。

毎日1限がある私ですが、朝ごはんを食べて通学することにしています。

そんな私の朝ごはんがまぜのっけ朝食1です、百万遍のすき家。




お察しの通り(?)、起床に難を抱える私がまぜのっけ朝食を完食しつつ1限に間に合えるかというチキンレースとなっております。

本日のまぜのっけチャレンジ──。




成功(出席時刻8:42)。




労働環境に明らかな陽の者が多すぎる

これはこれでマズい。

具体的には、「服飾の制約があって然るべき職場なのに上長がユルユルすぎて無いに等しい」ため「イケてる大学生」が多い問題です。

当然「イケてない大学生」筆頭であるところの私2は、形だけ3でも、髪型だけでも近づけないかと努力するのでした。

スーツとかの制約4があったほうがまだマシで、服とか考える手間が省けるんですけどね。




髪型ですが、全人類がマッシュにしているという個人的イメージに基づき、ゆるいスパイラルポイントパーマ(合ってんのか?)のマッシュを目指すことにしました。
まあ長さが足りない(多分、嘘。)のでこれから伸ばすんですが、襟足が伸びてきて邪魔くさいのでその調整をしたいです。
本格的に伸びてきたら良いところにお世話になります。 ←もう既に伸びてるから襟足の調整と一緒にやってもらえばよいのでは?

思考が整理できた。

おわり。
ちなみにヘアカタログついでに1,000円カットで襟足刈り上げをした人が御坊ちゃまカットになっているのを見て爆笑していました。




tweepyなんもわからん

後日詳しく書こうと思ってます。
Twitterだけで完結するbotを作りたい(Twitterからデータを取得して出力先がTwitterのなんらかであってほしい)。




おたよりフォーム

新設しました!

まあまあな匿名性でおたよりを送ってみよう!


  1. 最もコスパの良いすき家のメニューの一角。↩

  2. 最年長かつ最も新入りという非常に複雑な立場に置かれている。↩

  3. 低身長だからオーバーサイズシャツとかクロップドパンツが着れないよ🥲↩

  4. これは人生哲学ですが、制約はあればあるほど生きやすいと思っている。行動原理が明確に定まったほうが楽なので、その中で幸福を最大化させたほうが解を見つけやすそう(緩和問題)。↩