開け閉め

力強く閉めると反動で数センチ開く

ウミガメのスープはランダム生成してもそれなりに遊べることがわかりました

ウミガメのスープ」が今、楽しい。

面白みのないストーリーで、どこにでもいるような魅力の薄い登場人物が、普段誰もが過ごしているような日常を送るだけの、無名の小説家による小説。

そんな何の変哲もない小説が、何の変哲もないために売れまくっているという。

どういうことだろう?*1

こういった一見説明のつかない状況に対して、プレイヤーははい/いいえで答えられる質問を投げかけ、出題者がそれに答える。この質疑応答を繰り返して、真相に近づいていくゲームだ。

たとえばこの問題なら、

Q.日記や自伝小説のようなジャンルですか?

いいえ!

 

Q.現代日本の話ですか?

はい!

 

Q.買っている人達は、読む用途が目的で買っているのですか?

はい!

 

Q.結果、無名な小説家は儲かりましたか?

いいえ!

 

Q.その小説家は、死後に評価されましたか?

はい!

 

Q.小説を買っている人々にとって、小説の内容はなんの変哲もない日常ですか?

はい!

 

Q.未来予知が関係しますか?

はい!

 

…このように、つながりがあるように見えない2つのできごとを推理を使ってつなげていく。これが「ウミガメのスープ」の基本的なルールだ。

 

今の問題であれば、隠されていた真実は

過去に出版されたSF小説が、なんの変哲もないと感じるほどに正確に現代の生活を描いていたため、予言の書として有名になった」というもの。この答えを見てから問題を見直すと、問題が全く違って見えてくるのではないだろうか。

 

こういうゲームは「水平思考ゲーム」とも呼ばれている(こっちの名前のほうが有名かもしれない)。買い切りのゲームやサイトもあるにはあるが、誰も知らない問題を探してくるのは結構な手間だ。

 

頭を使うゲームが好きなので、僕は考えた末、こう思った。

ウミガメのスープ、もっとやりて~~~~~~~」

と。

 

そして、問題をその場で作ってその場で解けばいいのでは????という発想に至った。いわば「無限スープ」である。

<無限スープの作り方>
ふたりが問題文の前半と後半をそれぞれ同時に発表する

普通のウミガメのスープと同じように進行されるが、
質問のたびにダイスを振り
偶数→YES
奇数→NO
とし、最終解答もこのルールにしたがう

 

たとえば、
前半「男が忘れ物をした。」
後半「翌日、世界の株価が暴落した。」

になったなら、

男は忘れ物をした。翌日、世界の株価が暴落した。何故だろうか。」という問題が完成する。

その場で適当に考えた例なのに、なんとなく正解がありそうな感じを察してもらえるだろうか。

脈絡がないのがウミガメのスープの問題文の特徴なので、適当に文章をつないだら逆にそれっぽく見えちゃうし、なんか挑戦したくなるような雰囲気が出る。

この手法なら、ウミガメのスープを無限に作り出すことができる!スープが無限なのはこれを除くとガストのドリンクバーの横にあるたまごスープしかないので非常に貴重だ。

 

さて、ランダムに作った問題文に答えなどあるはずもないので、出題者の役割はサイコロに担ってもらうことにした。質問をしたらふつうの6面ダイスを1個振って、偶数なら「はい」奇数なら「いいえ」にしよう。ウミガメ好きたちの頭脳をもってすれば、正解がなくてもなんとなく合ってそうな答えに辿り着けるだろう。多分。

 

最終回答の判定もダイスに任せることにした。こっちもサイコロを振って偶数なら正解。奇数が出ちゃったら間違いなので、別の答えを考えなければいけない。

適当に答えを言いまくれば当たっちゃう脆弱性はあるけど、そこは雰囲気でなんとかする所存です。

 

さっそく、友人たち(f:id:hikido:20200523020238p:plainf:id:hikido:20200523015322p:plainf:id:hikido:20200523013548p:plainf:id:hikido:20200523015331p:plain)

を集め、自分(f:id:hikido:20200523015326p:plain)

を加えた5人で
試しに遊んでみることにした。改めて、ルールは以下の通り。

①ふたりが問題文の前半と後半をそれぞれ同時に発表する
②「ウミガメのスープ」同様、Yes/Noで答えられる質問をする

③サイコロを振って、偶数なら「はい」奇数なら「いいえ」が答えになる

④そして②と③を繰り返し、正解っぽいストーリーができたら最終回答をする

⑤またサイコロを振って、偶数なら正解!奇数なら間違いとなり②に戻る

 

最初の問題文は、前半をf:id:hikido:20200523020238p:plain、後半をf:id:hikido:20200523013548p:plainが担当することになった。

問題準備お願いします!せーのっ

前半:「大雨が急に降った」

後半:「桶屋が儲かった」

→「大雨が急に降った。その結果、桶屋が儲かった。どういうことだろう?

えっちゃんとウミガメのスープしてるじゃん!

桶屋がどうして儲かったのかを突き止めたいね

 

Q.桶屋が儲かったのは、桶がたくさん売れたからですか?

f:id:hikido:20200528010029p:plainコロコロ…「いいえ!

桶が売れた以外の理由で儲かったんだ

 

 

Q.桶屋は2019年現在生存していますか?

f:id:hikido:20200528010029p:plainコロコロ…「いいえ!

 

なんとなく江戸時代っぽいよね

確かに、現代で桶屋って聞いたことないし

 

Q.桶屋は犯罪に手を染めていましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

Q.桶屋は大雨の影響で犯罪を実行しましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

なるほど、大雨のおかげで犯罪に成功して儲かったってことだ

大筋が見えてきたし、犯罪の種類を細かく調べていこうかな

Q.桶屋は人を殺しましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

Q.桶屋は犯罪を日常的に行っていましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

Q.桶屋は世のために犯罪を犯しましたか?

f:id:hikido:20200528010029p:plainコロコロ…「いいえ!

 

Q.桶屋は殺人のために儲けを得ましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

Q.桶屋は金を渡されて殺人を請け負いましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

 

桶屋は殺し屋もやってるってことか!これは大ヒントだぞ

適当にダイス振ってるだけなのに完全にウミガメやってる気分になってきちゃった

殺し屋ですかって質問して確かめとく?

やめとこう、万が一いいえが出たら完全に詰むから

 

…「無限スープ」はこんな感じで進んでいく。

今の所の情報は、

・桶屋は殺人を金で請け負った

・大雨が降った影響で、桶屋は人を殺した

・世のために行った殺人ではない

 

万が一回答が矛盾しようものなら完全に”終わる”ので、微妙に注意を払いながら質問をつづけていく。

 

Q.桶屋はやむを得ず犯罪を起こしていましたか?

いいえ!

 

Q.大雨が降ったことが桶屋の殺人の動機になりましたか?

はい!

 

Q.桶屋に殺人を依頼したのは被害者自身ですか?

はい!

 

え!?

は!?

被害者自身が殺人を依頼した!?

被害者が雨のせいで大損をして、その結果殺人を依頼したってことかな?

 

なるほど、それなら被害者は雨に関係ありそうな職業だ

 

適当にサイコロで答え決めてるとは思えない急展開ぶりに驚きを隠せない…

 

Q.被害者は花火職人でしたか?

いいえ!

 

Q.被害者は漁師でしたか?

はい!

 

 

大雨が降って、漁師が自分を殺させるほど苦しんだ、ということは…?

よし大体わかったぞ、最終回答します!

どうぞ!

 

A.「ある漁師の船が大雨のせいで沈没してしまった。仕事道具のすべてを失い生きる希望をなくした漁師は、自らに保険をかけたのち、残された僅かな財産を報酬にして事故死に見せかけた他殺を桶屋に依頼した」!

 

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

やったーーー!!

桶屋は裏稼業で殺し屋もやってたってことなんだな

適当に決めてるのにすごく納得しちゃった

 

「その目は…桶は桶でも、棺桶がほしいのかい?」ってね

え?

 

ランダムに持ち寄った文章とサイコロだけで、こんなにちゃんとした(?)ウミガメのスープができてしまった。

Q.「大雨が急に降った。その結果、桶屋が儲かった。どういうことだろう?」

A.ある漁師の船が大雨のせいで沈没してしまった。仕事道具のすべてを失い生きる希望をなくした漁師は、自らに保険をかけたのち、残された僅かな財産を報酬にして事故死に見せかけた他殺を桶屋に依頼した

「無限スープ」を使えば、サイコロやダイスアプリなどを使うだけで、誰でも簡単にしっかりしたウミガメのスープを遊ぶことができる。通話でもできるので、在宅の時間が増えた方もぜひ遊んでみてはいかがだろうか。

 

僕たちは楽しかったのでもう一戦やることにした。

問題文出そう!せーの

 

『除夜の鐘が鳴った』

『そして世界は音楽に満ちた』

「除夜の鐘が鳴った。そして世界は音楽に満ちた。いったい何故だろうか?」

 

Q.大晦日のファンキー寺で除夜の鐘REMIX~ゆくBEATくるBEAT~が開催されましたか?

f:id:hikido:20200528010029p:plainコロコロ…「はい!

 

答え:大晦日のファンキー寺で除夜の鐘REMIX~ゆくBEATくるBEAT~が開催された

 

何???????

何???????

何????????????

 

<2021年5月 追記>

なんと、この無限スープ(無限ウミガメ)がアナログゲームになりました!!

note.com

ドロッセルマイヤーさんのなぜなぜ?気分』というタイトルで、問題文の前半と後半がたくさん載った単語帳サイズのゲームです!

最初から問題文のパーツが準備されているので「お題を考えるのが苦手」という方でも楽しめますし、片方だけ自分でお題を考えるのも面白いと思います。リンク先のnoteから通販リンクに飛べたり、全国のボードゲームショップでも販売されているようなのでぜひ買ってみてください!

*1:出典元:「ウミガメのスープ 本家『ラテシン』」http://sui-hei.net/
問題制作:とかげ様
http://sui-hei.net/mondai/show/15428

【Powertoys】ミーティング参加時にZoomが繰り返し落ちる問題とその解決策【お前か】

結論

Powertoysで「ビデオ会議のミュート」をオフにしたら治った。

f:id:hikido:20211201140601p:plain

 

問題

今週火曜日から、デスクトップPCでZoomに入ろうとすると「Zoomが予期せず終了します」というダイアログが出てクラッシュ、その後も繰り返し強制終了するようになった。

手持ちのノートPC(Windows11)やAndroidスマホではこうした問題は出なかった。

 

環境

・OS: Windows 10 21H1

・CPU: Intel Core i7 10700F

GPU: GeForce RTX 3060Ti

・マイク: Blue Snowball iCE

・カメラ: なし

 

やったこと

デバイスドライバーの更新

・Zoomのインストールフォルダの削除→再インストール

・Zoomのダウングレード(2021年5月のものに)

・再起動(無限回)

 

エラーが起こる条件

・Zoomへのサインイン後、ブラウザから戻るとき

・Zoomのアプリから設定画面を開くとき

・Zoom会議に入るとき(テストミーティングを含む)

→すべて「外部からZoomダイアログを開くとき」だな……

→グラボやCPUの問題ではなく、外部から強制終了されている?

 

解決

ハードウェアアクセラレーション的な設定の問題か?と思って変更しようにも、設定画面を開くとクラッシュするので何もできず。

「Zoom 起動しない」「Zoom crash」などで検索しまくっていたところ、

Zoom crash after 10 seconds - can't even log in - Zoom Community

というフォーラムにたどり着き、そこでPowertoys(Windows純正の便利ツール)に原因があるという記述を発見。Githubを調べると

PowerToys conflict with Zoom · Issue #14289 · microsoft/PowerToys · GitHub

というIssueがあり、ここのバグ報告を読む限り

 

「Powertoysの11月のアップデートで追加された ビデオ会議のミュート をオンにしていて、なおかつカメラを接続していない時に限りZoomが繰り返しクラッシュする」

 

とのこと。

 

治った

ということで、「ビデオ会議のミュート」を設定画面からオフにしたら治った。先週くらいにPowertoysを手動でアップデートした際にこの機能が追加されてしまったっぽい。f:id:hikido:20211201142317p:plain

 

バグが無かったノートPCにもPowertoysは入れていた(し、更新もしていた)けど、Webカメラが内蔵されていたから問題なかったみたい。

その後Powertoysを最新版にアプデしたら、「ビデオ会議のミュート」をオンに戻してもZoomが落ちなくなった。

 

「台湾の白菜、向き揃いすぎ問題」を調べたら知らないことをひとつ学んだ

f:id:hikido:20210602013454p:plain

出典:https://ja.wikipedia.org/wiki/%E7%BF%A0%E7%8E%89%E7%99%BD%E8%8F%9C

この白菜。「翠玉白菜」といって、宝石を白菜の形に彫った(なんで?)超貴重なものらしい(これ以上よく知らない)。展示されている台湾の故宮博物院ではお土産になるほど大人気の彫刻だ。具体的にどういうものか知らなくても、「台湾の白菜のやつ」くらいの解像度で知っている人は多いのではないだろうか。自分もそっちサイドの人間である。

 

友人に台湾旅行の際の写真を見せてもらったときにこの白菜の存在を久しぶりに思い出し、どんなものだったか調べてみると、とんでもない事実が発覚した。

f:id:hikido:20210602015637p:plain

https://www.google.com/search?q=%E7%BF%A0%E7%8E%89%E7%99%BD%E8%8F%9C&sxsrf=ALeKk017t33NAiWfQ8DwCtIhEjnTdJdywg:1622566470842&source=lnms&tbm=isch&sa=X&ved=2ahUKEwitnfmQ8_bwAhVL-2EKHdgyDjYQ_AUoAXoECAEQAw&biw=1536&bih=758

白菜の向きが揃いも揃って同じすぎるのである。左下から右上に白菜が向かう形の画像が検索結果の大半を占めている。野球選手のプロフィール写真でも顔の角度にもっとバリエーションあるぞ。これはなにかの陰謀なのだろうか?

 

f:id:hikido:20210602020256p:plain

https://duckduckgo.com/?q=%E7%BF%A0%E7%8E%89%E7%99%BD%E8%8F%9C&t=hd&va=u&iax=images&ia=images

ダメだ……。なんと、正しいインターネットを提供しているはずのduckduckgoの検索結果ですら”例の角度”だらけだ。YoutubeTwitterでも「翠玉白菜」と検索すると”この角度”の写真が大量に出てくる。調べてみてほしい。

一応、Googleduckduckgoの検索結果の中にちらほら他の向きで撮影された写真が紛れ込んでいるので、この向きでしか撮影できないとか、そういうことはないはず。ではなぜ……?

 

Wikipediaを読んでみる。

 翠玉白菜(すいぎょくはくさい、中国語: 翠玉白菜; 拼音: Cuìyù Báicài; 白話字: Chhùi-ge̍k Pe̍h-chhài)は、翠玉(翡翠)を[1]、虫がとまった白菜[2]の形に彫刻した高さ19センチメートルの美術品。現在は中華民国台北市の国立故宮博物院に収められ、同館を代表する名品の一つである[3]。

 ん……?

 翠玉白菜(すいぎょくはくさい、中国語: 翠玉白菜; 拼音: Cuìyù Báicài; 白話字: Chhùi-ge̍k Pe̍h-chhài)は、翠玉(翡翠)を[1]、虫がとまった白菜[2]の形に彫刻した高さ19センチメートルの美術品。現在は中華民国台北市の国立故宮博物院に収められ、同館を代表する名品の一つである[3]。

 虫がとまった白菜……?ただの白菜と違うの……?

f:id:hikido:20210602013454p:plain

f:id:hikido:20210604014309p:plain

 

あ、右上のほうに結構なサイズの虫がいる!それでみんな虫を映すためにこの角度で撮ってたってことか。翠玉白菜の色は石が元々持っているもので塗ったりはしていないみたいだから、虫も白菜と同じ色になっちゃってたんだな。勉強になる。Googleの検索結果みたいな細かい疑問から全く新しいことを知ることができるんですね。

 

いや虫いるって知らんけど?!?!?!?!?!白菜の彫刻だと思うじゃん!!!?!?!?!?!?!?タイトルに虫って入れてよ!?!?!?!?!?!???!!!!!色同じだから写真だと注意して見ないと気づかないじゃん!!!!動画で見ろってか!?!?!?動画で見ろって!?!?!書を捨てて!?!?!?!?!?動画で!?!?!?!?

 

日本の教育は!!?!?!?!?それでいいんですか!?!?!?!?!?!?今こそ我々の手で冷凍みかんを解凍!!!!!!!!!冷凍!!!!!!!!!!解凍!!!!!!!!!!!!!冷凍!!!!!!!!!!!!!!

 

酵素がたくさん死んでらあな!!!!!!!!!!!!!!

 

 

割り箸の利便性に違和感がある

割り箸の利便性に違和感がある。

いやなにも、割り箸が不便だと言いたいわけではない。むしろ便利すぎるという話をしたい。保管性と携帯性が良すぎるという話を。

そもそも箸って「先端を汚しちゃいけない2本の棒」なわけで、本来丁寧に扱うべきな代物のはず。それが割り箸になったとたん猛烈に扱いが雑になって、袋にミチミチに詰まってバーベキューに持ち込まれたり、ケータリングの弁当箱に括られてたり、レジ袋の上の方に雑に放り込まれたりする。しかもそんな雑な扱いを受けていてもすぐに使える。

使い捨てだから便利だという側面はあるかもしれないが、それにしても割り箸は強すぎる。使い捨ての歯ブラシとか紙コップとか石鹸とか、そういうのと比較しても圧倒的に雑に使えるし便利な気がする。

他の使い捨て商品との違いといえば、割らないと使えないところくらいな気がするが……。「2つがくっついてる」だけでこんなに便利になることあるか?

割り箸とほかの使い捨て商品とを比較すると、割り箸の包装の単純さが際立つ。紙皿や紙コップのような使い捨て商品はたいてい使う直前にビニールの包装から1つずつ取り出さないといけないのに対し、割り箸は箸袋からサッと取り出すだけで使えるようになる。強すぎる。この違いはどこから来るのか?

自分なりの解釈として、「割り箸は未完成だから便利」という説を立ててみた。

すべての使い捨て商品には包装が必要だ。ビニールで包んだり、箱に入れたりする包装をすると、使用するために包装を開けるひと手間が必要になる。 この「開けるのに手間がかかること」は、包装という概念にとって重大な意味がある。開けるのに手間がかかるからこそ、商品は外界と遮断されていること(≒清潔であること)や、未使用であることが証明される。

そして「包装を開けること」は、開けた瞬間に初めて商品が使えるようになったことを意味する。ということは、包装は「完成した商品を意図的に未完成(完成一歩手前)に戻している」と言えるのではないだろうか?商品がビニールに包まれたり紙箱に入った状態ではまだ未完成で、それらを切ることではじめて紙コップやおしぼり等が「完成」するという考え方だ。封なんて開けなくても商品はとっくに完成しているが、使用者から見ればまだ「未完成」ということ。そして使用者がビニール袋を切って、未完成なものをその手で完成させる。これが「開封」だ。

で、割り箸の話。割り箸を使うときには、「自力で2つに割る」というプロセスが挟まる。この「割る」という行為がめちゃくちゃ強いのだ。

割り箸は2本の箸がくっついているという部分が、「完成した商品を意図的に未完成に戻す」という包装の本質に沿っている。つまり、割られてない状態の割り箸は「包装された状態」だと呼んでも良さそうだ。だが、この「包装」は他の包装と比べて根本的な部分に違いがある。この状態の箸は、本当に未完成なのだ。割り箸の製造工程についてはよく知らないけど、多分切り込みのいっぱい入った板を棒に切り分けるというのが最後のプロセスなんだと思う。その最後のプロセスを使用者に託すことで、「開封」と「製造」を同時に行わせている。無駄なことを一切していないのだ。完成している製品にパーツを追加してわざと未完成にする「包装」とは異なる。

割り箸は保管している時点では本当に未完成なので、箸が普段持っている「2本あるので扱いづらい」みたいな性質をもたない。割るまでは箸はどこにも存在せず、使用者が割ることで初めて、「開封」と同時に割り箸が完成し、さながら無からお箸が出現するかのような感覚で使用できる。

完成一歩手前の状態で直接提供しているから割り箸は便利だし(なんか激安スーパーみたいな表現だな)、他の2つ組の使い捨てのもの(ホテルのスリッパとか)はくっついていても大して便利にはならない。最後に2つに切るみたいな製造工程じゃないから。

割り箸に乾杯。

半蔵門線に乗った気になれるタイマーを作りました


電車に乗らなくなって久しい。大学の授業がオンラインだしバイトは地元だし、わざわざ東京まで足を運ぶこともなくなってしまった。

通学の時間がなくなるのは嬉しいが、そのぶん失われたものもある。 おととし、半蔵門ブログという企画をやっていた。通学などで東京メトロ半蔵門線(錦糸町~渋谷)に乗っている約30分だけを使って、noteで日記を書く。

最初は冗談半分でやっていた習慣だが、結局面白いように続いた。時間感覚が崩壊していてスケジューリングがめちゃくちゃ苦手な自分でも、よく使う電車なら時間ではなく駅名で時間経過を把握できたからかもしれない。時間もちょうどよかった。中央線だと長すぎるし、神戸電鉄神戸高速線だと短すぎる。(日本一短い路線らしいです)

渋谷に着いた時点で未完成でも無理やり投稿、一歩でも電車を降りれば誤字があっても修正は許されないというルールでやっていた。文章の読みやすさとか面白さとか、そういうのにこだわっているとあっという間に時間切れになるので、ハードルが低く気軽に書けた。地下鉄を使わなくなることは、これがなくなることを意味する。良くない。

良くないので、半蔵門線(錦糸町~渋谷)をいつでもどこでも再現できる良いWebページを作ろうと思う。そうすれば、良くなる。

手順


半蔵門線の各駅間の所要時間を入手する
②そういうタイマーを作る
以上。わざわざ手順書く必要なかったな。



半蔵門線各駅の所要時間


調べると、東京メトロAPIというものがあった。電車の駅間の所要時間や乗降車数、さらに特定の車両がいまどこにいるのかまで分かる優れものらしい。f:id:hikido:20210308013813p:plain

が、APIを利用するにはユーザー登録とログインが必要だった。審査に2営業日かかるらしいし、どうせ半蔵門線のデータしか使わないのでこのAPIは使わないことにした。どうにか人力で駅間の所要時間のデータを集めなければいけない。大変だ…。 f:id:hikido:20210308013635p:plain!

ぜんぜん大変じゃなかった。「メトロのトリセツ」というpdfブックがあって、そこにメトロ全線の所要時間が掲載されている。ひょっとして東京メトロは神なのか?

よく見てみると、渋谷から錦糸町までが29分。「約30分」という僕の直感は正しかった。そしてこの時間は、ポモドーロテクニックで推奨されている作業時間の25分ともだいたい同じだ!作業用タイマーとしての半蔵門線の有用性が証明されたことになる。少し背中を押された気分だ。頑張って作るぞ。

作る


スマホアプリやPCのソフトにするのは大変なので、簡単そうなHTMLとjavascriptの組み合わせでタイマーを作ってみる。

得られる情報は地下鉄車内にいるときと揃えたいので、

  • 今どの駅にいるか
  • 次の駅名

の2つを表示できるようにしたい。タイマーだが、残り時間は表示しない。地下鉄に乗っているときに頼りになるのは駅名表示だけなのだ。

というわけで、作った。

f:id:hikido:20210308013626p:plain 普通のタイマーと処理はたいして変わっていないが、時刻の代わりに今いる駅名と次の駅名を表示している。

書いたコード

``````javascript function departure(direction){ startTime = new Date(); //各駅ごとに到達すべき時刻(時刻表)を作成する stationID = 0; var stationLen = stationList[direction].length var diagramArray = []; var stationName; for (var i=0; i<stationLen; i++){ var stationName = stationList[direction][i][0]; stationMinute = stationList[direction][i][1]; var targetTime = new Date(startTime.getTime()+601000stationMinute); diagramArray.push([stationName,targetTime]) console.log(stationName,targetTime) } finishTime = new Date(startTime.getTime()+601000stationList[direction][stationLen-1][1]); //1秒ごとに処理をする timerID = setInterval(function(){gatangoton(diagramArray)},1000); } function start(){ var direction; if(document.getElementById("toggle").checked){ direction = 1 }else{ direction = 0 } departure(direction) }

function gatangoton(diagramArray){ //1秒ごとに駅についたか判定する関数 var stationLen = diagramArray.length var stationName = diagramArray[stationLen-1][0] var curTime = new Date(); if (nextStationID == stationLen){ nextStationID = 0 } var nextTime = diagramArray[nextStationID][1] if (curTime.getTime() >= finishTime.getTime()){ //終点についたらタイマーを終える finalArrival(stationName) clearInterval() }else if(curTime >= nextTime) { nextStationID += 1; curStationID += 1; arrival(diagramArray,curStationID); } } ``````

下のスイッチは、半蔵門線の進行方向を上り(渋谷方面)と下り(錦糸町方面)から選べるようにしたもの。正直どっちが上りでどっちが下りかは知らない。

いま調べたら、東京メトロ都心部を走っているために上りと下りの区別がないらしい。へ~~。

できた


というわけで、ちょっと綺麗にしてみた。

f:id:hikido:20210308013631p:plain
Webページなら初心者でもこんくらいのデザインはできてしまう

いい感じ。PCの全画面だと表示がぶっ壊れるバグに泣かされたが、それなりに見栄えがする。

電車のドアの開閉の音も流そうと思ったが、詳しい人に怒られそうな効果音合法かわからない効果音の2択だったのでやめた。ノイキャンのイヤホンをつけているものとして、画面をチラチラ見ることで現在地を把握していきたい。

https://hanzomontimer.web.app/ のリンクから使えるので、みんなも半蔵門線に乗ったつもりになってほしい。僕の利用経路の都合上、渋谷と錦糸町しか出発地を選べないけど許して。

僕はしばらく、このタイマーを起動して到着するまでしっかり作業し、到着したら休憩するという仕組みで勉強や作業をしてみようと思う。もしこれで作業がはかどれば、作業用タイマーとしての半蔵門線の優位性が示されたことになるので東京メトロから褒めてもらえるかもしれない。

とりあえず今日は寝て、明日からちゃんと使ってみようと思います。

ポッキーの日を気合で増やしてみた

毎年11月11日はポッキーの日だ。正式名称は、「ポッキー&プリッツの日」。1が4つ並んだ状態がポッキーやプリッツを並べているように見えるかららしい。実は日本記念日協会の認定も受けている、れっきとした記念日なのである。
なんとなく世間的にもポッキーをたくさん買ったり食べたりしても許される雰囲気があるので、ポッキーが大好きな僕にとっては非常にうれしい記念日だ。きたるポッキーアンドプリッツの日にはたくさん食べようと思う。 f:id:hikido:20200316004345j:plain

でも、たまに思うことがある。
あんなにおいしいポッキーを奉る日が一年に一回だけでいいのか。もっとプリッツは崇められるべきではないのか。畢竟、ポッキーは甘い系お菓子の頂点に君臨し、プリッツもまたしょっぱい系お菓子の中で最も美味しいとされている。最上のお菓子と言えるポッキーやプリッツのために、僕は何をしてあげられるのだろうか。

そうだ、ポッキーの日を増やそう。
ポッキーの日が一年に何度もあれば、一年に何度もポッキーを大量買いできるし、一年に何度も大学の生協にポッキーが大量に入荷する。そういう世界こそが求められている。 2020年の366日をなるべくたくさんのポッキーの日で彩ろうじゃないか。
ちなみに、先述の通り正式には「ポッキー&プリッツの日」なのだが、長いので「ポッキーの日」と呼ばせてほしい。プリッツのことも好きだが、「&」の入力がめんどくさすぎる。なんだよshift+5同時押しって。&ボタン作らんかい。タカアンドトシとかテツandトモとかも入力が大変だから&の表記変えちゃってるんだぞ。たぶん違うけど。


2020年のポッキーの日・・・ 現在 1 日


1が並んでたらポッキーの日でいいはず

11月11日がポッキーの日だというのならば、当然1月1日や1月11日、11月1日だってポッキーの日になっていいはずだ。1月11日なんかはポッキーがとプリッツが3本しかなくて物足りないのでは?という疑問を抱いた方もいるかとは思うが、ポッキーとプリッツが3本あれば三角形を作ることができるので、窓に取り付ければビルの窓によくあるアレを再現することができてとても嬉しい。

f:id:hikido:20200316004302p:plain
f:id:hikido:20200316004255j:plain
窓のアレ

消防隊はアレがある窓から建物に入るらしいので、ポッキーでアレを作る場合は消防隊が突入してきた場合に渡す手土産を準備しておこう。

というわけで、1月1日、1月11日、11月1日の3日が新たにポッキーの日と認定された。

f:id:hikido:20200316004314p:plain
一例

2020年のポッキーの日・・・ 現在 4 日

でも、まだ足りないような気がする。現状、年に4回しかポッキーの日が訪れない。年4回と言ったらドラえもんの1時間スペシャルが放送される頻度と全く同じだ。特別な内容ではなく単純に二倍長いドラえもんよりポッキーのほうがたくさん見たいのは明白(ドラえもんファンの皆様ごめんなさい)。あまりにも頻度が少なすぎると言わざるを得ないだろう。

日付を限界突破する

今年の2月19日はポッキーの日だ。何故かというと…

f:id:hikido:20200316004322p:plain
11/1の110日後
この日は2019年11月1日から数えて110日後、すなわち2019年11月111日にあたるから。
f:id:hikido:20200316004335p:plain
ポッキーの日、認定
ポッキーとプリッツがあわせて5本になった。5本もあればホームベースの形を作れるので、野球をすることができる。非常に嬉しい。
f:id:hikido:20200316004243p:plain
野球ができるぞ


ほかにも、
f:id:hikido:20200316004326p:plain
ポッキーの日、認定
2020年4月20日2020年1月111日になる。 このように、1月または11月の日付に無理やり変換したときに日付の部分に1が連続して出てくる日ポッキーの日に認定してあげよう。1月1111日や11月11111日みたいな感じだ。ちなみに111月や1111月についても考えようか迷ったが、13月以降のひと月の日数が30日か31日か決められないのでこっちを調べるのはやめておいた。

2020年のポッキーの日・・・ 現在 6 日

全部調べる

計算サイトがあるのでひとつひとつ調べていけば一応調べることは可能だが、1日、11日、111日、1111日、11111日……とすべての日付について調べるのはあまりにも無理がある。というわけで、自動化した。

import datetime
def main():
    Result = []
    #XXXX年1月repunit日と、XXXX年11月Repunit日について一致を調べる
    RepunitDelta = [datetime.timedelta(days = repunit) for repunit in (0,10,110,1110,11110,111110)]
    for y in range(1,2021):
            JanOrig = datetime.date(year=y,month=1,day=1)
            NovOrig = datetime.date(year=y,month=11,day=1)
            for RD in RepunitDelta:#日付の差分
                JanRes = JanOrig + RD
                NovRes = NovOrig + RD
                if JanRes.year==2020:
                    result = (f"{JanRes}は{JanOrig.year}年{JanOrig.month}月{RD.days+1}日")
                    Result.append((JanRes,result))
                if NovRes.year==2020:
                    result = (f"{NovRes}は{NovOrig.year}年{NovOrig.month}月{RD.days+1}日")
                    Result.append((NovRes,result))
    Result.sort(key = lambda x:x[0])
    for r in Result:
        print(r[1])

if __name__ == "__main__":
    main()

このコード、要するに西暦1年~2020年の11月1,11,111,1111,1万1111,11万1111日をすべて調べ、その中で西暦2020年のものだけをピックアップして出力するようになっている。*1単純に日付の数字を足し算するだけではうるう年があったり、一月が30日か31日かの処理が面倒だったりするが、pythonには日付を直接足したり引いたりの計算ができるdatetimeというモジュールがあるので便利だ。

ただ、毎月厳密に30日だったりうるう年がなかったりしたらもっと便利なのになと思った。暦を考えた人はポッキーの日を求めることを想定していなかったのだろうか?

またコード内にレピュニット(Repunit)という言葉が出てきているが、1や11、1111など1がたくさん並んだ数字のことをこう呼ぶらしい。ポッキーのおかげで知らない知識が増えていく。
まあとにかく実行してみると、以下の結果が得られた。

2020-01-01は2020年1月1日
2020-01-11は2020年1月11日
2020-01-16は1715年11月111111日
2020-01-16は2017年1月1111日
2020-02-19は2019年11月111日
2020-03-17は1716年1月111111日
2020-04-02は1989年11月11111日
2020-04-20は2020年1月111日
2020-06-02は1990年1月11111日
2020-11-01は2020年11月1日
2020-11-11は2020年11月11日
2020-11-15は2017年11月1111日

全部で12日まで増えた!ちなみに今まで数えてきた11月111日なんかも全て入っている。これによると、2020年1月16日は1715年11月111111日らしい。

f:id:hikido:20200316004340p:plain
1715年といえば、1600年に江戸幕府ができてから大体100年くらいだ。調べてみると、和暦では正徳5年。翌年の1716年には8代将軍・徳川吉宗が将軍に着任しているらしい。徳川吉宗といえば”米将軍”の異名を取り、米の増産や安定供給に力を尽くしたらしい。しかし11万日の時を経て、時代は米からパンへ、そしてポッキーへと移った。時間の流れとは無情なものである。

さらに、11月111111日とかならポッキーとプリッツが合計8本あるので、漢字の「四」を作りだし、

f:id:hikido:20200316004239p:plain

厚切りジェイソンをキレさせることができる。

f:id:hikido:20200316004247p:plain
あと6本あれば「一」「二」「三」まで揃えて前フリまで完成させられるので、各自手持ちのポッキーで補ってほしい。

2020年のポッキーの日・・・ 現在 12 日

無限年に、挑む

じつは、先程書いたコードには重大な欠陥がある。書いたとおり日数の都合で11万1111日までしか計算していなかったが、当然レピュニットは111万1111、1111万1111…と続いていく。これは調べる範囲を西暦1~2020年までに限定していたせいで、要は西暦1年より前、すなわち紀元前の1月・11月すべてのポッキーの日を探索できたわけではないのだ。 とはいえ紀元前は無限に続く。どのようにすれば「本当に全ての」ポッキーの日を探索することができるのだろうか? 数日に渡る試行錯誤の末、以下のコードが完成した。

import datetime
def RepDaysList400yrs():
    """    400年(146097日)周期の中で、レピュニット日だけ経過した日をすべて列挙する
    """
    Shuki = 146097
    #一周は146097日
    RepDays = [False]*Shuki
    curpos = 1#1/1+curpos日
    RepDays[1] = True
    while 1:
        nextpos = (curpos*10 + 1)%Shuki
        if RepDays[nextpos]:break
        else:
            RepDays[nextpos] = True
            curpos = nextpos
    return([n for n,d in enumerate(RepDays) if d])#「レピュニット日後」の日付をすべて列挙する

if __name__ == "__main__":
    print(len(RepDaysList400yrs()))

少しややこしい話になるのでざっくりした解説に留めるが、実は、いわゆる西暦に使われる「グレゴリオ暦」は、うるう年などを加味しても400年=146097日周期で完全にループしている。さらに、上のコードを実行することで存在するすべてのレピュニット(1,11,111,……)を「146097で割った余り」が10422桁周期でループしていることが判明する。なので、考えなきゃいけない日付は1日、11日、111日……(1が10421桁並ぶ数)日、(1が10422桁並ぶ数)日までで全てだ。10422個となると多そうに見えるが、無限個調べるところが1万個まで減ったわけで、結構な進歩である。

さらに上のコードは1,11,111,1111…(1が10422桁並ぶ数) を146097で割った余りを全て計算し、出力してくれるようになっている。

というわけで1620年から2020年までの400年間について、1月と11月の1,11,111,1111…(1が10422桁並ぶ数)"を146097で割ったあまり"日を全て調べれば、少なくともこの400年間に理論上存在しうるすべてのポッキーの日を列挙することができる。
このへんは論理の飛躍がすごいですが、細かい解説は後日別の記事にまとめる予定です。

まあとにかく、2020年11月11日から紀元前数万、いや数億年の11111...111日まで、ポッキーの日を一つの漏れもなく調べることが可能になったのだ。  

import datetime
import ModularRepunit
def main():
    Repunits = ModularRepunit.RepDaysList400yrs()
    Result = set()
    #XXXX年1月repunit日と、XXXX年11月Repunit日について一致を調べる
    RepunitDelta = [datetime.timedelta(days = repunit) for repunit in [i-1 for i in Repunits]]
    for y in range(1600,2021):
        JanOrig = datetime.date(year=y,month=1,day=1)
        NovOrig = datetime.date(year=y,month=11,day=1)
        for RD in RepunitDelta:
            JanRes = JanOrig + RD
            NovRes = NovOrig + RD
            if JanRes.year==2020:
                Result.add(JanRes)
            if NovRes.year==2020:
                Result.add(NovRes)
    print(len(Result))
if __name__ == "__main__":
    main()




このコードを走らせれば、2020年の”本当の”ポッキーの日の日数が出力される。その実行結果は…


366



2020年のポッキーの日・・・ 366 日


なんと、366日すべてがポッキーの日だということがここに立証された。ここに、ポッキーによる天下統一がなされた。毎日が日曜日ならぬ、毎日がポッキーの日である。これでもう、11月11日の元祖・ポッキーの日を心待ちにする必要はない。ただ、毎日がポッキーの日であるという事実に目を向け、歓びをたたえてポッキーを食べればよいのである。街中のスーパーやコンビニは毎日ポッキーを大量に入荷すべきだし、大学の生協は毎日でっかいポッキーのバルーンをポッキー購入者に抽選でプレゼントすべきなのだ。

ちなみに記事公開日の3月16日は紀元前30421188966538973725979619324451867214552279954033583471559610700044795200753228638811504989453237年11月の111...1(1が101個続く)日なのでポッキーの日だ。

そして年の方はおおよそ紀元前10の98乗年なので、グーゴル(10の100乗)に近い。紀元前グーゴル年までさかのぼって初めて、3月16日はポッキーの日たりえるのだ。なお宇宙の誕生が約138億年前で11桁くらいなので、ビッグバンよりも圧倒的に昔ということになるがそういうのは気にしないでいただきたい。

毎日がポッキーの日であるエビデンス

2020年のすべての日について、ポッキーの日の具体的な日付も調べておいた。全部掲載するととんでもない分量になるので、とりあえず1月の最初の10日ぶんだけここに載せておく。

2020年1月1日は2020年1月の1日です
2020年1月2日は紀元前3042118896653897372597961932445186721455227995403358347155959051年1月の111...1(1が67個続く)日です
2020年1月3日は紀元前304211889665389737259796193244518672145522799540335834715596107000445933年1月の111...1(1が75個続く)日です
2020年1月4日は紀元前304211889665389737259796193244518672145522799540335834715596107000447952007532286388115049894552553744734282322323144516618715267558159609331091291706499410969728635389121230719620830300721058231479390024740031927037820382652925415608462年1月の111...1(1が240個続く)日です
2020年1月5日は紀元前3042118896653897372597961932445186721455227995403358347155961070004479520075322863881150498945525537447342823223231445166187152675581596093310912917064994109697286353891212307196208303007210582314793900247400319270378203826529254156104810122346414708年11月の111...1(1が253個続く)日です
2020年1月6日は紀元前304211889665389737259796193244518672145522799540335834715596107000447952007532286388115049894552553744734282322323144516618715267558159609331091291706499410969728635389121230719620830300721058231479390024740031927037820382652925415610481012234641672617811758245853401811429697012563190513456432674486433290515509862929725795年1月の111...1(1が327個続く)日です
2020年1月7日は紀元前3042118896653897372597961930427年11月の1111111111111111111111111111111111日です
2020年1月8日は紀元前28403年11月の11111111日です
2020年1月9日は紀元前304211889665389737257778年11月の111111111111111111111111111日です
2020年1月10日は紀元前30421188966538973725979619324451867214552279954033583471559610700044795200753228638811504989455255374473428232232314451661871526755815960933109129170649941096972863538912123071962083030072105823147939002471985年11月の111...1(1が212個続く)日です

桁数が最も小さいポッキーの日を選んだが、それでも無茶苦茶に長い。

一番下の1月10日は年だけで212桁ある。無量大数ですら68桁なので、ざっくり無量大数の3乗、要するに無量大数無量大数倍の無量大数倍。デカすぎ。当然宇宙に存在するすべての粒子の数(10の80乗)より圧倒的に多い。

ちなみに一番長いのは9月25日で、日付の方は1が1471個続くし、年も当然のように1468桁ある。(9月25日のデータは、記事の最後に全日付のデータへのリンクと一緒に貼っておきます)

f:id:hikido:20200316004258p:plain
11月(1が1471桁並ぶ数)日の図
さっきの書き方をすると無量大数無量大数倍の無量大数倍の…(「無量大数倍の」が20個)無量大数倍。

ここまで大きな数だともはや想像も及ばない。わかるのは唯一、「ポッキーの日だ」ということだけである。

でも、それで十分なのかもしれない。





だって、ポッキーが1471本もあったらめちゃめちゃ嬉しいから。



f:id:hikido:20200316004349p:plain


おまけ

366日すべてのポッキー&プリッツの日の日付データはこちら

※一番長いポッキーの日の詳細

2020年9月15日は紀元前3042118896653897372597961932445186721455227995403358347155961070004479520075322863881150498945525537447342823223231445166187152675581596093310912917064994109697286353891212307196208303007210582314793900247400319270378203826529254156104810122346416726178117582458534018114296970125631905134564326744864332905155098629297278140170191341673302288509992980310645971131812730202840882731640242061400606750613937619830964663507426192491594245223683199822340256435412393440279023145201095467014685068443872526091873511738396027601144749340810861581308613075179123763283602294670283746034788150642685643404343993678476932753201259741435104378901992816036225551821354609912896530691557283479088854969263191197933184421613342125056944663096740141443318099922958338942240049038956614060825646279146351016409949858275285902136556154092448472209863614204565764146043001871663651166310358490896078936901130375329024171916223087705048320256024726342392002877844476234586914477671988093146638496645683651576996409539172224237625991255429231568372002467158425186310769176947127213046431100189904272123619543484427773632890781086842607613054644821210869795029634040702029777780819896674431675150375739710222964499233005773181136124933738847782257297853100641658928276723303315225120601001009222943964930453359373871088690694842771887475064131668990084973986080784988360092571678025178097048155981604307031933882587900124194503955895360236311795892074747903409682912342104522642110680914年11月の111...1(1が1471個続く)日です

*1:西暦1年1月1日から2020年の大晦日まではだいたい75万日くらいしかないので、111万1111日以降については調べなくても十分なはず。

腕時計

自分に声をかけてくる人間をすべからく捕食者(Predator)だと思っているのでインタビューには応じないスタンスでいる。

万一インタビューを頼まれても「急いでるんで」と答えて、街並みをキョロキョロ見回して「今日渋谷に初めて来た人」感を醸しながらやや早歩きで立ち去ったりする。あと心の中で「急がなきゃ……」と一心に唱えて罪悪感を軽減する試みもやっている。

二限が終わり、暇なので駒場から渋谷まで歩いて帰ろうと思っていたら、駅の前でインタビューを依頼された。いつもなら毅然とした態度で「あ、すいません、いそ、急いでるんで、あ、すいません」ときっぱり断れるのだが、その日は「まさに今、暇を潰そうとしている」という現行犯であったためなんとなくインタビュアーにも罪悪感にも嘘がつけず、無駄な抵抗をせずにおとなしく捕食されることにした。アーメン。

捕食者は「大学のサークルで調査をしていまして、名前と学年、科類を教えて頂けますか」と聞いてきた。手にはiPhoneのメモアプリ(白紙)。長くなる予感がした。

学年を間違えて2年生と言ってしまうミスはあったもののいちおう質問に答えつつ、”武器”を探す。プレデターと戦うには武器が必要なのだ。ポケットに手を突っ込み、腕時計を取り出した。

笑顔で受け答えしながら、ゆっくり腕時計をつける。"腕時計を見る"というコミュニケーション・破壊行為をちらつかせる。「きょうもちゃんと人と話せた」という自尊心を巻き込んで破壊する自爆スイッチ、それを持ち出すという無言の宣戦布告。この戦い<Communication>、負けるつもりは、ない。

 

 

インタビュー、普通に面白い内容だったので腕時計は1度も見ずに最後まで受け答えしました。インタビュアーのメモも結構埋まってた。腕時計は、インタビューが終わってちょっと歩いたあとポッケにしまった。ずっとつけてると手首痛くなるから。そういうギリギリのところを生きています。