技術と魚

雑感と備忘録

Coq再入門 - SetとProp

Coqにおける Set, Prop は(型の型(=種類)的な意味で) sort という。ともにbuilt-in Setはプログラムやデータ型のためにある Propは証明や命題のためにある # Set Prop アトミックな項 Program, データ Proof 証明 型 Specification, データ型 Proposition 命…

プロダクトのコアとは何であるか

プロダクトの優先度決めの議論はたいてい人類にはまだ早いんだけど、たいてい行き着く先として、「うちの製品のコアをどっちとするかによって話変わるよね?」とかいう話にはなるなと、何度も繰り返して思った。 コアのことは、状況によっては秘伝のタレとか…

なぜブランチを「切る」と言うんだろうか?

Gitで新たにブランチを作るとき、ブランチを「切る」と言う。しかし、やっていることはむしろ「生やしている」のだから、真逆と言ってもいい。もしも英語で "cut a branch" などと言ったら、「お前の作業ブランチは切り落として無かったことにしろ!」になっ…

選択的夫婦別姓に関して毎日新聞様の取材を受けました

毎日新聞の畠山記者に取材をいただきました。(会社ではなく、改姓当事者として選択的夫婦別姓に関して) mainichi.jp ところで一部の方には申し遅れましたが、私は結婚時に改姓しておりますので、戸籍上は水上ではございません。 改姓するのは現在96%が妻、…

SNSと技術の夢、陰謀論

僕が小〜中学生の頃、インターネットというと個人サイトやチャットでワイワイやるのが主目的でして、エンジニアとしての原点を感じています。ところで、昔チャットで、「七色に輝く中国の河川」とか「2つの頭を持つ牛」とか、いわゆる中国の環境汚染の実態…

ON CONFLICT句で部分的に更新しようとしてviolates not null constraintと出てしまって困った話

(Postgresでの話) 以下の様にテーブル上に非NULL制約のあるテーブルで、INSERT ~ ON CONFLICT ~ DO UPDATE を使って部分的に更新しようとすると、エラーになってしまう。 CREATE TABLE test (id int PRIMARY KEY, nnv int not null, upd int); INSERT INTO t…

AWSで独自ドメインへのメールをSES→S3で受け取るterraformの最小設定

備忘のため。 前提 東京リージョンは2021年1月現在、SESでの受け取りに対応していません。下記は us-east-1 で設定。 tfファイル全体 # account idを取得するためにcaller identityのdataを用意 data "aws_caller_identity" "current" {} # # Route53 # # zo…