Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

病み上がりの江戸川

ナマモノに中ってしまった。正確に言えばナマモノが原因かは定かではないのだが、倒れる前日に食べた頭トロ丼以外に思い当たるフシがない。高い昼飯だっただけに、残念な気持ちでいっぱいである。抗菌剤を処方されるまで6日間、そして抗菌剤を飲み続けて5日間。正直に言って、まだ本調子ではない。

とは言え、2週間近くも調子を崩してしまったために、すっかり足が鈍ってしまった。ここらでガツンと喝を入れておく必要がある。都内を抜けて、松戸方面に足を伸ばすことにした。生憎、早朝は雨で、止むまで自宅で待機する必要があった。

松戸へはよく行く。昔、馬橋に住んでいたことがあり、他の場所よりは土地勘があるからだ。距離も自宅から 50Km ほどと丁度良い。朝のうちに都内を抜けてしまえば、人混みも避けられる。人がほとんどいない銀座を抜けて、日本橋に至る。

本調子ではなく腹が減らないこともあり、昼食を摂る前にランチのピークタイムを迎えてしまった。こうなるとどこも混み合ってしまって入りにくくなる。どうしようかと思っていたところ、たまたま通りがかった商店街で、 カレー屋 を見つけた。常磐線の駅はどこも適度に落ち着いていて良い。席が空いてそうだったので、すかさず入って昼食を摂る。

カレーは素晴らしい。油や化調に塗れたラーメンと違って、スパイスにはそれぞれ薬効がある。そして、ラーメンほどではないが、店舗数もそれなりに多い。ラーメンの代わりにカレーが流行ってくれれば、日本人は今よりも健康になるのではないか。

馬橋駅に到着した。せっかく来たので、記念撮影しておく。と言っても、何度も来ている場所なので、今更ではある。

その後は新松戸まで足を伸ばし、 イオンフードスタイル新松戸店ミスタードーナツに立ち寄った。かつてはダイエーだった店舗だが、今はもうダイエーの看板は掲げていない。こうして全てがイオンに食い潰されていくのは、とても残念だ。

本日のゴールは、市川駅に決めた。新松戸からであれば江戸川を通って1時間程度で着き、武蔵小杉にも戻りやすい。そう思ってイオンフードスタイル新松戸店を出たのだが、江戸川に向かう途中で風がやたら強く吹いていることに気がつく。しかも、風向きはちょうど江戸川の下流側から上流側に向かっている。完全に向かい風だ。

案の定、江戸川に入ってからは強烈な向かい風で、進むのに苦労した。ただ、これは病み上がりの体に喝を入れるためのライドだ。これくらいの方が鈍った体には丁度良い。そう考えながら、みっちりと一時間向かい風を進んで、本日のゴールである市川駅に到着した。

市川駅から横須賀線武蔵小杉駅までは一本だ。グランツリーまで来ると、ようやく帰ってきたなあという気分になる。今日もいい運動になった。早くもとの体力にまで回復したいものだ。

PinはUnpin

未だにきちんと型が読めなくて困る。

Pinning - Asynchronous Programming in Rust

To use a Future or Stream that isn't Unpin with a function that requires Unpin types, you'll first have to pin the value

!Unpin でも Box::pinUnpin になると書いてあるのだが、ドキュメントを見るとなんか違う気がする。

Pin in std::pin - Rust

impl<Ptr> Unpin for Pin<Ptr>
where
    Ptr: Unpin,

where によれば Ptr は「 Unpin である必要」があり、 !Unpin では駄目な気がする。答えを言えば、ポインタである Box&mut はどう考えても Unpin なわけで、 Pin<Box<...>> の形であれば Unpin なのである。同じく「 Unpin である必要」がある DerefMut と定義を比べるとわかる。

impl<Ptr> DerefMut for Pin<Ptr>
where
    Ptr: DerefMut,
    <Ptr as Deref>::Target: Unpin,

こちらは DerefTargetUnpin である必要があり、 !UnpinBox で包んでも駄目なのである。 Deref の定義も念のためあわせて記載するとこうなる。

pub trait Deref {
    type Target: ?Sized;

    // Required method
    fn deref(&self) -> &Self::Target;
}

型定義もまともに見ずに日本語で雑に一辺倒に「 Unpin である必要」と読んでしまうのは、勘違いの元である。

前に同じ内容を書いたときには、わかっていたんだろうなあ。

hiratara.hatenadiary.jp

菖蒲で勝負

一人のライドは気楽で良いが、いつも行き先に困る。今週もまったくどこに行けばいいかわからなかったので、 meetup で検索をしてみるとちょうど土曜日のライドがある。 pedal to empower というチャリティイベントの一環らしい。ささやかな寄付をして主催者にメールをしてみたところ、快く参加の許可を頂いた。

そして本日がライド当日。主催者が集合場所を間違えると言うトラブルはあったものの、その後は滞りなくライドは進んだ。幸い、主催者は日本語が堪能だったので話を聞くと、30年前から活動をしているグループで、普段はチャリティでトレッキングをしたり、荒川のゴミ拾いなどをしているのだそうだ。自分は日本人なのにも関わらず、まったく日本のために役立つようなことはしていないので、頭が下がる思いである。異国にまでやってきてボランティア活動をし続けるモチベーションはなんなのだろう。

上野公園で昼食を食べた後は、いよいよ本格的に北に向かって走り出す。聞いていなかったのだが、今日のテーマはしょうぶ祭りだそうだ。まったく知らないのだが、この時期は各所でしょうぶ祭りをやっているらしい。最初は堀切菖蒲園。しょうぶの花の前に何やら名前が書かれており、コンテストをやっている雰囲気だ。焼きそばの出店があって心惹かれたのだが、生憎昼食を食べてからまだ時間が経っていない。

その後はしょうぶ沼公園である。途中で赤信号で逸れてしまったが、なんとか電話をして探しに来てもらった。グループライド全般でそうなのだが、多くの人は黄色信号でも強引に進もうとする。ソロのときはなるべく止まることにしているので、必然的に置いていかれがちになる。

しょうぶ沼公園は出店もたくさん出ていて、子供も多く祭りの活気に満ちていた。

その後は都立水元公園に行ったのだが、非常に広い公園で、地元にもあったらいいなあと思いながら通過した。あまりの広さに見とれてしまったせいか、こちらは写真を撮りそびれた。堀切菖蒲園と同様に、葛飾菖蒲まつりの一部のようだ。

2024葛飾菖蒲まつり|葛飾区公式サイト

最後に、小岩菖蒲園に行き、本日のライドを終えた。こちらの菖蒲はまだつぼみが多く、来週にはもっときれいに咲きそうだ。

グループライドの質としては現在所属しているサークルがダントツに良くて、最初に今のサークルに出会ったのは本当に幸運だったと言える。とは言え、英語を話す機会がほぼないので、こうやって英語圏の人達とライドに行くのは有意義な休日の過ごし方だなあと思うのである。

データとタイヤが失われた週末

最近、 気合を入れて Google Timeline を触っていたのだが、あっけなく終了してしまった。

support.google.com

Timeline won’t be available on Maps on your computer after your data is moved to your phone

ということで、 androidiPhone 端末で Timeline の移行に同意すると、 Google のサーバーから一瞬でデータがすべて消される。 10 年分のデータが、一瞬で、だ。何も考えずに移行をしてしまったせいで、自分のデータはもう消えてしまった。 Google Takeout からダウンロードしても、 Records.json は含まれていない。 android/ios 端末内にはデータが存在する可能性があるので、取り出したいのだが、どうにもならないのだろうか。

そんなわけで傷心の中、代替サービスも必要で土曜日を一日費やして検索する羽目になったのだが、結局いいものが見つからず、さらに疲弊しただけの結果となった。

これ以上疲弊しても仕方ないので、日曜日は一日自転車に乗ることにした。インタネットで知り合ったフランスとオーストラリアから来たというメンバーで、埼玉方面を走る。一人は日本語が苦手ということで英語で話していたのだが、やっぱり何を話しているのかわからない。これだけ英語を勉強しているのに未だにリスニングの一つも身についていないことが情けない。

言葉の壁はありつつも、自転車に乗ってしまえばただ走るだけ。天気も悪くはなく、気持ちよく走っていた。そして、自販機周りで休憩をしていたところ、同行者がブロンプトンに興味を持ってくれたので、ここがチタンだとかここは鉄だとか得意げに色々と説明をした。その時であった。日本語が流暢なメンバーが、前タイヤを指さして「これはなに?」と言い出した。見ると、なにか丸いものがタイヤにくっついている。シールでも着いたのかな、と近くで見てみると、これは明らかに金属である。画鋲だ。画鋲が突き刺さっている。抜いたら最後ということはわかってはいたが、まだ走り始めたばかりであと 50Km は走らなければならない。ああ、これは無理だなと早々に諦め、画鋲を引き抜いた。同行者たちが「Oh!」「アアー!」と声を上げると同時に、ぷしゅーと勢いよくタイヤから空気が抜け始めた。ブロンプトンに乗り始めてから初めてのライド中のパンクである。

幸い、 LIFE with Bicycle のお兄さんに修理の仕方は習っていたし、家で後輪のスローパンクの交換はやったことがある。まあ、できるだろうと、ネジを外してホイールを取り出し、チューブを交換した。 30 分はかかってしまっただろうか。屋外で部品を散らかしてしまいそうで心配ではあったが、なんとか交換を終えることができた。「本当にこれは大丈夫かいな」と疑いながらも携行していた nanoFumpa Bike Pump も、しっかりと仕事をしてくれた。これで tubolito は使い切ってしまったので、また買わねばならない。

さて、パンク修理は無事に終えたのだが、一つ、問題が残った。刺さっていた画鋲が見当たらないのである。せっかくパンクを直したのに、また突き刺してしまっては大変だ。そう思って注意深く探したのだが、どこにも見つからない。仕方なく、慎重に押し歩いて画鋲がないことを確かめながらその場を後にした。

その後のライドは順調そのもので、途中、柴又帝釈天に寄るなどした。一人で走ると不安になる人気のない道も、グループライドであれば安心して楽しめるのが良い。

なんだかんだで合計 100Km 近く走り、帰りは輪行する運びとなった。袋に詰めた自転車を担いでホームへ向かう階段を歩いていると、どうも自分の靴から、コツ、コツ、コツ、と金属のような音がする。嫌な予感しかしない。確信して靴の裏を覗き込むと、そこには想像した通りの光景があった。

パンク修理に夢中になって画鋲を放置してしまい、挙句の果てにきっちり自分で踏んでいたのである。誰かに刺さって怪我をしたり再び自転車のタイヤに刺さってパンクをしたりしなかったのは、不幸中の幸いだったと言えるだろう。

続・GoogleのLocation History(Timeline)を可視化

GW も終わってしまい、ブログに書くようなネタが何もないのである。とは言え、別に何もしていなかったわけでもない。

最近はプライベートでずっと bevy を触っている。なぜ bevy かと言えば、 Location History を静的な画像ではなく、アニメーションとして可視化したいからである。そのためにはなんらかの方法でグラフィックを扱う必要があり、 nannou も目を引いたのだが、どうせならゲームエンジンをきちんと使ってみようと思った次第である。

hiratara.hatenadiary.jp

幸い、 bevy_slippy_tiles - Rust というクレートがあったので、これを足がかりに作業を始めた。 staticmap と同様に内部でメルカトルの計算をしているのだが、中途半端に googleprojection を使っていたりもして、まあ、取りあえず動くかなといった代物ではあるが、今回の用途には十分だ。

以下は 伊豆大島に行った ときの GPS のデータを可視化したものである。静的な画像で見るよりも、いつどこを通ったのかがわかりやすい。

ECS の使い方にも多少は慣れた。とは言え、この程度の用途であればパフォーマンスを気にする必要はないので、どんな風に書いても割と動きはする。

ところで、データの可視化で本当にやりたかったことは、今通っている道が初めて来たところなのか、それとも以前に来たことがあるところなのか、わかるようにするということである。現在、データは SQLite に入れており 、 geohash をキーにしているので、データを検索するだけなら実はすぐできる。ただ、検索して DB に入っている行をターミナルに表示するだけでは、残念ながら何もピンとこない。きちんとした可視化をする必要がある。今後、そのような可視化の機能を実装していくつもりである。

常磐線を北上する - 富岡~浪江

いわきのホテルを出て、常磐線をさらに北へ向かう。目的地は福島第一原発だ。常磐線が全線開通したのは 2020 年 3 月 14 日のことだが、その頃はまだ駅の周辺しか立ち入ることができず、自転車で駅間を移動するのは不可能だった。国道6号を自転車で通行できるようになったのは2022年8月30日であり、常磐線開通から2年半を擁したのである。

富岡で下車し、浪江駅を目指す。雨がパラついていたが、30分程で天気予報の通り上がってくれた。

富岡周辺は、特に変わった様子はない。非常にのどかな景観で、サイクリングを存分に楽しむことができた。もっとも、震災前にここがどういう地域だったのか、ただの通行人の自分には知る由もない。

ほどなくして夜ノ森駅に到着した。ここまでは国道 6 号を通る必要もなく、田舎道をのんびりと走ることになる。

夜ノ森を出た後に向かうのは、福島第一原発の最寄り駅である大野駅である。国道 6 号を使って向かうことになるが、ここからは徐々に通行止めの脇道が現れてくる。大野駅の周辺は大規模な工事中で、ほとんどが更地になっていて工事車両が仕事をしている。西口には遠回りをしていく必要があった。

駅舎は新しかったのだが、大熊町のウェルカムプレートはあえて古いものをそのまま使っているのだろう。

駅には線量計が着いている。大熊町双葉町では他にも線量計が置かれている場所があった。

さて、ここから双葉駅へ向かう予定だったのだが、大野駅周辺の避難場所として 5Km 先の大熊町役場が指定されているのを目にした。徒歩 70 分かかるようである。 70 分もかけて避難するのか、と興味が出てきたので、行ってみた。

大熊町役場の周辺はおおくまーとという施設になっていて、コンビニや飲食店、美容室や電器店が集まっている。駅周辺はまったく人気がなかったが、おおくまーと周辺はきちんと生活感があり、安心した。温浴施設があったり、 GW にはコンサートも開かれるようである。

おおくまーとから双葉駅を目指すために、再び国道6号に向かう。途中の草原は、ほとんどすべてが帰宅困難地域で立ち入ることができない。原発事故の悲惨さを改めて知ることになる。

熊町農村公園という公園があるのだが、ここも帰宅困難区域である。この地域は、「大熊町熊」と呼ばれる地域のようである。よほど熊が出るのだろうか。

国道 6 号を再び進み、左折をすれば双葉駅だったのだが、先に右折をして東日本大震災原子力災害伝承館を目指すことにした。中では震災や第一原発についての資料を見ることができる。 3/11 から時系列で水素爆発やメルトダウンの様子を振り返ると、当時の緊迫感がありありと蘇ってくる。突然故郷を追われた子どもたちのことを考えると、子を持つ親としてとても心苦しくなる。

伝承館を出て、津波の被害を受けた地域を走る。ほとんどの建物は取り壊されていたが、残されている建物もいくつかあった。

このガードレールは、津波によるものなのだろうか? ちょっと判断がつかなかった。

こちらの建物はマリンハウスふたばで、津波の到達時刻で時計が止まっている。この先は帰宅困難区域だ。

この民家はあえて残されているもので、津波の危険性を後世に伝えるために保管する予定のようだ。

請戸小学校は全員の避難に成功した奇跡の小学校である。震災遺構として残されていて見学ができるようなのだが、残念ながら休館日だった。

沿岸部を後にして、浪江町を目指す。浪江駅と、道の駅なみえに立ち寄った。道の駅は GW 用にいろいろと準備されており、恐らくかなりの人手があるのだろうなあと予想される。大熊町双葉町と違って、非常に活気があった。せっかくなので、甘酒プリンなるものを頂く。

最後に、国道 6 号を南下して双葉駅に至った。双葉駅周辺には新しい建物が次々と建っていた。役場ごと山間部に避難した大熊町とは対象的に思える。それとも、避難指示が解除された時期の違いによるもので、大野駅周辺もこれから大規模に開発されるのだろうか。

今回、福島第一原発の周りを回ってみて、改めて原発事故の恐ろしさを感じることができた。その一方で、不謹慎ながら、住民が極端に減っているせいで、サイクリングするには快適であるとも感じた。サイクリング中に遭遇した車はごく僅かで、伊豆大島を回ったときと似た感覚に陥った。幹線道路である国道 6 号についても、大型トラックが走ってはいるものの、交通量はそれほど多くなく、後ろさえこまめに確認していれば危険を感じることもなかった。 浜通りにナショナルサイクルルートを作る計画 も動き出しているようだ。この地域が、震災前の生活を取り戻せる日が一日でも早く来るように、祈るばかりである。

常磐線を北上する - 水戸~日立

GWに会社から(そして家族から)休みをもらえたので、常磐線で旅に出ることにした。土浦までは何度も行ったことがあるが、その先に行ったことはほぼない。特に震災後は、全線の復旧までにはかなりの期間を擁した。そこを見に行こうというのである。

初日はまず、いわきに宿泊するものとした。と言っても、そのまま電車でいわきまで行くのは勿体ないので、水戸に寄ることにする。スタート地点は、コーヒーを飲みたいからと理由だけで検索をして、内原と言う駅に降り立った。本日の旅はここから始まることになる。

30 分ほど走ってお目当てのスタバに寄ったあとは、いよいよ水戸市街へ向かう。途中、 Yahoo! の自転車ナビに導かれて入った県道50号は自転車が入れるような雰囲気ではなく、だいぶ肝を冷やすこととなった。恐らく、反対車線側に自転車専用道路があったのだろう。

ともあれ、無事に水戸へ着いて、楽しみにしていた納豆ラーメンを食べる。美味しくいただけたが、まあ、ラーメンにする必然性はないかなといった感想だ。

水戸を出たあとは勝田駅、そして2件目のスタバと経由をして、その後は 245 号をひたすら北上をして日立を目指す。途中で原子力科学館なる施設を発見して、複雑な気持ちになる。原発があんな状態になってしまった今では、どのようなコンテンツを提供しているのだろうか。

ところで、今回水戸駅から走っているコースは大洗・ひたち海浜シーサイドルートと呼ばれているコースで、道中でこんな看板を目にする。りんりんロードのような親切設計ではないが、このような標識や自転車ナビマークを見かけるだけで大手を振って車道を走ることができて良い。

それにしても、今日は向かい風がかなり強い。さほどの距離を走ったわけでもないのに、かなり息が切れている。そのまま日立まで走りきってもいいのだが、せっかくなので途中の道の駅に立ち寄ることにする。道の駅、日立おさかなセンター、と言うらしい。イカ焼きを食べたが、まあ、イカ焼きはどこで食べてもうまい。

途中の海岸線でも写真を一枚。何気に、今回のルートで初めてまともに海が見えたところだ。

向かい風のせいで相当に長く感じたが、無事に日立駅に到着。海側に張り出した駅舎でなかなか興味深かったのだが、急いでいたのでそのまま電車に乗っていわきへ向かった。

いわきでは、 B4T というホテルのキャビンルームに泊まった。駅直結で改札口を出て 30 秒以内に入れる JR 直営のホテルなのだが、なんと、 3,000 円ちょいで宿泊できてしまう。ご覧の通り部屋は狭いのだが、まだできたばっかりということもあり、とてもキレイだ。トイレや洗面台、シャワールームもキレイで十分な数があり、とても素晴らしい。 500 円で洗濯機も使える。

難点があるとすれば、低価格帯の場所には招かれざる客が来るということである。電源と wifi とドリンク完備でとても広いノマドスペースがあるのだが、着いてすぐにはおっさんがテレビでワイドショーを最大音量で付けていて、その後は典型的な中国人客がスマホの音量を最大にして FPS ゲームをプレイし続けており、うるさすぎてノマドどころではなかった。まあそれでも、ベッドルームで大騒ぎされるよりは遥かにマシで、ノマドスペースでやってくれてたのはむしろ良かったと言うべきところだろう。

夕食は検索して見つけた中華屋へ行ったのだが、祝日のせいで閉まっていた。仕方ないので隣にあったカレー屋に入ったのだが、これがめちゃくちゃ美味い。外国の方がやっている店だったのだが、来日して地方でこんな美味いカレー屋を営むのは、どのような経緯やモチベーションがあったのかは気になるところだった。