私が歌川です

@utgwkk が書いている

独自ドメインブログになった

このブログを独自ドメイン https://blog.utgw.net/ で配信するようにしました。以前のURL https://utgwkk.hateblo.jp/ にアクセスしてもちゃんとリダイレクトされます。ドメインは変わっても相変わらずとりとめのないことを書いていきます。

utgw.net というドメインを取得してからもう7年が経とうとしています。少ないお小遣いで買ったドメインはさぞかし輝いて見えたことでしょう。ずっと契約を更新して、移管もして、今も大切に使っています。

blog.utgw.net

普段は使わないけど使わないといけない場合もあるような関数を気軽に使ってほしくないときの実装

この関数は挙動が難しいので普段は使わないでほしい、しかし使わないといけない場合があるので消すことはできない、ということがある。 許可リストにある場所以外から呼ばれてたらテストを落とすようにする、という実装を考えたけど、関数名をめちゃくちゃ難しくして覚悟がないと使わないようにする、という実装方針もありますねと聞いてたしかにと思った。 dangerouslySetInnerHTML みたいなイメージ。 __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED だと使ったら解雇されてしまうのでちょっと違うと思う。使っても解雇はされないけど名前が仰々しいし、ちゃんとした理由がないとレビューが通らない、ぐらいの強さ。

GitHub Actionsで「matrixの全テストが通らないとマージできないようにする」設定を簡単に行う方法

GitHub Actionsで、複数環境でテストしたいのでmatrixに分けて、branch protectionの設定で全環境のテストが通ったらmasterにマージ可能にしましょう、というのをやろうとするとちょっと面倒です。

  • matrixの数だけ必要なstatus checkに含めないといけない
  • jobの名前を変えたときにrequired status checkの設定も追従させないといけない? (未確認)
    • 「なんか一生CI greenになりませんね」的なことになりそう
  • jobの名前を途中で変えたら選択肢がめちゃくちゃ出てくる

gyazo.com

全部のテストに通った、というのを1つのstatus checkで表現したいので、以下のようなjobを追加しました。

  • needs: test にして、 test jobが全てpassしないと作動しないようにする
    • 1つでもテストが落ちたらcancelされる
  • とりあえず正常終了させる
  post-test:
    name: All tests passed
    runs-on: ubuntu-latest
    needs: test
    steps:
      - run: echo ok

github.com

もっといい方法があるかもしれないけど、これでやりたいことはできました。これで必要なstatus checkの数を抑えることができます。

誰かに使ってもらえているコードを、さらに良くしてもらえるのはありがたい

GitHub Actionsで落ちたテストをアノテーションするpytestプラグインを書いてしばらく経過した。手元のPythonライブラリに追加して様子を見たりしていたのだけれども、まあ動いているからよいかな、という状態だった。

utgwkk.hateblo.jp

最近になって、バグ報告が来るようになって、つまり、いろいろなリポジトリで使われるようになって、考慮できていないケースが発見されたということなのだけれど、じゃあ対応します~ということで1人で全部やるのには限界がある。

酔っ払ったまま修正PRを作って、めちゃくちゃ雑なコードでいちおう動いているけど、これではマージできないでしょう、しかし今は頭が回っていない!!! ということでhelp wantedのラベルを付けてから寝て、起きたら、ちゃんとした実装に直してくれるPRを作ってもらっていた。マージ権を持っているのが1人だからといって、酔っ払ったまま雑にマージボタンを押していたら雑な実装が世の中に出回っていたということで、それを未然に防げたのは大変ありがたい。たどたどしい英語で、サンキューです、修正を取り込んでリリースしましたって言いまくっている。

1人だけではスケールしなくて、書けるコードもその人の限界に束縛されてしまう、と思った。他の人が書くコードを読むと、こういう書き方もできるとか、この実装は一人ではできなかったかも、勉強になります、という体験が得られる。

最近あまりPythonを書いてなくて、まだ管理するモチベーションはあるけど、モチベーションなくなったら誰かにリポジトリの管理権限をあげたい。誰も使わないコードだったらそのまま打ち捨てられるのを待つだけだけれど、ちょっとでも使ってもらえるコードができて、それを良くしてくれる人に出会えたのはありがたい限りである。なんかちょっとバグってるので修正PR出すか、と思うことはあるけど、自分がそれを受ける側になるとこういう気持ちになるのだなあ。

今日見た夢

新しい家に引っ越した。広いけれども、ドアの横に壁がなく、ふつうに侵入できてしまう。

ある日、帰宅すると家がひどく荒れていた。こんなに散らかした覚えはないのに、と思いつつも仕方ないので片付けた。こんな日が何日も続いた。 また、連日奇妙な金縛りに遭った。誰かが私の上に乗っているような感触。手を動かして何なのか確かめようとしても手が動かない。そんな現象が毎日のように続いた。

ある日、例の金縛りに遭って、また人に乗しかかられているような感じがしたが、そのときは少し違って身体が動いた。えいやっと置きたらその人影は逃げたので追いかけて*1、ついに捕まえてその姿を見ると、知り合いの一人だった。面白がってドアの横から入って、ちょっかいをかけた、と言っていた。ドアの横から外を見ると、知り合いの集団が鍋をやっていて、こちらに気づいたようだった。ポカンとしている様子を撮影されSlackに流された*2。ここで引っ越しを決意する。

またある日は、知り合い2人が家に押しかけて、なかなか帰らずに意味深な表情をしながらこちらに詰め寄ってきたことがあった。ひどく消耗した。こんな家に住んでいるからだろうな、と思った。

引っ越し先を決めるための資料請求をしたら7万円かかったので支払いを他人に押しつけた。


廊下に散らばった大小さまざまな豆*3を、どれだけ早く整理できるか、という競技に参加する。 さっきまで誰かが食べていたテーブルの上の皿をちょっと拭いたら容赦なく豆を乗せていく。

試合の結果は分からなかった。


大人になったのだから、父が作ったクレジットカードを持ちなさい、という話をされたが、既にカードは持っているので返事しなかった。そもそも話の前後がつながってないと思う。


このご時世に人がいっぱい集まっている空間に放り込まれ、楽しげな歌*4に合わせて前面のパネルがめくられ、その度に大きな歓声が上がる。 ドラえもんの何かのシーンに連動していたと思う。

*1:なにしろ家が広い

*2:夢の中でめちゃくちゃな人間不信になってしまい、夢から覚めた今も嫌な汗をかいている

*3:小さいものは大豆ほど、大きいものは成人男性の握りこぶしほど

*4:知ってる曲だと思うけど、どの曲か忘れた

サンダルに穴が空いた

サンダルに穴が空いた。初めは、内側になにかテープが引っついたのだろうと思っていた。よく見ると、それは、玄関の床の色を映していた。

utgwkk.hateblo.jp

大学に入ってからずっと、夏場はずっとクロックス的な靴を履いていて、それも壊れてまた通気性の高いサンダルを買って、ずっと履いていた。穴の存在を認識してからは、足の裏から地面を感じられるようになった。

面倒になったので、今まで履いてたのと同じサンダルの色違いをさっき注文した。