動かざることバグの如し

近づきたいよ 君の理想に

MacOS RubyでOpenSSL::SSL::SSLErrorになる

環境

問題

以下のコードが正常に実行できれば問題ない。

require 'net/http'
require 'uri'

uri = URI('https://httpbin.io/post')

request = Net::HTTP::Post.new(uri)

Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  response = http.request(request)で
  puts response.body
end

自分のMacbookだと以下のようなエラーになってしまった

OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 peeraddr=1.1.1.1:443 state=error: certificate verify failed (unable to get certificate CRL) (OpenSSL::SSL::SSLError)

原因

MacOS上でOpenSSL 3.6.0を使用している場合に発生する問題。OpenSSL 3.6.0での仕様変更が原因で、Rubyのopensslライブラリが正常に動かなくなってしまった。

具体的には

  • OpenSSL 3.6.0で証明書の失効確認に関するフラグの挙動が変更された
  • V_FLAG_CRL_CHECK_ALLがV_FLAG_CRL_CHECKを暗黙的に有効にするようになった
  • しかしmacOSのOpenSSLビルドがCRLバンドルを提供していないため、証明書の検証に失敗する

インストールされているopensslのバージョンは以下のコマンドで確認できる

❯ openssl version
OpenSSL 3.6.0 1 Oct 2025 (Library: OpenSSL 3.6.0 1 Oct 2025)

対応策

opensslライブラリをアップデートする方法(推奨

この問題はopensslライブラリのバージョンv3.1.2, v3.2.2, v3.3.1で修正されている。Gemfileに別途opensslを追加して bundle install すればアップデートされる

gem "openssl"

MacOSにインストールされているopensslのバージョンをダウングレードする方法

homebrewは原則最新バージョンしかインストールできないので自分専用のtapをローカルに新規作成してオレオレhomebrewでインストールする。

詳細のコマンドは以下が大変詳しい

qiita.com

参考リンク

ExecStartPreではrootで実行したい場合はPrefix使え

環境

  • systemd 255

やりたいこと

例えば、User=www-data で設定して起動してるSystemdのサービスがあったとする。 ただしソケットファイルの削除やログファイルなど、では=ではroot権限で何か準備して、ExecStart= では www-data で実行したい。

昔は

昔は PermissionsStartOnly=true をつけると動いていたが最近のSystemdでは動作しない。どうやら非推奨になって削除されたっぽい。

現在では

プレフィックスとして + をコマンドの先頭に付与する。

ExecStart=+/path/to/command
ExecStart=/main/command

のような感じ。

昔の記事だとPrefix!と!!も使えたらしいが現在では削除されているので + のみ覚えれば良い。

時系列でまとめると以下

バージョン できごと 詳細
systemd 231 2016 実行可能Prefix+の追加 ExecStart=+のように+を付けることで、User=やGroup=の設定を無視して完全な権限でコマンドを実行できる機能が導入された
systemd 235 2017 Prefix!と!!の追加 さらに追加のPrefixが導入された
systemd 240 2018 PermissionsStartOnlyの非推奨化 PermissionsStartOnlyが非推奨(deprecated)となり、代替として実行可能Prefix+の使用が推奨されるようになった
systemd 245 2020 Prefix+の挙動修正 +Prefixを付けたコマンドでは、PrivateTmp=yesの設定が無効になり、/tmpディレクトリへのアクセスが許可されるように挙動が明確化された
systemd 258 2021 Prefix!と!!の削除 以前追加された!と!!のPrefixは削除され、現在は+などが主に使われている

参考リンク

codexでファイル編集時にPython使うせいで遅くなってる件

環境

  • codex-cli 0.53.0

問題

最近codexの処置が遅く感じる。調べてみるとすでにGitHubのIssueが建ってた。

github.com

つまりCodexが本来のファイル編集ツールを使わずに、Pythonスクリプトを自動で生成・実行してファイルを編集してしまう現象が原因らしい。

よくよく見るとこういうPythonでなにかやってそうなログがよく出る。

▌ Please increment the number on the last of test-file by 1.

• Ran zsh -lc "rg --files -g '*test*'"
  └ TESTPLAN.md
    test-file

• Ran zsh -lc 'tail -n 5 test-file'
  └ Increment the number on this line: 2

• Proposed Command
  └ zsh -lc "python - <<'PY'
    from pathlib import Path
    path = Path('test-file')
    text = path.read_text()
    old = 'Increment the number on this line: 2'
    new = 'Increment the number on this line: 3'
    if old not in text:
        raise SystemExit('expected line not found')
    path.write_text(text.replace(old, new, 1))
    PY"

✗ You canceled the request to run zsh -lc "python - <<'PY' ...

こっちとしては困るわけで

  • 本来のツールと違って変更差分(diff)がすぐに見られないため、どのような変更が加えられたのか分かりにくい。
  • 生成されるPythonスクリプトは不正確なことが多く、たった1行の修正のために何度も試行錯誤を繰り返すことがある。遅いしトークンを無駄に喰わされる。

ネイティブのパッチ機能を使ってほしい。

対応方法

使用するモデルをgpt-5-codexからgpt-5へ変更したら直ったって人もいたが私の環境では変わらなかった。

gpt-5-codexにはPythonを読み書きで使うなという指示がシステムプロンプトに追加されてた。

github.com

が、revertされてる。

github.com

そこでAGENTS.mdに以下を自分で追記する。

When editing or creating single files, you MUST use apply_patch as a standalone tool without going through ["bash", "-lc"], `Python`, `cat`, `sed`, ...Example: functions.shell({"command":["apply_patch","*** Begin Patch\nAdd File: hello.txt\n+Hello, world!\n*** End Patch"]}).

ファイル編集時に完璧に治ったわけではないが頻度は減った気がする。

参考リンク

AIが書いた記事に騙されるところだった話

背景

ソニーのワイヤレスイヤホンが好きで、WF-1000XM3とWF-1000XM4(2回買い直している!)を持っている。 次の新商品である「WF-1000XM6」が2025年発売かと言われて久しいが、なかなか発売されない。

taisy0.com

色んな情報を見るに年明け発表なんじゃないかと言われている。 普段は秋に発表、発売されているので遅くなってしまっていること自体は残念だけど、なんだかんだ待ってる時が一番楽しい。

ちょくちょく新情報がないか「WF-1000XM6」で検索していて、とある記事を見つけた。 内容は新商品のスペックについてだが、自分の知識と食い違っていることが書かれていた。

WF-1000XM6には従来のQualcomm製ではなく、MediaTek製のチップセットが搭載される可能性が極めて高いことが明らかになりました。
これは、ソニーのイヤホン戦略における大きな転換点と言えるかもしれません。
この変更がユーザーに与える最も直接的な影響は、対応コーデックです。MediaTekチップセットを採用するということは、
これまで多くのAndroidユーザーに高音質コーデックとして親しまれてきた Qualcomm aptX」シリーズに非対応 となることを意味します。

ソニーWF-1000XM6の最新情報|発売日はいつ?aptX非対応の噂とDSEE Ultimate初搭載の衝撃 | ONAガジェBLOGから引用

これは変で、ソニーの上位機種モデルであるWF-1000XM系統ではLADCには対応しているもののaptXには対応していないはず。

というかそれらのチップはQualcomm製じゃなくね。。。?

WF-1000XM3とWF-1000XM4を持っている私が色々試したこともあるのでaptXには対応していないのは知っていた。

ソニーのフラッグシップワイヤレスイヤホンの多くはQualcomm aptX系コーデックではなく、自社開発のLDACで高音質を担保してきた認識だった。

ファクトチェック

今までに発売されてきたワイヤレスイヤホンを調べてみる。

モデル チップメーカー チップ型番 対応コーディック
WF-1000XM3 MediaTek MT2811S SBC, AAC
WF-1000XM4 Sony/MediaTek V1 Integrated Processor (MT2822S) SBC, AAC, LDAC
WF-1000XM5 Sony/MediaTek V2 Integrated Processor (MT2833) + QN2e SBC, AAC, LDAC, LC3

やっぱりaptX対応してないし、そもそもQualcommじゃないじゃん

件の記事の内容はデタラメだったということになる。

まとめ

今回はたまたま知識があったから嘘を見抜けたけど、正直他のジャンルの記事だったら存分に騙されていたと思う。

こういういかにもAIが書きましたのような中身のない記事ならすぐわかるけど、例の記事は画像も差し込まれていたし情報量も(嘘だが)あった。見抜くのは難しい。

まあソニーのワイヤレスイヤホンの新商品に関する情報はThe Walkman Blogだけ追っていればいいという知見が得られた。以上

参考リンク

シャインポスト高画質画像まとめ

シャインポストの良くないところとして公式アカウントがSNSに上げている画像やプレスリリースの画像の解像度が低い。粗い。

なんでキャラのストーリーは解像度高いのに公式画像は解像度低いんだよ。。。

ということでGoogle検索だとたいていサムネ画像ばかりなので高画質画像をメモとして保存する。

シャインポストのロゴ画像1

初期のロゴだと思う。正直ダサい

picture 1

シャインポストのロゴ画像2

おそらくゲーム制作にあたってデザイナー使ってちゃんと作ったロゴ

picture 0

シャインポストアイドル集合画像

なんか最高画質でもぼやけてない。。。?

picture 3

各キャラクターのアイコン画

imagemagickとかで分割すれば使える

picture 4

#!/bin/bash

input="input.webp"

slice_width=128
slice_height=128

# 分割数
cols=10
rows=4

count=1

for ((r=0; r<rows; r++))
do
  for ((c=0; c<cols; c++))
  do
    # 切り出す位置のX座標とY座標を計算
    x=$((c * slice_width))
    y=$((r * slice_height))
    
    # printf "%02d" で数字を0埋め(01, 02...)
    convert "$input" -crop ${slice_width}x${slice_height}+${x}+${y} +repage icon$(printf "%02d" $count).jpg
    
    count=$((count + 1))
  done
done