plantumlをcliで使う
やりたいこと
PlantUMLでUML図をコード管理したい。 cliでコードからSVGに変換できるようにする。
手順
jdkをインストールする
graphvizをインストールする
brew install graphviz
plantuml.jarをダウンロードする
ここからDLして、適当な場所に配置する。 https://plantuml.com/ja/download
シェルコマンド作る
パスの通ったところにシェルコマンドを配置する。
以下のような感じで作る。
#!/bin/sh java -jar ~/bin/plantuml.jar -charset UTF-8 "$@"
svgを出力する
plantuml -tsvg xxx.puml
で、xxx.svgが出力される
go buildメモ
コマンド
# myappという名前で実行ファイルをビルドする # 環境変数を指定しないと、ビルドする環境向けのバイナリが作成される go build -o myapp main.go # 他の環境向けのバイナリを作成するときは環境変数で指定をする env GOOS=linux GOARCH=amd64 go build -o myapp main.go
GOOSやGOARCHで指定できる値は下記を参照する。 https://golang.org/doc/install/source#environment
もしくは下記コマンドで確認できる
go tool dist list
手元の環境は以下コマンドで確認できる
go version # go version go1.17 darwin/amd64
CPUのアーキテクチャ
だいたい arch
コマンドで確認できる。
Dockerのイメージとコンテナ
イメージ作ったり、イメージからコンテナ作ったり、コンテナからイメージ作ったりのコマンドメモ。
イメージ
# 手元にあるイメージを確認する # イメージは、リポジトリ&タグの組み合わせで一意になる docker images # Dockerfileを元にイメージを作成する docker build . # イメージ名指定&キャッシュを使わずにイメージ作成 docker build . --no-cache -t [イメージ名] # 手元にイメージをDLする docker pull [リポジトリURL] # イメージを削除する # イメージに紐づくコンテナがある場合は削除できない # 先に紐づくコンテナをstopしてrmする必要がある docker rmi [ImageID] # イメージ情報の取得 docker inspect [リポジトリ名]:[タグ] # CMDの確認 docker inspect [リポジトリ名]:[タグ] --format='{{.Config.Cmd}}'
コンテナ
# コンテナの一覧を確認 docker ps -a # イメージからコンテナを作成する # /sbin/init をつけないともともと設定してあるCMDが実行される docker run --name [コンテナ名] -d [イメージID] /sbin/init # イメージからコンテナを作って起動状態を維持する # i: 標準入力(STDIN)を開いたままにする # t: 擬似ttyに接続する。ディスプレイ(STDOUT)をつなぐイメージ # d: デタッチモード バックグラウンドでコンテナ起動 docker run -itd --name [コンテナ名] -d [イメージID] /bin/sh # docker-composeではこんな感じ # イメージからコンテナ作ってシェル実行してコンテナ消す docker-compose run --rm php /bin/bash -c "" # コンテナからイメージを作る # まず止めて docker stop [コンテナ名] # イメージ作る docker commit [コンテナ名] [リポジトリ名]:[タグ] # コンテナ削除 # まず止めて docker stop [コンテナ名] # 消す docker rm [コンテナ名]
CentOSでルート証明書はどのように配置されているか
- ca-certificates
- MozillaFoundationが選定したCA証明書のセット
yum install ca-certificates
でインストールされる- インストール場所は、
rpm -Vv ca-certificates
で確認できる - ルート証明書は
/usr/share/pki/ca-trust-source
直下に配置される。 - ca-certificatesをupgradeすることで最新の証明書に更新される
- ルート証明書を自分で追加/削除する
- update-ca-trustコマンド
ca-certificates
に含まれるコマンド- ca-certificatesに元から含まれる証明書と、自身で配置した証明書をバンドルして出力する
- 出力先は
/etc/pki/ca-trust/extracted
以下 - 基本的にアプリケーションは、これで出力された証明書を参照する。
- 他
tcpdumpの基本的な使い方
macでのインストール
brew install tcpdump
よく使いそうなコマンド
# パケットの中身をアスキー文字で出力する sudo tcpdump -A # インターフェース指定 sudo tcpdump -i eth0 # ファイル出力 sudo tcpdump -w ~/tcp.log # 送信元IP指定 sudo tcpdump src host 192.168.0.10 # 送信先IP指定 sudo tcpdump dst host 8.8.8.8 # 送信元port指定 sudo tcpdump src port 80 # 送信先port指定 sudo tcpdump dst port 443 # andでIP,portの組み合わせ指定 sudo tcpdump dst port 53 and dst host 8.8.8.8
RSpecで既存のクラスをモックに差し替える
本来はDependencyInjectionでやるべきかもだけど。 そうもいかないケースもあるわけで。
# 既存クラス let(:api_client) { ::MyApp::ApiClient } let(:api_response) { double('api_response', status: 200) } # post_xxxメソッドを上書きして、api_responseを返す allow(api_client).to receive(:post_xxx).and_return(api_response) # post_xxxメソッドを上書きして、例外をraiseする allow(api_client).to receive(:post_xxx).and_raise(::MyApp::MyApp::BadRequest)