私が歌川です

@utgwkk が書いている

GW2日目

やや二日酔い気味だった。あまり食欲がないけど何か食べないと力尽きると思って、ホテルを出て富士そばを食べる。雑な蕎麦という感じで東京っぽい (?)。

幕張メッセに行ってニコニコ超会議2022を見てきた。目当てのコンテンツは1つだけだったけどせっかくなのでいろいろ見て回った。ボカロエレクトロのDJがかなりよかった。やはり低音と大きな音が鳴っていると嬉しくなる。なんだかんだでニコニコ動画のコンテンツを見て育ってきた世代なので、何らかの感慨があるような、そうでもないような。

歩きまくった結果めちゃくちゃに疲れたけどなんとか東京に帰った。あとで見返すと1日で25000歩歩いていた。

京葉線を乗り過ごして、期せずして東京駅で乗り換えることに。動く歩道がなかったらまあまあの距離を歩かされることになって終わっていたと思う。

夜は池袋に行って飲み会。マンション購入にはまだそんなに興味がないな、と思った。とはいえ部屋が綺麗で広いとよさそう。

GW1日目

雨が降る前に上京したら、東京はちょうど雨が降りはじめるところだった。

ミチミチパイモンの人形があったドンキに再び行くと、まだ原神グッズコーナーが残っていた。大陸から輸入したものを売っていて、こっちで入手するのは大変なのでありがたい。ごはんにつかまり立ち赤ちゃんフィギュアを買った。

本人はいなかった。小冊子をもらって帰る。

夜は就職して上京した友だちと飲みに行った。一人あたりの支払い額が5000円を超えてもまあそういうものかと思ってきたけど、冷静に考えるといろいろ飲みまくっていて、飲みすぎなのではないか。

意識してゆっくり喋る

ふだんの会話でも、登壇するときでも、すごく急いでいるということがないならゆっくり喋るように心がけている。他の人から見て (聞いて?)、実際にゆっくり喋っているように感じられているのかはまた別だけど、自分の中では急がないように発話している、というイメージ。聞く側に立ったときも、早口でまくし立てられるよりはのんびりしている方が聞き取りやすい。リモートワーク中心の時代では聞き取りやすさが命になってくるので、突き詰めると最高のマイクを買うべし、という話になるのだと理解している。

早口で喋ると、思考に言葉が追い付かなくて詰まる感じがある。じゃあタイピングはどうなのかというと、こっちは言葉がスラスラ出てくるので指の動きに律速されることもある。メカニズムが違うのだろう。あるいは文字情報と音声情報とで語彙が違うとかだろうか? 誰か仕組みを知ってたら教えてください。

nginxのaccess_logとerror_logのログファイル名に変数を使えるかどうか

tl;dr

access_log には変数を使えるけど制約が多い。error_log には使えない。ホスト名の数だけ server directiveを列挙した方が早そう。

nginx 1.21.1 で確認した。

変数を使えるかどうか

表題のことが気になったので調べた。部内k8sクラスタにアプリケーションをデプロイする際に、ホスト名を列挙するだけで同じようなnginxの設定を反映できるようにしたい、そしてアクセスログやエラーログをホスト名ごとに分けたい、という経緯である。つまり以下のように書けるとありがたい。

server {
  listen [::]:443 ssl http2;
  server_name host-a.example.com host-b.example.com;

  access_log /var/log/nginx/$host.access.log main;
  error_log  /var/log/nginx/$host.error.log;

  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://upstream;
  }
}

access_log

http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log を見ると、ファイル名に変数を使うことができるように読める。ただし制約がいろいろある。とくに、nginxを動かすuserがログファイルの出力先ディレクトリに書き込み可能でなければならない、という制約に引っかかった。/var/log/nginx の所有者が root:root で、パーミッションが700のときに、nginxを www-data userなどで動かしているとアクセスログが出力されない。

error_log

http://nginx.org/en/docs/ngx_core_module.html#error_log を見ると access_log とは違って変数に対する言及がなく、使えなさそう。実際、先述のようなnginx.confを反映したら /var/log/nginx/$host.error.log というファイルができていた……。

最終的にどうしたか

ホスト名を列挙しておいて、ホスト名の数だけ server directiveを展開するようにした。具体的には、以下のようなitamae recipeを反映した。

node.reverse_merge!(
  nginx_hosts: %w[
    host-a.example.com
    host-b.example.com
  ],
  # 中略
)

template '/etc/nginx/conf.d/multiple-hosts.conf' do
  owner 'root'
  group 'root'
  mode '0644'
  notifies :reload, 'service[nginx]'
end

templates/etc/nginx/conf.d/multiple-hosts.conf は以下のような内容になっている。

<% node[:nginx_hosts].each do |host| -%>
server {
  listen [::]:443 ssl http2;
  server_name <%= host %>;

  access_log /var/log/nginx/<%= host %>.access.log main;
  error_log  /var/log/nginx/<%= host %>.error.log;

  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://upstream;
  }
}
<% end -%>

洗濯機の給水ホースを取り付けなおしてもらってから、洗濯物の乾きがよくないな、洗濯物を詰め込みすぎてはいないと思うけどそれでも乾きが悪いな……と思っていたけど、原因は別のところにあった。漏水が怖いのですすぎ洗いが終わった段階で蛇口の栓を締めるようにしていたけど、それがよくなかった。乾燥中も蛇口は開けておかないといけない。

● 蛇口が開いていないときも乾燥できずに終わります。(水冷除湿式です。蛇口は必ず開いてください。蛇口を開かずに運転しても、お知らせしませんのでご注意ください)

panasonic.jp

山科の巨大無印良品にはこの世が詰まっている

前日に飲酒しまっくてクタクタだけど8時に目が覚めて、フィットボクシングをやった後、夕方までの予定を考える。

そういえば無印良品週間が始まったし、せっかくなので山科にあるという巨大な無印に行ってみよう、ということで決まった。

shop.muji.com

駅に着いたのでATMを探してショッピングセンターに入って、適当なスーパーを通過していると思ったら実はそこが無印だった。お金をおろしてからラーメンを食べようと思っていたけど、無印はもう始まっていたのだった。早速の洗礼である。

昼食を済ませてから、巨大な無印の一部に取り込まれることを決める。まず店舗が広い。歩き疲れてしまう。ベッドやソファに座れなかったらただちに終わっていたと思う。

ちょっと旅行する予定があるので、小さなスキンケアセットとポーチを買った。そこからは永遠とも思われるウィンドウショッピングをする。

地下のスーパーコーナーも見て回ってみたところ、なんと店内で寿司を食べられる。無印と寿司、近いようで遠い概念同士が邂逅したのであった。ビールコーナーがやけに充実していて、家の近くにも欲しくなる。

山科の巨大無印良品にはこの世が詰まっている。間違いなくそう思った。今はネットストアを物色している。