Dockerが提供するDockerfileリンターを使ってみる

このエントリは はてなエンジニア Advent Calendar 2025 9日目の記事です。今日はid:ymseがお届けします。

3行まとめ

  • HadolintのようなDockerfileリンターがDockerにも組み込まれている
  • Hadolintのほうがルール自体は多い
  • それぞれ一長一短ある

目次

続きを読む

ドラム式洗濯乾燥機(Panasonic NA-LX127D)を買って最高

3行まとめ

ドラム式洗濯機購入

買いました。

買った機種

パナソニックの NA-LX127D を買いました。諸々で26万円くらいだった。

https://panasonic.jp/wash/products/NA-LX127DL.html

ドラム式洗濯機は10月くらいに新作が出るらしく、7,8月は最安値になる。価格.comを見ていると、大体9万円くらい値下がりしているらしい。

kakaku.com

選んだ理由はいろいろあるが、最も大きいのはヒートポンプ方式であること。 ヒートポンプ式は洗濯機を設置している空間が暑くなりにくいという特徴があるらしい*1

大学の寮に住んでいたときはコインランドリーにある乾燥機があったのでたまに使っていた。この手の乾燥機は乾燥のときに発生した湿気を放出するため、空間がミストサウナみたくなってしまう。在宅勤務で家にいる時間が長いのでこれは耐え切れなさそうだと思った。

今回購入したパナソニックのLXシリーズには4グレードあって、これは上から2番目。LXシリーズはどれも筐体は共通ぽく中にどれだけ機能が詰まるかで価格が変わる。

最上級になると操作盤がタッチパネルになるのだけれど差額が4~5万円するのでそこまでの価値は感じられなかった。

買うまで

サイズ測定

これは測るだけ。パナソニックのサイトに事前チェックリストのPDFがあるのでこれを参考にすれば良いと思う。

panasonic.jp

購入

これは買うだけ。家電量販店の長期保証は付けなかった。東電の家電保証を付けるつもり。

www.service.tepco.co.jp

それはそうとパナソニックのIoT家電はスマホ連携すると保証が3年に延びる。これだけのためにスマホに繋がる品番にしておくのもありだと思う。

news.panasonic.com

搬入見積もり

ビックカメラで買うと搬入見積もりが無料でできる。搬入までのリードタイムは延びるが安心できる。搬入業者と同じ業者の人が来て、搬入のための申し送り文書を書いてくれる。

www.biccamera.com

水栓交換

搬入見積もりの結果、洗濯機と蛇口が干渉することが判明した。なので壁ピタ水栓を設置した。

panasonic.jp

届く

搬入当日になった。81kgもある筐体を2人で搬入してしまうのはすごい。

感想

さて乾燥した感想ですが、最高です。

冗談はさておき、洗濯から乾燥まで一気通貫でやってくれるのは便利。 いままでは洗濯が一番嫌いな家事だったけど、今は一番好きな家事になった。

SNSの世界を見てみると、縦型洗濯機と乾太くんが良いとか縦型洗濯機と浴室乾燥機の組み合わせが良いとか出てくるけど、洗濯物を取り出して乾燥するという過程がそのまま削減できるという点で単純に比較できるものではないと思う。 少なくとも僕は、水に濡れた重たい服に触れる必要がなくなったという一点に価値を感じている。

スマホ連携は不要だと思っていたけど、外出していても運転終了までどれくらいか分かったり、運転終了を知らせてもらえるのは意外と便利。洗濯してから買い物に行くなども簡単にできて良いと思う。

洗剤自動投入も最高。 測らなくて良くなったと聞くとそれだけ?とは思うが、洗剤が手に付いてしまうとかメモリに合わせるとかそういう細かい不便が解消されている。

実際に試したくない?

26万円の買い物をするのに試せないのは辛いのでどうにかして試す方法が欲しい。東急ステイみたいな、ホテルに洗濯機が備え付けられている部屋があってプランによってそれぞれ別のメーカーの洗濯機を試せるとかあると面白いと思う。

おわりに

最高なので皆さん買ってください。

*1:実際に同じ場所に設置したことはないので実のところはどうなのかは分からない。

aquaSKKからmacSKKに乗り換えた

特に不満なく移行しています。

きっかけ

Claude Codeの登場でVSCodeのターミナル内で日本語入力をする機会が増えた。aquaSKKVSCodeのターミナル*1は相性が悪いらしく、あいうえおのような1字で確定するひらがながaiueoのように出力されて不便だった。 一応Shiftを押して「▽あ」のように変換モードに入って確定させれば入力はできるので全く入力できないわけではなかったが、それはそうと不便に思っていた。

これがClaude Codeだけであれば相手がLLMなのでよしなに対処してくれるけど、echo "あいうえお"みたいなコマンド入力でも変換されずちょっとストレスに思っていた。

そんななかこのツイートを見つけてmacSKKを試すことにした。

所感

ワークアラウンドは機能している

もともと不満を持っていた、VSCodeのターミナル内での入力はひとまず解決していそう。行末に「あいうえお」が来たときはEnterを押して確定させる必要があるが、これに関してはあまり困っていない。

システム辞書出てくるの面白い

macSKKでは変換中にシステム辞書のエントリが表示される。

変換中にシステム辞書を用いて辞書が出てくるの面白い。変換中にどの漢字が正しいのかたまに自信がなくなるのでそういうときに便利そう。とはいえまだ読んだことはないかもしれない。

実装を読みにいくとDictionary ServicesというAPIが生えているらしい。面白い。

github.com

追記ここから

aquaSKKでもシステム辞書による注釈が存在していると指摘いただきました。知らなかった……。教えていただきありがとうございます。

追記ここまで

まとめ

おおむね満足しています。とはいえまだ使い始めて2日目なので何かあったら追記します。

*1:というよりは内部で使用しているxterm.js。https://github.com/xtermjs/xterm.js/issues/5348 でIssueが上げられている。

手元に置いておきたいけどすでに絶版である本に出会ってから、とりあえず本を買うようになった

タイトルが全て。

読みたいと思ったけど、思ったときにはすでに絶版になってしまった本がある。 僕の場合はそれが『エラスティックリーダーシップ』だった。

会社には置いてあったので比較的簡単に読むこと自体はできるのだけれど、困ったときにすぐ引いて読みたいので自分の手の届く範囲に置いておきたい。中古市場とかも見てみたけど入手できそうにない。

絶版になった本を手元に置くことが難しいということを身を持って理解した。なので最近は読みたいと思った、あるいは将来ちょっとでも読みそうだなと思った本はとりあえず買うことにしている。このおかげでいわゆる積み本が増えて本棚*1がどんどん圧迫されているがそれはまた別の話。

www.oreilly.co.jp

エラスティックリーダーシップの原著はまだ手に入るので手元に置いておくかちょっと迷っている。でも英語苦手だし、けれども日本語版のエッセイも読みたいしな……。

*1:物理の本棚もKindleのライブラリも。Kindleのライブラリが増えても部屋が狭くなることはないけど

PostgreSQLのRow Level Securityが有効でポリシーが付いているのかを調べるリンター postgrls を作った

3行まとめ

  • PostgreSQLのRLSはテーブル定義と共にポリシー定義をする必要があるが、別に定義する必要があるので忘れがち
  • 人間が気をつけるのは不可能なので仕組みで解決するべくリンターを作った
  • Cline + Claude 3.7 sonnetですぐ作れたけど楽しくなかった

GitHub - Azuki-bar/postgrls: PostgreSQL RLS linter

背景

PostgreSQLのRow Level Security(以下RLS)を使ったことがありますか。

PostgreSQLではテーブル定義と共にAlter TableをしてRLSを有効にする必要があります。しかもこれだけではまだ不十分でそこからポリシーを有効にする必要があります。

-- https://www.postgresql.jp/document/16/html/ddl-rowsecurity.html より引用

CREATE TABLE accounts (manager text, company text, contact_email text);

ALTER TABLE accounts ENABLE ROW LEVEL SECURITY;

CREATE POLICY account_managers ON accounts TO managers
    USING (manager = current_user);

www.postgresql.jp

このようにテーブル定義だけではなく、最低でも2文を追加で書く必要があります。

セキュリティに関する制約であるにも関わらず強制する仕組みがなく困っていました。

リンター作った

という問題があったのでリンターを作りました。

名前はpostgrlsです。PostgreSQLのRLSを検査するからその要素から文字を取りました。ポストガールズって読ませることを意図しています。 この名前はClaude 3.7 sonnetが考えてくれました。

GitHub - Azuki-bar/postgrls: PostgreSQL RLS linter

テーブル定義に対して、1つのRLSを有効にする設定と1つ以上のポリシーの設定がないときは終了コード1を吐くリンターです。

仕組みとしてはpg-queryを用いてASTを取得し、集めているだけです。

さまざまな環境でシングルバイナリで動いて欲しかったのでgoを使いました。pg-queryは大抵の言語で動くけどpg-queryが呼んでいるライブラリの組み込みとかが面倒そうだった。

github.com

使いかた

$ cat testdata/fixtures/test.sql
CREATE TABLE accounts (id int, manager text);
CREATE TABLE users (id int, name text);
ALTER TABLE accounts ENABLE ROW LEVEL SECURITY;
CREATE POLICY account_managers ON accounts USING (manager = current_user);

$ postgrls testdata/fixtures/test.sql
[
  {
    "message": "Table 'users' does not have RLS enabled",
    "location": {
      "file": "testdata/fixtures/test.sql",
      "line": 45,
      "column": 1
    },
    "table_name": "users",
    "rule_id": "rls-not-enabled"
  }
]
missing RLS configuration

$ echo $?
1

こんな感じ。標準入力からSQLを読んだり判定の除外をする設定は書いた。将来的にreviewdogで指摘させたいのでerrorformatやrdjsonlなどの形式で出力するようにしたい。

一方でまだリリースフローを組んだりREADMEを書いたりしていないので順を追ってやりたい。

AI Coding Agents

CilneやCursorなどのAIコードエージェントが流行っているので、Cline+Claude 3.7 sonnetを使ってコードを書いてみました。

要件を定義しPlanモードで指摘しまくって、Actモードにすればそれなりの動作をするコードはできました。 大体700行くらいのコードですが、完成までに2ドルくらいでできました。

AI Coding Agents楽しくない

一方でAI Coding Agentsを使った開発は楽しくないなと感じました。コードレビューのときに使う頭だけをずっと使わされている感覚になった。しかもそれでいて責任だけ取らされている感覚になる。

結局コードを書く過程が好きだったんだなと。そしてこれはオートマチック車を運転するのが主流になった今もクラッチとミッションを触って運転する人と一緒だなと気がつきました。これからはコードを書く過程も大切にしたい。

まとめ

ぜひお使いください。

こういうことを叶えるリンターを見つけられなかったので自作したのですがこういう奴ってすでにあったりしますかね?