定期実行と通知

Macをスリープさせたらlaunchdの定時処理はいつ動くのか|16時間ずれた実行時刻の正体

毎週月曜の朝8時に動くはずの処理が、その日の記録に1行もありませんでした。壊れたのかと思ってログを開いたら、ちゃんと動いた記録がありました。翌日の午前0時ちょうどに。結論を先に書きます。予定時刻にMacが寝ていると、その回は「飛ぶ」のではな...
定期実行と通知

手動ではSlackに届くのにlaunchdでは通知されない|環境変数が引き継がれない落とし穴

ターミナルで手で動かせばSlackにちゃんと通知が届く。ところが同じスクリプトを、時間になったらMacが勝手に動かす仕組み(launchd)から呼ぶと、処理は最後まで終わっているのにSlackだけ届かない。エラーは1つも出ません。結論を先に...
定期実行と通知

手動では読めるのにlaunchdでは「アクセス拒否」になる|Macのプライバシー権限の落とし穴

ターミナルで打てば普通に読めるファイルが、時間になったらMacが勝手に動かす仕組み(launchd)から呼ぶと「アクセス拒否」で止まる。これはパスの書き間違いではありません。パスは1文字も合っています。結論を先に書きます。エラーに Oper...
経理・数字の自動化

売上0円と未入力を同じ扱いにしたら着地予想が狂った|空欄を見逃さない方法

スプレッドシートの空欄を「0円」として集計すると、合計は合っているのに、着地予想(月末にいくらになりそうかの見込み)だけが低く出ます。エラーは出ません。Slackにはいつもどおり表が届きます。結論を先に書きます。0円と未入力は、まったく違う...
経理・数字の自動化

Googleスプレッドシートに列を1本足すと売上集計が壊れる|列番号で読む危険と直し方

Googleスプレッドシートに列を1本足す。現場から見れば「メモ欄を作っただけ」です。ところがその表をPythonで集計している場合、その日から売上の数字が静かにずれます。エラーは出ません。Slackにはいつもどおり表が届きます。結論を先に...
自動化のはじめ方

XcodeなしのMacでPython自動化を動かすまで|uvを選んだ理由

Pythonの入門記事は、たいてい python3 -m venv .venv から始まります。うちのMacでは、この1行が動きませんでした。結論を先に書きます。macOSに最初から見えている /usr/bin/python3 は、Xcod...
定期実行と通知

Macでは動くのにlaunchdではファイルが見つからない|相対パスの落とし穴

手で叩けば動くのに、launchdに任せた途端「そんなファイルはありません」で止まる。うちでも自動化を作り始めた頃に一番混乱したのがこれでした。結論から書きます。launchdは、スクリプトが置いてあるフォルダからは起動してくれません。だか...
AI導入の判断

AIに経理の計算式を直させたら、別の拠点で数字が壊れた|採用前の答え合わせ手順

AIに経理の計算式のバグを指摘してもらいました。指摘は正しく、直したら数字も合いました。ただし、私が見せた拠点では。見せていなかった別の拠点に同じ式を当てたら、そこだけ数字が壊れていました。結論を先に書きます。AIが直した計算式は、直した本...
経理・数字の自動化

資金繰り予測を自動化しても、最後は残高照合が要る|完了した月で予測と実績を突き合わせる

資金繰り表も、月末の着地予想も、Pythonで自動化しました。毎月決まった時間に動いて、Slackに表が届きます。それでも、その表の数字が正しいかどうかは、表自体では確かめられません。結論を先に書きます。自動化できるのは「増減の計算」までで...
経理・数字の自動化

売上集計は動いていたのに数字が古かった|前回のファイルを使い続けていた失敗

毎月決まった時間に、Googleスプレッドシートから売上を取り込んで集計する。エラーは出ない。Slackにもちゃんと表が届く。それでも、その数字が先月のものだったことがあります。結論を先に書きます。取り込みが失敗しても、前回ダウンロードした...