そして今日も食べ続ける

ちょっとこのところ過密スケジュールが続いています。

まぁ、なんとか頑張ってはいるのですが、相変わらず仕事中に食べ続けてしまいます。
おなかがそこまですいてなくても。
なんならおなか一杯だったとしても、何かしていないとやってられない?

なんでしょうね

Claude君によると

ストレス時に食欲が増すのは、主に生理的なメカニズムと心理的な要因が絡み合っています。

生理的な側面では、ストレスを感じるとコルチゾール(ストレスホルモン)が分泌されます。コルチゾールは本来「闘争か逃走か」の状況に備えてエネルギーを確保しようとする働きがあり、特に高カロリーな食べ物(糖質や脂質)への欲求を高めます。また、食べることで一時的にドーパミンやセロトニンが放出され、報酬系が活性化して気分が和らぐため、無意識に「食べる→少し楽になる」というパターンが強化されていきます。

心理的な側面としては、食べることが感情調整の手段になっている場合があります。仕事で緊張状態が続くと、食事が数少ない「休息」や「自分へのご褒美」になりやすく、また咀嚼という行為自体にもリラックス効果があります

酒もたばこもやらない私にとっては、確かに

食べる→少し楽になる。幸せになる

という図式は成り立つんですよね。ストレス化において少しでもそのストレスを軽減させようと、幸せに近づこうと食べるのかもしれません。

対策としては、ストレスの根本に対処するのが理想ですが、それが難しい場合は「食べる以外の小さな報酬」(短い散歩、ストレッチ、好きな音楽など)を意識的に取り入れることで、食への依存を分散させる方法があります。

根本的解決が出来りゃそれはいいのだけど、なかなか難しいので違うことでやはりお茶を濁す形が考えらえられると。

やっぱり筋トレですかね。。。

PlaywrightとARIA

今月のSoftwareDesignを読んでいて、Playwrightのところで出てきたARIA。
どういうものなのか勉強がてら調べてみた

ARIAとは何か

ARIAは、Webコンテンツをスクリーンリーダーなどの支援技術で正しく解釈できるようにするための仕様です。W3CのWAI(Web Accessibility Initiative)が策定しています。

なぜARIAが必要なのか

HTMLの標準要素には、ブラウザが自動的にアクセシビリティ情報を付与します。

<button>保存</button>
<!-- ブラウザは自動的に「ボタン、保存」と支援技術に伝える -->

しかし、リッチなUIを作ろうとすると<div><span>でカスタムコンポーネントを作ることがあります。

<div class="fancy-button" onclick="save()">保存</div>
<!-- 支援技術には単なるテキスト「保存」としか伝わらない -->

この<div>はボタンのように見えて動作しますが、スクリーンリーダーはそれがボタンであることを認識できません。ARIAはこのギャップを埋めるために生まれたそうです。

ARIAの3つの柱

ARIAは主に3つの概念で構成されています。

Role(役割) は、要素が何であるかを定義します。

<div role="button">保存</div>
<!-- 「これはボタンです」と支援技術に伝える -->

Property(プロパティ) は、要素の性質や関係性を定義します。

<input aria-label="検索キーワード">
<div aria-describedby="hint-text">...</div>

State(状態) は、要素の現在の状態を定義します。

<button aria-pressed="true">太字</button>
<div aria-expanded="false">メニュー</div>

PlaywrightがARIAを活用する理由

Playwrightでは、従来のCSSセレクタによる要素特定に代えて、ARIAのロールと名前による特定を推奨しています。

// CSSセレクタによる従来の方法
page.locator('button.submit-btn')

// ARIAロールと名前による方法
page.getByRole('button', { name: '送信' })

accessible nameとは

getByRoleの第2引数で指定する「name」は、accessible name(アクセシブルネーム) と呼ばれるものです。以下の優先順位で決定されます。

  1. aria-label属性(最優先)
  2. aria-labelledbyで参照された要素のテキスト
  3. 要素内のテキストコンテンツ
  4. title属性(フォールバック)
<!-- aria-labelが最優先 -->
<button aria-label="送信する">Submit</button>
<!-- accessible name: "送信する" -->

<!-- ボタン内のテキストも使われる -->
<button>送信</button>
<!-- accessible name: "送信" -->

inputの場合は関連付けられた<label>も考慮されます。

<label for="email">メールアドレス</label>
<input id="email" type="text">
<!-- このinputのaccessible name: "メールアドレス" -->

なぜこのアプローチが優れているのか

実装の変更に強い:クラス名やID変更の影響を受けにくくなります。CSSセレクタに依存したテストは、デザイン変更のたびに壊れがちです。

アクセシビリティの担保:テストが通るなら、スクリーンリーダーでも適切に認識されることが保証されます。

可読性が高い:テストコードが「何をしているか」が明確になります。button.submit-btnよりbutton { name: '送信' }の方が意図が伝わります。

同じ名前の要素が複数ある場合

実際のアプリケーションでは「削除」ボタンが複数行に存在する、といったケースがあります。

<tr><td>商品A</td><td><button>削除</button></td></tr>
<tr><td>商品B</td><td><button>削除</button></td></tr>

この場合、親要素で絞り込むことで対処できます。

// 親要素で絞り込んでからロケート
page.getByRole('row', { name: /商品A/ })
    .getByRole('button', { name: '削除' })

まとめ

こう見ると、ARIAベースのロケーターをやろうとすると、aria用のプロパティを使いたくなりそう。でも、そういうのを使わなくてできるだけ表現し、最終手段として使うようにとのこと。
しっかりアクセシビリティを意識したフロントエンド実装が必要という話なんだなと。

ARIAでテストが書きにくいと感じたら、それはそのUIのアクセシビリティに問題がある可能性を示唆していると。テスト自動化とアクセシビリティ改善を同時に進められる、この相乗効果こそがARIAベースのテスト戦略の本当の価値です。

参考リンク

Software Design 2月号

今月号は個人的に盛りだくさんな内容でした

Software Design (ソフトウェアデザイン) 2026年2月号

VibeCoding完全攻略

言葉の定義が難しい特集名をぶち込んできてくれました。

本誌で紹介されているのは、いわゆる「ノリとバイブスで作っていくぜ!」はうまくいかないので、AIにどうやって任せていくとうまくいきそうか?ということが記載されています。

基本的な流れを抑えつつ、AI駆動で進めようとした際に陥りがちな課題とそれに対する対応が書かれているので、なんとなく聞いていた内容を改めて学びなおす機会になりました。

実際にやろうとすると、うまくいかずに中途半端なものを途中で断念してしまったりするんですよね。。。
面倒くさくなって途中終了している個人プロジェクトがいくつか。。
これはどちらかというとAIの問題というよりは人の問題が多いところですが。

あらためて学ぶAmazon S3

こうやって改めてS3を見ていると、面白いサービスですね。
確かに、S3ってただのストレージというイメージだったのですが、いろいろなサービスがS3を用いている。
そして、DataWarehouseやDataLakeとしての利用とかもろもろ考えると、すごい基盤なんだな、と改めて考えさせられました。

S3VectorsやS3Tables、Icebergなんかは名前は知っていても実際には使ったことないですし。
IcebergなんかはSnowflakeでも取り上げられていて、Snowflakeのカンファレンスに足を運んだ際に名前を知ってざっくりと調べた記憶があったのですが、まさかここでまた名前を見ることになるとは!

とはいえ、正直なところ「S3 TablesはS3条のデータをApache Iceberg形式でテーブルとして管理する仕組みです」といわれてもピンとこない。。

うーん、この辺りはインフラ基盤チームやデータ基盤チームの領域なのだろうか。
アプリケーション側の人間としてはちんぷんかんぷんなところがあります。
でも、それはそれで悔しいのでちょっと調べてみたいところ。
この辺りを読んで理解を深めたい

猫でもわかるS3 Tables【Apache Iceberg編】再構成・加筆版 – Speaker Deck

Playwrightで実現するE2Eテスト自動化

使ったことがありませんでした。

いや、気にはなっていたんですよ。ただ、最近モバイルアプリのプロジェクトばかりが続いてしまっていて(言い訳)。

どうしても20年近く前にSeleniumがうまく動かなくていい印象が残っていないのですが、記事でも擬陽性や偽陰性に関してどういうアプローチをとっているのか?が書かれており、いつまでも昔を引きずるのはよくないな、と改めて感じた所存です。

申し訳ありませんでした。

特に気になったのは「WebサイトのHTML構造に依存しない要素の特定方法~(中略)~W3Cが提供するARIA Authoring Practices Guideで定義されたアクセシビリティ~」というところ。
さらっと書かれているけれど、どういうことなんだろう?と。

ARIA Authoring Practices Guide | APG | WAI | W3C

ARIAは上記ページで紹介されているのですが、ガイドラインのように見えて、それがなぜ要素の特定に寄与するという話なんだろうか?がちょっとよくわからず。
この辺りは継続して調べて理解したいです。

ARIAなんたら~ってのは聞き流しているだけになってしまっているmozaic.fmでもちょこちょこ聞く単語(ARIA notifyだった気がする)なのでこれを機会に学習できればと。

それ以外

正直それ以外にもLLMやPodmanの話などなど、盛りだくさん。
正直、毎月読んでいても自分の興味が薄いところは読み飛ばしてしまうのですが、今号はしっかり読みたいなと思う記事が多く、もうちょっと全部を読むのには時間がかかりそうですし、これまで読んだ内容に関しても理解しているレベルには全然到達できていないのですよね。

それでも一度ざっと読んでからかなぁ。
また、残りはどこかで紹介できればと思います。

日本三大湖マラソン

Xを見ていたらこんな話が

ハーフマラソンのジャパンプレミアムハーフといい、複数の大会で共同企画する動きが流行ってきているんでしょうか。
というより、マラソンブームで調子に乗ってあちこちで大会を作ったはいいものの、作りすぎて人が集まらなくなっているのでしょうか。。。

いずれにしても気になるところです。

琵琶湖マラソンのページにも書かれていますが、2026年の開催日は以下のようです

  • びわ湖マラソン3月8日(日)(例年3月第2週の日曜日)
  • かすみがうらマラソン兼国際ブラインドマラソン4月19日(日)(例年4月第3週の日曜日)
  • サロマ湖100kmウルトラマラソン6月28日(日)(例年6月最終週の日曜日)

びわ湖マラソンはすでにエントリー終了済み。
かすみがうらマラソンは通常エントリーが締め切り済みで料金加算のレイトエントリーが残っている。

そして、サロマ湖100㎞は。。。。なんと今日(1/26)からエントリー開始!!
うーん、サロマ。いいですね。。。
行きたいのはやまやまなのですが、今年はチャレンジ富士五湖も出ることを考えると、年1回程度と考えている宿泊RUNは、家族巻き込まないとって思ってしまいます。

いっそのこと北海道旅行を企画したほうがいいような気もしますが、開催予定の6/28は夏休みでも何でもない普通の週末なんですよね。
子供を連れていくのはまず無理です。

やるのであれば、びわ湖、かすみがうらを走ってから集大成としてサロマという流れが美しそう。そう考えると2027年に挑戦かな?

いずれにしても、いろいろな企画を立ててくれるのは楽しみが増していいですね。

横田基地お土産

先週、フロストバイトロードレースで訪れた横田基地では基地独自のお土産や屋台が出ていました。

昼食にはハンバーガーを。
ハンバーガーはこのブリスケットを売りにした店舗と外人バーガーの2店舗がありました。

こちらのお店はどうやら多摩にあるようですね。
B-YARD | 奥多摩エリア 駅近でバーベキューするなら

外人バーガーは基地の関係者が焼いてくれているようで、こちらのほうが横田基地ならではといいうこともあるのですが、ものすごい行列ができていました。。。

というわけで、今回はブリスケットを。
ブリスケットといえば、千葉にもお店があって食べた記憶があります。
薪を燃やした煙ですべてを調理していく燻製料理。かなりスモーキーな香り漂うものでした

T’s BBQ | ティーズバーベキュー

ちょっと写真じゃ伝わりづらいですが、ボリュームはそれなりにあります。

ステーキも売っており、値段もいい値段するのであまり人が並んでいませんでした

味付けはしっかりしていたおいしかったのですが、妻と娘には硬かったようで不評でした。。。

参加賞でいただいたトレーナーと、出店で売っていたTシャツ、タンブラーを購入。

後から気づいたのですが、購入したTシャツとタンブラーにはMarinesと書いてあって海軍のようです。
あれ?入り口にはAir Forceと空軍の記載があったのにな?と思ったのですが、米海軍の哨戒機や海兵隊の戦闘機が寄港・飛来することもあり、空軍のみならず、海軍や海兵隊も運用する共同の拠点として機能しているとのことでした。

もうちょっと早くいけばもっと色々手に入ったかな~?

横田基地では、フロストバイトロードレースとは別に、日米友好祭というものも毎年やっているそうで、今年は5月の予定みたいですね

在日米空軍 横田基地 日米友好祭2026 フレンドシップ・フェスティバル2026|2026年5月16日(土)・17日(日)|陸自調査団

こちらでは今回なかったような、航空イベントや航空機の展示などもしてくれているそうで、興味がある人には必見なイベントのよう。
子供たちがすきそうだけど、横田基地遠いんですよね~。

こういう、普段いけない場所でのイベントという切り口のマラソン大会。ほかにもあるのでしょうか。
考えてみるとアクアラインマラソンもそういう部類ですね。

いろいろと調べて、家族を誘っていってみたいと思います!

ランナーズ3月号

ランナーズの3月号が届いています。
読もうとしていて体調崩してたりとずるずるしてました。。

ランナーズ 2026年3月号

今月号では直近のマラソン大会レポートとして富士山マラソンも取り上げられていました。

富士山マラソン、私は2023年大会に出場したことがありますが、序盤に飛ばしすぎて後半。特に坂がきつくて完全にばててました。
そしてエイドでコッペパン丸ごと渡されて大笑いした記憶があります。
今大会は雨だったんですね。大変だ。

そして特集は勝負飯。
本誌ではうなぎに関して取り上げられていましたが、私はご飯が多いですね。
これといって決めているものがあるわけではないですが、ご飯をいつもより多めに食べることが多いように感じます。

そして当日の朝もおにぎりや団子、餅のようなもの。
うん、日本人ですね

そしてもう一つの特集として挙げられている本番一か月前のトレーニング。
何気にいいですね。

さいたまマラソンまで残り2週間。
ロング走を走るならば明日が最後かしら?まぁ、どこまでをロングとしてとらえるか・・によりそうですが。

ここ二回のハーフマラソンでは4:10秒台で走ることが出来ているものの、これを3時間キープできるかは正直難しく感じています。
とはいえ、それが出来ないとサブスリーは達成できないわけで、そう考えると今やるべきは本誌でいうところの25㎞マラソンペース走なのかもしれないと感じました。

いっちょ頑張ってみますかね

キングダム78巻

キングダムも気が付けば78巻。しかも今年で連載20年とのこと。
あっという間ですね

キングダム 78

いよいよ李牧との決戦が始まるわけですが、あまりにも決戦前の死亡フラグの多さに戦慄します。
このままじゃ誰も生き残らないのではないかと思えるくらいに秦・趙それぞれに死亡フラグが立ちまくっています

そして序盤から秦側での主要人物が討たれていく。。

これは。。。この戦い、意外と早く終わるのか、それともこれから数巻にわたって戦いが続いていくのか。今後の展開が楽しみです。

そして戦いが終わった後に誰が生き残っているものか。
戦い後の展開も含めて楽しみですね

HRVがどんどん悪くなる

ここ1か月ほどのGarminが測定しているHRVステータスは軒並み低い傾向にあります

このHRV高ければ身体的なストレスが低く、低ければ身体的ストレスが高いとのこと。
つまりは身体的なストレスが高いってことですね。

そういう意味で、直近の1週間はフロストバイトロードレースによる疲労と胃腸炎によるものから低くなってしまっているのだろうか。

12月と1月は何だろう?
そしてこれを正常値にするためにはどうすればいいんだろう。。。
いつもわからなくなります。

単純に休んでもあまり数字に影響しているように見えないんですよね。
ということは逆説的に考えると休めてないということなのだろうか。

正しく回復力を持った形での休息って本当、難しいと思います

悲しみの誕生日

昨日に引き続き、我が家は胃腸炎というか食あたりというか、なんというかダメな感じが続いています。
ただ、徐々に快方に向かってはいるのだけが救いです。

で、昨日は3男。今日は長女の誕生日だったんですよね~。
こんなこともあるものかと思いたくなるくらい、タイミングの悪い体調不良。
一応、ケーキを前にハッピーバースディの儀式はやったもののケーキを食べる気力のある人が半分くらいという悲しみの誕生日を送ることになってしまいました。

この埋め合わせは何とかしてあげたいところですが、まずは体調を戻さないといけません。

私も動けなくはないけれど、おなかの中がなんだか違和感を感じるような。。。
本調子にはなっていません

この二日、ランニングもお預け状態なので、明日こそは走れるようになってくれるといいのですが。。。

胃腸炎で倒れる

昨日の夜に妻が、深夜に次男、三男、長女と吐いて、最終的に私と長男も。。

なぞに次女だけは元気なのですが、残りの家族全員が胃腸炎にやられています。
なんか悪いものを食べたのでしょう。。。
数日前に食べたサーモンがちょっと変なにおいをしていたのでおそらくそれではないかと思います。

というわけで、今日はずっとベットの上で寝ている状態。
仕事は山ほど残っているというのに。。。
厳しい。。

今の感覚だと明日は復調していそうですが、久しぶりにここまで寝たきりになってしまいました。