2021.02.10
資金移動口座に給与を直接振り込んでキャッシュレス推進というの、政治が過ぎる
全く意味を感じない
デビットカードを作れ
わざわざ用途の限られた劣化版通貨にする動機がキャッシュレス、そんなわけないやろ〜
水飲んだら突然胃が痛くなった
始めて胃腸がびっくりを体験したので健康が不安になってきた
4年ぶりに、すべてが自分にかかっているのではないと知り、息を吐き出すことができた気分だ。世界のすべてが自分の双肩にかかっている......その重みを知る人は、アメリカ史上、ほかには45人の大統領しかいない
え、怖…
Scrapbox に対する iOS からのクリップボード貼り付けがうまくいかなくて貼れないんですが、水道局のシステムに侵入しようとしたハッカーがアメリカに現れたらしい
IIDX やってて成長を感じる瞬間、ニーソ姫がちゃんと演奏できた時
声ハメスクラッチがちゃんとできて全部声が聞けたとき、とても嬉しい
テンプレートのように使うとき同じルールは一度しか実行されないので、ルール名を wildcard 含めるようにすると便利
デプロイ前に実行したいことは共通だが、デプロイそのものは複数先に行う…… そんなときに依存グラフを解決して順番にやってくれるのはすごく便利
例えば:
code:Makefile
.PHONY: all
all: build/sub1 build/sub2
node_modules:
npm install
.PHONY: build/%
build/%: NAME=$(patsubst build/%,%,$@)
build/%: node_modules
npm --cwd ./$(NAME) build
私は build/%: % と書いて一度ハマった
依存関係ということを意識せずに $< で取り出せるの便利やんか、と思って使ってしまったw
エラーがわかりにくく No rule to make target build/ほげほげ ってなる
依存する対象のファイルがないときに No rule になっちゃうのかな?
% でマッチするなにもしないルールを用意すれば動くのかもしれないが、変なハマりが起きそうなので patsubst のほうがいいと思う
ただし変数の解決タイミングに注意しないとハマる
遅延評価 = だといいが、例えば依存関係を変数参照で書こうとしたときとかハマる
例えば次のようにルール内の置き変えでいい感じにデフォルト値を変えるとき
code:Makefile
ENV=unknown
dev: ENV=dev
dev: build/$(ENV)
build/%: NAME=$(patsubst build/%,%,$@)
build/%:
echo $(NAME)
echo $(ENV)
このとき make dev とすると unknown -> dev という順番で表示される
これは $(MAKE) dev で回避するといい
$(MAKE) とするとオプションが保持される
例えば --dry-run (コマンドのみ表示) や -j (並列数の指定) が保持されていいかんじ
ただし -j で並列数を指定する場合の制御は子プロセスの呼び出しをしているためうまくいかないと思われる (未検証)
私が使ったケースだと並列数を指定せずに最大までぶんまわす指定しかしなかったので、問題なかった
またインデントなしで書く条件分岐にも注意が必要
言われたらそうなんだけどね
$(if COND,THEN,ELSE) を使えばハマることはない
このときにターゲット固有の変数 (ex: rule: var := 123) と組み合わせて遅延評価にすると、ルール内で参照しやすいのでオススメです
往年の IBM みたいに頑張ってほしいよ