【最強チャージャー決定戦】当たれ!当たれ!当たった!?【スプラトゥーン3】

 今宵のイベントマッチは「最強チャージャー決定戦」。ルールはガチヤグラ。タイトル通りチャージャー系統のブキしか使えない。

 自分は基本パブロを使っている。チャージャーなんてまさにパブロの対極のブキだ。初めて使うわけではないがほとんど使ったことはない。はたして当たるのか?楽しめるのか?勝てるのか?チャージャーとかいう超未知の世界に入門する。

 ブキは「リッター4K」にした。理由は全員チャージャーなら射程が長い方が有利では?と思ったからだ。ギアパワー?何それ?チャージャーのギアとかペナアップくらいしか知らない。

 動きがパブロなんよ。
 チャージャーの立ち回りとか全然知らないから癖でとりあえず突撃してしまった。自分をパブロと勘違いした哀れなリッター爆誕

 それにしても

 当たらねえ!!!!!!!

 着地も狩れない・・・だと・・・

 最初の数試合でやられまくったので「これギアはゾンビでいいのでは?」と思い、普段パブロで使ってるギアと同じにした。

 うわああああああ。ホップソナーとミサイルの波状攻撃。ここは地獄ですか?

 ひたすらピョンピョンパシュパシュしててかわいい


 とはいえ

 だんだん

 当たるようになってきた。
 多分リッターのチャージ時間が自分が思ってたより長かったんだと思う。最初の頃は最大までチャージしたつもりができてなくて撃ち損じすることが多かったけど、チャージ時間を把握してからは狙いを定めて撃ち抜くことができるようになった。

 それにしてもこの「最強チャージャー決定戦」、後から考えるとサブスペの選択が非常に重要だったのかもしれない。チャージャーが苦手なサブスペ持ちのブキを選ぶ人が多かったように感じた。皆さんちゃんと考えてブキを選んでいらっしゃる・・・

 普通にシールドが強い。シールド貼られるとチャージャーは何もできない。
 トーピードも強い。チャージャーはトーピードを壊すのが苦手だ。
 そしてグレートバリア。相手と距離をとって戦うことが多いチャージャーにとってこのスペシャルは最大の脅威となるだろう。

 「リッターじゃないブキにしようかな・・・」。そう思ったこともあった。ホップソナーはまだ使えるけど、トラップは正直あんまり使い所なかった。相手にパブロがいるなら後方警戒用に使えたりするんだけどね。でも、今回はメインで戦いたかった。やっぱり「最強チャージャー決定戦」と銘打っているのならメインの撃ち合いで雌雄を決したい。相手より先に撃ち抜く、相手の狙撃を回避して撃ち抜く、そういう駆け引きを楽しみたかった。

 西部劇のガンマン風に言うと・・・『ぬきな!どっちが素早いか試してみようぜ』というやつだぜ・・・・・・

 結果的にその思考が功を奏したというか、ひたすらリッターで撃ち抜くことを考えて戦った結果、命中率がかなり向上したと思う。5年間ひたすらパブロを振り続けたイカでも、1時間リッター触ればある程度当たるようになるんだなあ。まあ、もちろん実力にレートが追い付いただけなのかもしれないけど。

 今の自分はパブロじゃない。敵を倒すのに高台を降りる必要はない。

 いや、リッターなっっっっっっっが。まさか届くとは思わなかった・・・

 これもまさか当たるとは思わなかった。このブキ相手の動きが見える範囲なら近距離もある程度対応できるのか・・・ 今後リッター相手に正面から戦いを挑むのはやめようかな・・・

 着地相手に射線を隠す意味とは?クセになってんだ斜線隠すの

 パブロ辞めます。(嘘だよ。本当はパブロ大好きだよ。)

【自作ブログ】(2) - Strapi Rich text (Markdown)の改行の扱いがちょっと気になった

【前回】 【自作ブログ】(1) - StrapiをHerokuにデプロイする - のうらリリースノート

 記事本文を格納するフィールドとしてRich Text (Markdown)を選択しているが、改行の扱いが気になった。

 はてなブログMarkdown記法では編集モードで改行しても表示モードでは改行されない。改行させる手段はいくつかあるが、自分の場合同じ段落内で改行したいときは文末に半角スペースを2つ追加している。しかし、Strapiの管理画面でMarkdownを編集すると編集モードの改行と表示モードの改行が連動している。

 データベースを確認してみる。

strapi=# select title, content from articles;                                                                                       
   title    | content
------------+----------
 test title | # hoge  +
            | hogehoge+
            | fugafuga+
            |         +
            | piyo
(1 row)

 +ってなんだ。改行コードかな?Postgresよく知らない・・・

 REST APIからこのcontentフィールドを取得するとどうなっているのだろう?

% curl -s "http://localhost:1337/api/articles/1" | jq
{
  "data": {
    "id": 1,
    "attributes": {
      "title": "test title",
      "createdAt": "2024-01-20T05:52:39.336Z",
      "updatedAt": "2024-01-24T13:38:30.683Z",
      "publishedAt": "2024-01-24T13:20:50.178Z",
      "content": "# hoge\nhogehoge\nfugafuga\n\npiyo"
    }
  },
  "meta": {}
}

 あーやはり改行コードが入っているようだ。Markdownでは\nでは改行されないはずだが、クライアントサイドで取得した場合はどうなるんだろう。フレームワークやライブラリによるのかな。勝手に改行してくれる?
 将来的にCMSとクライアントサイドと連携するときに「あれ!?改行されない!?」みたいなことが起こるかもしれない。まあ、そのときは最悪\n<br>に変換する処理とかを何処かでつければいいからそこまで問題ではないかな。

【マーベルズ】オタクの最高到達点かな?【映画感想】

 観たのは去年末だったが一応軽く感想を残しておこうと思う。

 まずは登場人物をおさらいする。

  • キャロル・ダンヴァース: 最強の女。キャプテン・マーベル。エンド・ゲームの登場シーンが最高にかっこいい。
  • モニカ・ランボー: うーん、どんなキャラクターか忘れてしまった。指パッチンから復活した時に病気の母親探すシーンが回想に出てきた時にちょっと思い出したかも。この人のお母さんがキャロル・ダンバースと仲良かったよね、確か。いつあのすり抜け能力手に入れたの?
  • カマラ・カーン: Disney+でミズ・マーベル見たので知っている。キャプテン・マーベルに憧れる女の子。キラキラした結晶状の物質を作り出す能力を持つ。心も体も子供。

 本作を観るなら事前にDisney+で「ミズ・マーベル」を観ておくべきだろう。

 ミズ・マーベルは「自室にいたカマラが消え、同じ場所にキャロル・ダンヴァースが現れる」という展開で終わる。いわゆる入れ替わりだ。マーベルズではこの入れ替わり現象がモニカも含めた3人に発生している。
 文字通りの入れ替わり立ち替わりの戦闘シーンはなかなか良かった。テンポが良かったし、場面は次々と変わるけど特に混乱することもなかったね。

 船のクルーが次々と猫に喰われていくシーンは笑った。音楽も映像もパニックホラーなんだけどやってることは普通の人助けというギャップが面白い。あそこが一番面白かったな。

 あとは3人の関係性も序盤と終盤ではだいぶ変わっていたよね。年齢や経験も全然違うと思うけど、上下関係のない友人関係みたいになっていた気がする。最初カマラはキャロル・ダンヴァースに強い憧れを抱いていたけど、共に過ごす時間が増えるにつれキャロル・ダンヴァースのヒーローではない一面を知ることでより距離が近くなったようだ。オタクの最高到達点かな?

 さて、いつものマーベル映画と同じように最後にそれっぽい伏線を投げて終わった。風呂敷広げすぎでは?ちゃんと回収する気あるんでしょうね?
 モニカは別のマルチバース世界に飛ばされたようだ。自身の世界では死んだ母親が自身の母親ではない立場で生存していた。そしてその隣には青い獣人間がいた。確か彼は「ビースト」と呼ばれるミュータント、X-MENシリーズに登場する特殊能力者だ。マーベル映画は少し前から軽くX-MENを匂わせる描写が増えてきている。そろそろがっつりと物語に絡んで欲しいものだ。
 カマラの方は弓を携えた少女を勧誘していた。詳しくは知らないがあれはホーク・アイの娘?女性メンバー限定アベンジャーズでも作るつもりなのか?となるとシー・ハルクも絡んできそうでそれはそれで楽しみだ。

 映画としてはヒーロー映画の王道を貫いていて面白かった。ただMCUとしては今後どうなるのか気になるところではある。X-MENの合流、MCUファンタスティック・フォー、色々楽しみな要素はある。フェーズ5について調べているときに「ロキ シーズン2」をまだ見ていないことを思い出した。とりあえずDisney+の再契約してドラマを再び追いかけようかと思う。

【自作ブログ】(1) - StrapiをHerokuにデプロイする

 前々から自分でブログシステムを構築したいと思っていた。
 はてなブログを始めたのはブログというアウトプットが自分に向いているのかどうかを確かめるためだ。そして一年以上はてなブログを続けてある程度ブログを書くという習慣はついたように思える。
 そろそろ最初の夢を追いかけても良いだろう。あと、もっとtechカテゴリーを増やしたい。

 最初はちゃんと全体の構成を考えて、開発環境と本番環境も事前にきっちり準備して、CI/CDももちろん用意するつもりだったけど、それすると一生設計する気がした、というか実際ずっと頭の中で考えてなかなか手を動かせなかったので、もうとりあえずデプロイするかってなった。

 CMSの方をどうするか色々考えたがStrapiを利用することにした。


プロジェクト作成

 さて、Strapiプロジェクトを作成する。Quick Start GuideによるとNode20をサポートしているようだ。Node20のDockerイメージをpullしてコンテナ上でcreate-strapi-appコマンドを実行する。

% docker container run --rm -it -v $PWD:/tmp/strapi -w /tmp/strapi/ node:20.10.0 npx create-strapi-app@4.16.2 <application name> --typescript
Need to install the following packages:
create-strapi-app@4.16.2
Ok to proceed? (y) y
? Choose your installation type Custom (manual settings)
? Choose your default database client postgres
? Database name: strapi
? Host: 127.0.0.1
? Port: 5432
? Username: admin
? Password: ********
? Enable SSL connection: No

Creating a project with custom database options.
Creating a new Strapi application at /tmp/strapi/<application name>.
Creating files.
Dependencies installed successfully.

Your application was created at /tmp/strapi/<application name>.

Available commands in your project:

  yarn develop
  Start Strapi in watch mode. (Changes in Strapi project files will trigger a server restart)

  yarn start
  Start Strapi without watch mode.

  yarn build
  Build Strapi admin panel.

  yarn strapi
  Display all available commands.

You can start by doing:

  cd /tmp/strapi/<application name>
  yarn develop

npm notice
npm notice New patch version of npm available! 10.2.3 -> 10.2.5
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.2.5
npm notice Run npm install -g npm@10.2.5 to update!
npm notice

 最終的にHerokuにデプロイしようと考えていたので、データベースにはPostgresを選択した。

 まずローカル環境(PC)においてDockerで動作確認する。
 docker-compose.yamlを用意。DB用のコンテナとAPI用のコンテナを起動する。

% cat docker-compose.yaml
version: '3'
services:
  postgres:
    image: postgres:15.5
    container_name: 'db'
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: password
      POSTGRES_DB: strapi
    volumes:
      - ./db/data:/var/lib/postgresql/data
  app:
    image: node:20.10.0
    container_name: 'app'
    ports:
      - 1337:1337
    volumes:
      - ./:/tmp/strapi/
    working_dir: /tmp/strapi
    tty: true
    depends_on:
      - postgres

 DB用ディレクトリも作成する。

% mkdir -p db/data

 .envファイルを修正。DATABASE_HOSTpostgresに修正してAPI用コンテナからDB用コンテナに接続できるようにする。

...
# Database
DATABASE_CLIENT=postgres
# DATABASE_HOST=127.0.0.1
DATABASE_HOST=postgres
...

 コンテナを起動。

% docker-compose up -d
[+] Running 3/3
 ✔ Network xxx_default        Created                                                                                                                                                                                                           0.1s
 ✔ Container xxx-postgres-db  Started                                                                                                                                                                                                           0.5s
 ✔ Container xxx-app          Started                                                                                                                                                                                                           5.2s

 API用コンテナにログインし、npm run developを実行する。

% docker-compose exec app /bin/bash 

root@67d28cb267ce:/tmp/strapi# npm run develop

> xxx-strapi@0.1.0 develop
> strapi develop

✔ Cleaning dist dir (19ms)
⠋ Building build context
[INFO] Including the following ENV variables as part of the JS bundle:
    - ADMIN_PATH
    - STRAPI_ADMIN_BACKEND_URL
    - STRAPI_TELEMETRY_DISABLED
✔ Building build context (323ms)
✔ Creating admin (15750ms)
⠦ Loading Strapi[2024-01-07 03:00:05.219] info: The Users & Permissions plugin automatically generated a jwt secret and stored it in .env under the name JWT_SECRET.
✔ Loading Strapi (5234ms)
✔ Generating types (510ms)
✔ Cleaning dist dir (14ms)
✔ Compiling TS (4581ms)

 Project information

┌────────────────────┬──────────────────────────────────────────────────┐
│ Time               │ Sun Jan 07 2024 03:00:10 GMT+0000 (Coordinated … │
│ Launched in        │ 10332 ms                                         │
│ Environment        │ development                                      │
│ Process PID        │ 341                                              │
│ Version            │ 4.16.2 (node v20.10.0)                           │
│ Edition            │ Community                                        │
│ Database           │ postgres                                         │
└────────────────────┴──────────────────────────────────────────────────┘

 Actions available

One more thing...
Create your first administrator 💻 by going to the administration panel at:

┌─────────────────────────────┐
│ http://localhost:1337/admin │
└─────────────────────────────┘

 ブラウザからhttp://localhost:1337/adminにリクエストする。  上記のようにユーザ作成画面が表示されるので適当なユーザを作成しログインする。
 ブログ用のCMSを想定しているのでとりあえずArticleモデル(Collection Type)を作成してみる。  Collection Typeについては下記を参照。


 記事の内容用のcontentフィールドも追加した。  適当な記事を一つ作ってみる。

データベース確認

 データベースの方はどうなっているのか確認してみる。
 テーブル一覧は下記

strapi=# \dt
                           List of relations
 Schema |                     Name                      | Type  | Owner
--------+-----------------------------------------------+-------+-------
 public | admin_permissions                             | table | admin
 public | admin_permissions_role_links                  | table | admin
 public | admin_roles                                   | table | admin
 public | admin_users                                   | table | admin
 public | admin_users_roles_links                       | table | admin
 public | articles                                      | table | admin
 public | files                                         | table | admin
 public | files_folder_links                            | table | admin
 public | files_related_morphs                          | table | admin
 public | i18n_locale                                   | table | admin
 public | strapi_api_token_permissions                  | table | admin
 public | strapi_api_token_permissions_token_links      | table | admin
 public | strapi_api_tokens                             | table | admin
 public | strapi_core_store_settings                    | table | admin
 public | strapi_database_schema                        | table | admin
 public | strapi_migrations                             | table | admin
 public | strapi_release_actions                        | table | admin
 public | strapi_release_actions_release_links          | table | admin
 public | strapi_releases                               | table | admin
 public | strapi_transfer_token_permissions             | table | admin
 public | strapi_transfer_token_permissions_token_links | table | admin
 public | strapi_transfer_tokens                        | table | admin
 public | strapi_webhooks                               | table | admin
 public | up_permissions                                | table | admin
 public | up_permissions_role_links                     | table | admin
 public | up_roles                                      | table | admin
 public | up_users                                      | table | admin
 public | up_users_role_links                           | table | admin
 public | upload_folders                                | table | admin
 public | upload_folders_parent_links                   | table | admin
(30 rows)

 色々あるけどarticlesテーブルが先ほど作ったContent Typeだろう。
 テーブル定義はこちら

strapi=# \d articles
                                           Table "public.articles"
    Column     |              Type              | Collation | Nullable |               Default
---------------+--------------------------------+-----------+----------+--------------------------------------
 id            | integer                        |           | not null | nextval('articles_id_seq'::regclass)
 title         | character varying(255)         |           |          |
 created_at    | timestamp(6) without time zone |           |          |
 updated_at    | timestamp(6) without time zone |           |          |
 published_at  | timestamp(6) without time zone |           |          |
 created_by_id | integer                        |           |          |
 updated_by_id | integer                        |           |          |
 content       | text                           |           |          |
Indexes:
    "articles_pkey" PRIMARY KEY, btree (id)
    "articles_created_by_id_fk" btree (created_by_id)
    "articles_updated_by_id_fk" btree (updated_by_id)
Foreign-key constraints:
    "articles_created_by_id_fk" FOREIGN KEY (created_by_id) REFERENCES admin_users(id) ON DELETE SET NULL
    "articles_updated_by_id_fk" FOREIGN KEY (updated_by_id) REFERENCES admin_users(id) ON DELETE SET NULL

 created_atとかupdated_atはデフォルトで作成されるようだ。
 先ほど作成した記事も見てみる。

strapi=# select id, created_at, updated_at, published_at, title, content from articles;
 id |       created_at        |       updated_at        | published_at |   title    | content
----+-------------------------+-------------------------+--------------+------------+----------
  1 | 2024-01-20 05:52:39.336 | 2024-01-20 05:52:39.336 |              | test title | # hoge  +
    |                         |                         |              |            | hogehoge
(1 row)

 まだ下書きのままだからpublished_atは空だ。記事内容がそのままcontentカラムに格納されていることがわかる。

Herokuにデプロイ

 上記ページに従い作業すればデプロイできる。特に詰まるところはなかったかな。
 前はHeroku無料枠があったけど無くなっちゃったみたいだね。まあ、他のクラウドサービス使ってもどのみちお金はかかるし、Herokuへのデプロイドキュメントがしっかりと用意されているからデプロイ先の見直しはしなかった。ただ一番安いプランにした。  PostgresプラグインはMiniプラン。
  https://devcenter.heroku.com/articles/heroku-postgres-plans#essential-tier

 dynoはEcoプラン。
  https://devcenter.heroku.com/articles/eco-dyno-hours
 Ecoプランはしばらくアクセスがなかったらスリープしちゃうみたいだね。スリープした状態でアプリケーションにアクセスすると表示されるまでに少し時間かかる。

 このように本番環境ではContent Typeを更新することはできない。更新したいときは開発環境で起動したUIから操作し、本番環境に反映する必要がある。


 とりあえず今回はここまで。次何するかは決まっていない。タイトルはナンバリングしているけど(2)が本当に作成されるかも怪しい。まあ、ここで終わるとただHerokuにスパチャしているだけになるので何かしら使えるものを作っていきたいと思う。

【次回】 【自作ブログ】(2) - Strapi Rich text (Markdown)の改行の扱いがちょっと気になった - のうらリリースノート

【スプラトゥーン3】金網のパブロは強い【FrostyFest】

 スプラトゥーン3 2024年最初のフェスは「FrostyFest」。自分がフレンドとプレイしたいがためにスプラトゥーン3を無理やりプレゼントしたら無事ハマってくれたフレンドと一緒に「仲間とわいわい」派で参戦した。

 自分はパブロ、フレンドは金モデを使うので塗りはフレンドに任せて自分はひたすら敵に突っ込むプレイを目指した。

 おっと─────────

 やられたらやり返す!!!!!

 今回のトリカラマッチの舞台は「タカアシ経済特区」。特徴はステージ中央を十字に走る金網の橋。そして金網といえばパブロだ。ご存じの通りパブロは筆移動をすることで金網上を素早く進むことができる。

 金網を走り抜けて相手に近づきキルすることが多かった。射程も与ダメージも最弱なパブロにふさわしい姑息な戦略である。

 あー、敵視点だとこんな感じなのか。

 最初に言ったようにフレンドは金モデなので、攻撃陣営の時はナイスダマに合わせてシグナル取りに行けたらいいね、とか話してたけど意外と難しかった。自分が塗らずにバトルばっかしてるせいで、ナイスダマが溜まったタイミングでデスしてたりステージ端にいることが多かったからかな。

 でもたまにうまくいった。決まると楽しいね。

 さて、トリカラマッチといえば攻撃側の立ち回りがよく話題に上がると思う。つまり「同じ攻撃側だがフェス陣営が異なるイカは味方なのかどうか」という問題である。まあ、これについてはいろんな意見があるだろう。どれが正しいとか正解とかも人それぞれだと思う。
 自分の意見としては優先順位は「攻撃側の勝利 > 自陣営の最多塗り」である。だから、異なる陣営でも同じ攻撃側なら攻撃は避けるし、もし「異なる陣営側」が先にシグナルを確保したら「異なる陣営側」の塗りは消さずに防衛側の塗りを上塗りするような立ち回りを心がけた。もちろんその上で自陣営の勝利を目指す、という気持ちを持ちながらプレイをしていた。一番避けるべきは「攻撃陣営同士が争った結果防衛側が勝利する」ことだと思う。

 もちろん同じ攻撃陣営から攻撃を受けることもある。
 ただ個人的にはこの「意思疎通ができない攻撃判定がある味方とどう協調するか」っていう状況は結構好きだ。普段のナワバリやバンカラでは当然敵との駆け引きが存在するが、味方との駆け引きはトリカラでしか味わえない。

 時にはこのように互いに味方を攻撃しない平和な世界を見ることができる。この時は心のナイス連打しました。

 金網以外でも「ここパブロ強いなあ」と感じたポジションはいくつかあった。

 やっぱり段差下は強いね。イカ速もうまく機能している気がする。

 

 あ、ウルトラハンコってウルトラチャクチを狩れるんだ。しかもウルトラチャクチって後方の攻撃範囲が小さいからそのまま進めば自分も生き残れる。

 そういえば最初にチャージャーに撃ち抜かれたのって

 ジャッジくん!リクエスト!!リクエストお願いします!!!

音楽系Vtuberって結構たくさんいるんだね

 年始のぶいあーるを聴いた。ぶいあーる自体初めて聴いた。すいちゃんがレギュラーやってるラジオがあること自体は知っていたけど、今まで特に機会がなくて聴いたことなかった。
 ギルザレンⅢ世がちょっと気になったんだよね。顔と名前は知ってた。にじさんじ所属のVtuberで配信頻度が極端に低い強面な人(人?)って認識だった。

 ギルザレンってこんな声してるんだね。てっきり落ち着いた方かと思っていたけれど、結構テンション高めのなんというか、ギャルみたいな感じだった。しかも、こんなにVtuber楽曲に造詣の深い方とは思わなかった。

 チャンネルホームの動画は何ヶ月前だの何年前だのばっかりだけど

 再生リストは普通に本日更新してて笑った。なるほどね、そういう感じの活動をされているVtuberなのね。VtuberYouTubeでの活動って基本配信や動画だと思ってから、割と目から鱗だった。別に全然ありやな。
 逆にこのプロフィールでよく今までぶいあーるに出演しなかったな。いや、今回のラジオを聴いた感じギルザレンがレギュラー出演すると多分1時間に収まらない気がする。
 そして再生リストの動画量が半端ない。というかロリ神の後に600曲近く追加されてるの!?ロリ神ってめちゃくちゃ直近ってわけではないけど、それでもまだ記憶に新しい曲だぞ。それくらいたくさんVtuberのオリ曲・歌ってみたが生まれているということか。いや全然知らなかった。

 全部は聞けてないけどラジオで紹介された曲動画をいくつか聴いた。

 月ノ美兎にじさんじ所属で有名だし名前と顔は知ってた。動画は初めて見たかも。何度も聴いてみたくなる。本家のMV再現してるなってことは本家知らなくても伝わった。独特の世界観だ。

 「えのぐ」は名前も顔も声も初めて知った。超正統派アイドルだ。ライブ映像のクオリティ高いな!

 そして、びしょパイ。まあ、そうだよね。自分がホロライブ見始めた時はひたすらAhoy聴いていたことを思い出した───

 YouTubeが視聴履歴から学習したようで、ちょいちょい知らないVtuberの歌動画を出してくるようになった。いい時代になったものだ。2024年末に個人的推しVtuber楽曲をまとめられるといいね。ホロライブ一色になるかもしれないし、新たなVtuberを発見できているかもしれない。

 今の所これかな。REACH THE TOP!!!

 アーカイブは明日まで───

春の七草を1月8日の昼に食べてもいい

 スーパーに春の七草が売られているのを見つけるまで春の七草のことをすっかり忘れていた。見つけたのは1月7日の夕方。夜食べるのもなんかアレな気がしたので、とりあえず買って次の日に食べることにした。
 食べると言ってももちろん生でムシャムシャするわけではない。七草粥にして食べる。

 調理する前にふと「どれがどれなんだろう」という疑問が頭をよぎった。去年は何も考えず全部鍋に突っ込んだ気がする。せっかくなので画像検索で調べながら名前と見た目を一致させてから調理しようと思いたった。いやあ、空腹の時にするようなチャレンジじゃなかったね。

すずな
すずしろ

 すずなすずしろは流石にわかる。あ、あってるよね・・・

 続いて根のある3本の草を見分ける。

せり?
 これがせりかな?根が広がっているところが他と違う。
なずな?
 これがなずな・・・ですか?大根の葉っぱに似ているらしい。いや、葉っぱが大根に似てますと言われてもそもそも大根の葉っぱそんな知らんし。そもそも本体が大根に似てる七草が他にあるのに、葉っぱだけ似せられてもちょっと個性弱くないですか?
ほとけのざ
 というわけで残りの根っこあり草がほとけのざ

 しかし、ごぎょうが全然わからない。
 葉っぱに産毛が生えているらしいけど、はこべらとの違いが全くわからなかった。もう10分くらいずーーーーーーーっと見比べてた。え?ほんとにごぎょう入ってる?実は入ってないって言われても野草素人には分かりませんよ。

ごぎょう・・・?
 まあ多分これがごぎょうかな・・・
はこべら?
 こちらがはこべら  横に並べるとなんか葉っぱが違う感じした。

 さて、ようやく作れる。  七草を塩茹でして  適当なサイズに切る。  ご飯を茹でて  七草を投入。
 塩で味を整えて  出来上がり。

 うん、美味しい。なんで1年で1日しか食べないんだろう。3ヶ月に1回くらい食べてもいいのに。材料買ったのは夕方だったけど結構売れ残ってた。もしかしたら次の日も売ってたりしたのかな。

 正直春の七草についての文化的知識は全くないけど、一年に一度の味、楽しめました。