以下の内容はhttps://hiratara.hatenadiary.jp/より取得しました。


2026BRM307西東京200km伊東

先日、初めてブルベに出走した。 2026 年 3 月 7 日開催された、町田から伊東の往復 200Km のブルベである。

2026BRM307西東京200km伊東(7時スタート) | AJ西東京

自転車イベントの朝は早い。車が居ない時間、日没までの時間を目いっぱい利用するために止むを得ないとは思っているが、就寝時間が遅い現代人に優しい時間帯だとはお世辞にも言い難い。このブルベも 6:30 ブリーフィング開始で、そのためには家を 5 時前には出る必要があり、 3 時過ぎに起床して朝食を摂るなどした。

ブルベ自体は、熟練者と一緒だったので、特に問題なく参加することができた。車検があり、きちんとした装備がないと出走すら許されないが、基本的にはしっかりした(点滅ではなく点灯の)フロントライト、リアライト、ベル、後は反射ベストがあれば通るだろう。当日もらうブルベカードと、 PC (Point de Controle) を通過した証明として使うコンビニレシートを保管するジップロック(雨天を考慮するため)があるとよい。

点滅のライトは、昼間のリアライトでも避けた方がいいようだ。自動車に発見してもらうために激しく点滅させた方がいいのではと思ったのだが、集団で長時間走る場合には後続車の視覚に負担を強いることになるし、そもそもフランスやドイツでは点滅のライトはすでに法律で禁止されているらしい。反射ベストを含めて、別の手段で身を守ったほうがよさそうだ。

100km 強程度は普段から走っているので、 200km という距離には不安はまったくなかった。ただし、制限時間については別である。 100km 走っていると言っても、朝から日が暮れるまで 12 時間程度はかかっているのが普通だ。今回は 13.5 時間で 200km を走らなければならない。案の定、コンビニに止まってものんびりする余裕はなく、昼食も吉野家で 30 分で済ませる羽目となった。ただ、今回は巡航速度 20km/h 程度とかなりのんびりなペースだったので、次回以降はもう少し余裕があるのではないかと思う。

www.youtube.com

ブルベ 200km は 2026 年の目標 にも入れていたが、 たんすいかぶつさんのチャンネル を見始めてからずっと走ってみたいと思っていた競技だったので、これで1つの区切りを迎えたと言える。じゃあ次は 300km かと言われれば、そこは微妙なところだ。 300km となると、 20 時間競技を続ける必要がある。 400km では 27 時間だ。日ごろから睡眠不足は人類の敵だと思っているので、睡眠時間を削ることが前提の競技は素直に受け入れられないところがある。

ひとまず、 200km のブルベは楽しかったので、他にもいろいろ出てみようとは思う。今回の 200km はそんなに登る必要もなく、平和な方だったと思うので、もう少しきちんと登るブルベにも参加したい。

flat_map と inspect_err

gemini CLI に書いてもらったコード。

                Ok(records_iter
                    .filter_map(|res| match res {
                        Ok(val) => Some(val),
                        Err(e) => {
                            warn!("Failed to read record: {:?}", e);
                            None
                        }
                    })
                    .collect::<HashMap<_, _>>())

ダサいから書き直してよと言ったら、こうなった。これはカッコよい。

                Ok(records_iter
                    .flat_map(|res| res.inspect_err(|e| warn!("Failed to read record: {:?}", e)))
                    .collect())

まず、 Result 型はイテレータを実装しており、 Ok なら 1 要素、 Err なら 0 要素を返す。よって、 flat_mapOk だけを取り出せる。

    #[inline]
    fn into_iter(self) -> IntoIter<T> {
        IntoIter { inner: self.ok() }
    }

内部で .ok() を呼んでいるので、これだけだと Err は捨てられてしまう。そこで、 .flat_map される直前に .inspect_err で中身を確認する。

素晴らしい。

ゲームブック by Google AI Studio

Google AI Studio の Build mode を始めて触ったのだけど、 AI を使ったアプリが簡単に生成されて体験が非常に良い。

文章生成が得意ならゲームブックを作らせるといいのでは(と考えた人は多いと思うが)と、以下のプロンプトでアプリを作ってもらった。

テキストベースのアドベンチャーゲームを作りましょう。
AI が文章と、 3 ~ 5 つほどの選択肢を生成します。
ユーザーは文章を読み、ボタンで選択肢を1つ選びます。 
AI がその選択肢と今までの流れを把握した上で、次の文章と選択肢を生成します。
これを繰り返し、 AI がゲームが終了したと判断したら、そこで選択肢を出さずに終了させます。
終了時には、「バッドエンド」なのか「グッドエンド」なのかと、もう一度最初から遊ぶボタンを表示します。

生成されたのがこれ。きちんと UI も含めた完成形を出してくれて、ほんとに楽ちん。

このアプリが、無限に遊べてしまう。

プログラミング言語 Perl の重鎮たちとメーリングリストで議論を戦わせる」と入れると、こんなゲームになる。正規表現エンジンを刷新したかったのに、無残な最期に。

「大学受験レベルの英単語クイズに5問連続正解する」だと以下。出題される単語にめちゃくちゃ偏りはある気がするが、一応問題を出してくれる。

ドラクエ3」と入力すると、恐らく学習データが多いのだろう。それっぽいものが生成される。

これだけのものがなぜか楽しい。自分の選択に対して意味のある反応をしてもらえる、というのがゲームの楽しさの本質なんだろう。

謹賀新年

あけましておめでとうございます。本年もよろしくお願い致します。

今年の目標は 200Km のブルベへの出走と、継続して Rust を書くことです。

もちろん数学もやりたいけど、圧倒的に時間がない 😓

こんなちんけな画像を生成させるだけで「私は積極的に AI を使っています!」と胸を張れるんであれば、 2026 年を迎えた僕らは今、果たして「何」を頑張っていると言えるんだろう、と言う気持ちにはなりますね。

Brompton の前輪と後輪を入れ替え

今年の年末年始休暇は長いらしいが、 抗生物質を飲みながら療養を続けている 自分にはできることがない。頭痛もあったので、怒りに任せて永遠に Caves of Qud をやっていたのだが、さすがにそれにも飽きてきた。そこで、普段絶対にやらないことをやることにした。

普段使いをしている brompton M6R (今で言う C Line) だが、ふと見ると、後輪だけやたらとタイヤが減っていることに気が付いた。一方で前輪には余裕がある。これを入れ替えておけば、もう少しこのタイヤで粘れるはずだ。 brompton のタイヤ交換は内装が付いていると非常にめんどくさい。詳しくは動画を参照してもらおう。

youtu.be

ところが、自分の brompton はこれだけでは済まない。日本の brompton オーナーは多くの人が MINOURA のキックスタンド を付けていると思うが、これも外さなければならない。そのためには、 8mm のスパナが二本必要となり、作業にも多少コツがいる。

内装ハブ付きの後輪の交換が面倒なのは、手順の複雑さも去ることながら、交換後に内装変速機の調整も必要となるところである。これを覚えていないと、変速に支障が出て面倒なことになる。今日は Youtube ですべての手順を確認してからやったのでうまくできたが(と言っても1時間半以上かかったが)、これを屋外でやれと言われたら無事に完了できる自信はない。「Bromptonでの自転車旅はパンクが命取り」と言われる理由である。

しかも、苦労はここで終わらない。ホイールを付け外した後は、ブレーキのセンター調整もし直さなければならないのだが、ここで詰んだ。 前輪は調整できたものの、後輪はブレーキキャリパーの固定ボルトがリアキャリアと干渉してしまい、Brompton純正の携帯ツールキットでは回せなかったのだ。年明けにショップに行かなければならない。 brompton 社的には、「屋外でのパンク修理はあくまで自走可能な状態にすることが目標。細かな微調整は帰宅後にショップで行え」ということなんだろうか。

とはいえ、自転車で走る以上、パンクのリスクは避けられない。今回はその予行演習ができたと思えば、有意義な時間の過ごし方だったと言えるかもしれない。

手元にはもう一台、同様に後輪がすり減った「CHPT3 V4(P Line)」が控えている。こちらも今のうちに前後交換をしてお茶を濁したいところだが……残念ながら夜の薬を飲む時間だ。 2025 年中に作業を終えることはできないようだ。

忘年会は人類には早過ぎた

2025 年も暮れようとしている中、私は病床からこのエントリを書いている。忘年会でもらった風邪が治らず、微熱と頭痛がかれこれ五日以上続いているのだ。

年末年始は、自分にとって一年で最も大切な季節である。遠い故郷への年に一度の里帰りがあり、クリスマス、子供の誕生日、正月、そして義実家への挨拶。貴重な家族の行事がすべてこの数週間に凝縮されている。それゆえ、この時期だけは絶対に体調を崩さぬよう細心の注意を払い、余計な予定は入れないようにしている。だが、どうしても避けられないものが一つだけある。忘年会だ。

歯に衣着せずに言えば、酒を断った今の私にとって、忘年会に参加するメリットは皆無である。酒を飲まない時点で「楽しみ」ではなく、その上、酒を飲む人間よりも金銭的に享受できる金額は遥かに小さい。これが「年末なのでヤビツ峠ヒルクライム(自転車での山登り)に行きましょう」という誘いであれば、私は喜んで二つ返事で参加しただろう。これは決して極端な例えではない。私にとって「忘年会」への招集は、運動習慣のない人が「明日、険しい山を自転車で登りましょう(すごく楽しいですよ!)」と言われた時の当惑と、話し手と聞き手の温度差まで含めて完全に一致する。

コロナ禍を経て一度は影を潜めた忘年会が、再び勢いを取り戻しつつある。しかし、その構造的な問題は何ら解決されていない。体調を崩した参加者がマスクもせずに大声で長時間語らい続ける――そこが極めて感染リスクの高い場所であることは、疑いようがない。実際、「社会人としての付き合い」という義理を優先して参加した結果、私は体を引きずるようにして実家に戻る羽目になった。そのまま寝込んで母や弟に多大な迷惑をかけ、あろうことか子供の誕生日さえ満足に祝うことができなかったのだ。

親戚には高齢者も多く、透析を続けながら懸命に病と戦っている方もいる。そんな状況で、どの面を下げて「忘年会で風邪をもらってきました」などと報告できるだろうか。これはもはや個人の体調管理という範疇を超えた、他者への責任の問題である。何より、一年の疲れを癒やすはずだった私の大切な長期休暇は、ただの「苦痛な療養期間」へと成り果ててしまった。

来年の自分に、今のこの後悔を強く刻んでおく。忘年会には、決して参加してはならない。もしどうしてもというなら、新年会にすればいい。すべての連休と大切な行事が終わった後であれば、いくらでも「感染しに行く」覚悟で臨めるのだから。

Insta360 Go Ultraで逆さに撮ってしまったファイルの修正

アクションカメラは上下を勝手に判定するので、例えば前屈した姿勢でカメラのスイッチを入れたりすると、簡単に上下が逆さまの動画ができてしまう。

これを直す方法に難儀していたのだが、 ffmpegメタデータを弄るのが早いことがわかった。手元にインストールしなくても、 https://ffmpeg-online.vercel.app/-c copy -metadata:s:v:0 rotate=180 とオプションを付けて実行すればよい。これは便利。




以上の内容はhttps://hiratara.hatenadiary.jp/より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14