2022/4/10-11

だらだら過ごしつつ、休学に関する知見をまとめたりサーバをいじったりTwitterを見たりしていた。

そろそろ時間を決めずに作業するの飽きてきた。どう戻そうかな。


メールサーバを構築した。Postfix+Dovecot+MariaDBによる構成。

当初はPostfix+Dovecotによる構成にするつもりだったのだが、MySQLを組み合わせられるらしいということをたまたま知ったので試してみた次第。MySQL以外にもPostgreSQLやSQLiteなどのデータベース、あるいはLDAPなどをユーザー管理のバックエンドとして使えるらしい。なお、受信したメールがDBに保存されるわけではない。そこは普通にmboxやMaildir形式で保存される模様。

設定ファイルで使用するSQLクエリとかを指定出来て結構カスタマイズ性が高く、アドレス管理アプリを自作して連携するといったことも出来そうだった。逆に言うとテーブル構造とか発行するクエリとかを自分で指定しなければならないという話でもあり、そういう面では明らかに面倒くさくはある。

とりあえずメールの受信とIMAPログインしての受信メール確認は出来るようになった。とりあえず受信口としての機能は揃ったものの、設定が変なのか、どうもメールを送ろうとするとエラーが出る。明日時間があったら設定を見直してみるか。そういえばspfレコードとかもまだ設定してないな。

参考にしたのはこのへん。

https://www.ipentec.com/document/software-postfix-dovecot-mariadb-mail-server-postif-configuration

https://centossrv.com/postfix.shtml

https://qiita.com/bezeklik/items/438eadbdb06672f3c3b6


解いた競プロの問題。

ARC138-A 自力AC。

先頭K項の中、もしくは後ろのN-K項の中で入れ替えている限りはsの値は変わらない。sを1以上大きくするためには、先頭K項の中から項を1つ持ってきて、後ろN-K項の中からそれより大きい値を1つ持ってきて、両者を境界部まで寄せて入れ替える必要がある。これにかかる操作回数は、動かしてみれば分かるが、単純に添え字の値の差で求まる。

ということで先頭K項に含まれる項$a_i$と後ろN-K項に含まれる項$a_j$の中で$a_i<a_j$なる組み合わせを探し、$j-i$の最小値を求めればよい。愚直にやれば$O(N^2)$だが、RMQや累積minを使えば$O(N\log N)$になる。

最初セグ木によるRMQで実装したらバグり散らかした。原因は単純で、t.update(i, val)t[i] <- valではなくなぜかt[i] <- min(t[i], val)と勘違いして実装してしまっていたからだった。こんなくだらない理由に気付くのに数時間費やした。

ARC138-B 自力AC。

逆操作をして空文字列に辿り着けるかどうかを考える。

  • 逆A: 先頭が0のときのみ行える。先頭を一つ消し、0と1を反転させる。
  • 逆B: 末尾が0のときのみ行える。末尾を一つ消す。

順に考えていく。

先頭が1のとき、逆Aは出来ないし逆Bをしても無駄だと分かる。逆Bをいくらしたところで先頭が1であることは揺るがず、最後に必ず一個以上の1が残るからだ。この場合は即不可。

末尾が1のとき、逆Bは無理だと分かる。なので逆Aをする。

末尾が0のとき、逆Bをする。先頭が0で末尾も0ならば逆Aも逆Bも出来る状態となるが、一度逆Aをかけると逆Bは出来なくなる。再び逆Aをすればまた逆Bが出来るようになるが、その保証はない。末尾の0はとれるときにとって損はないことが多分証明できる。

これで判定すればAC。アドホックな考察を求められる問題だった。


摂取したコンテンツ。

かなりヤバイ話が出ていた。PHPerKaigiの他のスライドも面白そうなので見ておこうかな。

「恋のから騒ぎ」のbgmを調べたら出てきた。テレビ番組をあまり興味を持って見ることはないが、BGMはなんだかんだ耳に残っているものが多く、ふと耳に入るとそういえば原典はどこなんだろうと気になることがある。

たまたま見かけた良記事。

https://qiita.com/omiita/items/1735c1d048fe5f611f80

文化を感じた。

https://anond.hatelabo.jp/20220409133020

Categories: