コピペコードで快適生活

明日使えるソースを自分のために

wgetがリダイレクトしまくってエラーする

wgetがリダイレクトしまくってエラーする現象に出くわしたのでメモ。 自分の環境 golang:1.7 どんなエラーでてる? root@7453a9101b5e:/var/app# wget --max-redirect=1 https://github.com/wp-cli/wp-cli/releases/download/v2.5.0/wp-cli-2.5.0.phar conve…

macでUNIXtime・日時文字列の相互変換をする

% date -j -f "%Y-%m-%d %T" "2020-10-25 11:18:00" "+%s" 1603592280 % date -j -f "%s" "1552735080" "+%Y-%m-%d %T" 2019-03-16 20:18:00

コマンドで証明書の中身を確認する

SSL

ドメインから確認する openssl s_client -connect example.com:443 -showcerts サーバ証明書の中身を見る openssl x509 -text -noout -in ***.crt ※crtファイルには中間証明書が含まれる場合もある。 秘密鍵の中身を見る openssl rsa -text -noout -in ***.k…

plantumlをcliで使う

やりたいこと PlantUMLでUML図をコード管理したい。 cliでコードからSVGに変換できるようにする。 手順 jdkをインストールする graphvizをインストールする brew install graphviz plantuml.jarをダウンロードする ここからDLして、適当な場所に配置する。 h…

go buildメモ

Go

コマンド # myappという名前で実行ファイルをビルドする # 環境変数を指定しないと、ビルドする環境向けのバイナリが作成される go build -o myapp main.go # 他の環境向けのバイナリを作成するときは環境変数で指定をする env GOOS=linux GOARCH=amd64 go b…

Dockerのイメージとコンテナ

イメージ作ったり、イメージからコンテナ作ったり、コンテナからイメージ作ったりのコマンドメモ。 イメージ リポジトリ&タグと対応している 手元にあるイメージは docker images で確認できる docker build で 手元にイメージを作成できる docker pull で手…

CentOSでルート証明書はどのように配置されているか

ca-certificates MozillaFoundationが選定したCA証明書のセット yum install ca-certificates でインストールされる インストール場所は、rpm -Vv ca-certificates で確認できる ルート証明書は /usr/share/pki/ca-trust-source 直下に配置される。 ca-certi…

FTPのメモ

FTP

FTP 2つのコネクションがある コントロールコネクション: コマンドの制御用 データコネクション: データの送受信 anonymousモード データのダウンロード専用 ログイン情報なしで利用できる 転送モード アスキーモード: テキスト送受信用。改行コードと文字コ…

tcpdumpの基本的な使い方

macでのインストール brew install tcpdump よく使いそうなコマンド # パケットの中身をアスキー文字で出力する sudo tcpdump -A # インターフェース指定 sudo tcpdump -i eth0 # ファイル出力 sudo tcpdump -w ~/tcp.log # 送信元IP指定 sudo tcpdump src h…

RSpecで既存のクラスをモックに差し替える

本来はDependencyInjectionでやるべきかもだけど。 そうもいかないケースもあるわけで。 # 既存クラス let(:api_client) { ::MyApp::ApiClient } let(:api_response) { double('api_response', status: 200) } # post_xxxメソッドを上書きして、api_response…

composerで使えるライブラリを作ってみた

PHP

composerで使うライブラリを作ったことがなかったので、試しに作ってみた。 作ってみる ソースはこんなかんじで https://github.com/kinosuke01/convertible-romaji 作るときのコマンドメモ # コンテナ起動してログイン docker compose up docker compose ex…

CSSをあてる要素をどう分割するか

CSS

設計手法 責務をどのように分割するか、名前をつけるか という点でいくつかの代表的なアプローチがある。 OOCSS BEM SMACSS FLOCSS SMACSS 以下のように責務を分割する。 Base ベースとなるデフォルトのスタイルを定義する Layout ページを構成するブロック…

ReactHooksを使ってみる

最近のReactでは関数コンポーネント&ReactHooksを使うのが主流らしい。 キャッチアップしたところ、state管理がコンポーネントからキレイに分離できてよさそうだった。 index.tsx import * as React from "react"; import * as ReactDOM from "react-dom"; …

React+TypeScript+webpackの環境構築

必要なライブラリのインストール ビルドツールをインストールする npm install --save-dev webpack webpack-cli webpack-dev-server typescript ts-loader React関連のライブラリをインストールする。 ビルド後のファイルに含めるので--saveとする。 npm ins…

TypeScriptのコードをJestでテストする

やり方には、ts-jestを使う方法と、babelを使う方法がある。 babelを使うやり方は、https://kinosuke.hatenablog.jp/entry/2020/01/29/115640 と同じアプローチ。preset-envをpreset-typescriptにするだけ。ただし、型チェックはできない。 今回は、型チェッ…

TypeScript+webpack環境を作る - ts-loader使う版

https://kinosuke.hatenablog.jp/entry/2021/07/23/165039 のやりなおし。 babelはTypeScriptからJavaScriptへの変換だけをやってくれるだけで、肝心の型チェックはやってくれなかったので、ts-loaderを使ってやってみる。 必要なライブラリをインストール n…

TypeScript+webpack環境を作る - babel使う版

TypeScriptをはじめてみる - コピペコードで快適生活 の続き 必要なライブラリをインストール npm install --save-dev webpack webpack-cli typescript babel-loader @babel/core @babel/preset-typescript webpack: モジュールバンドラー。 JavaScript等の…

TypeScriptをはじめてみる

TypeScriptの雰囲気を掴むために、5分でできるチュートリアルをやってみる。 環境の準備 PC環境は汚したくないので、dockerで環境を作る。 #{APP_DIR}/docker-compose.yml に以下を書く version: '3' services: node: image: node volumes: - "./:/var/app" …

Kubernetesの設定ファイルの書き方キホン

確認できる環境(minikube)の準備 $ brew install kubectl $ kubectl version --client $ brew install minikube $ minikube version minikube コマンド minikube start # 起動(デフォルトはDockerで起動) minikube status # 状態表示 minikube ssh # ホストO…

シェルで古いファイルを一括で消す

バックアップスクリプトでよくやるのだけど、毎回書き方を忘れているのでメモ。 # -execオプションを使う版 # {} が対象のファイルパスに置換されて実行される。 # -mtime +3 => 最終更新日時が、過去〜4(3+1)日前のファイルを表示する find ${TARGET_DIR} -…

シェルスクリプトのアタマに添えるおまじない

シェルスクリプトを書くときに、アタマに添えるおまじないをメモ。 #!/bin/sh # set -e # スクリプトの実行中にエラー(exit 0以外)が発生すると、そこでスクリプトが終了させる。 # というかつけてないと、エラーしても次の処理に進むから怖い。 # # set -u …

proxy先がTCPコネクションを切ったときブラウザには何が返るか

ブラウザ → proxy(nginx) → origin(apache) の通信経路で、originがTCPコネクションを切った場合、proxyは50xを返す。proxy(nginx)にはこんなログが出る。 proxy_1 | 2021/07/01 13:15:38 [error] 25#25: *2 upstream prematurely closed connection while r…

MySQLのバッファプール使用状況を確認する

ダーティページの使用状況を確認したかったので。 mysql> SHOW GLOBAL STATUS LIKE 'InnoDB\_buffer\_pool%'; +-----------------------------------+---------------+ | Variable_name | Value | +-----------------------------------+---------------+ | …

nginxのproxy設定メモ

/etc/nginx/nginx.conf # 略 http { # 略 # proxy_cache_path: キャッシュファイルの本体 # keys_zone: 1mは共有メモリのサイズ。1MiBあたり約8000個のキーを保持できる # max_size: 全キャッシュファイルのサイズ合計の上限 # inactive: 指定した期間内にア…

screenの代わりにnohup&を使う

時間のかかるバッチ処理を手動で実行するとき、 sshセッションが切断しても大丈夫なようにscreenコマンドを使っていたけど、 他の方法を知ったのでメモしておく。 やりかた サンプルスクリプト #!/bin/sh # 永遠に標準出力と標準エラー出力を繰り返す while …

よく見る圧縮形式メモ

雰囲気でしかわかってなかったので整理。 zip WindowsやMacの標準形式 圧縮率は高くない 4GBを超えるファイルは扱えない 圧縮後に2GBを超えるファイルは扱えない Macの標準機能で圧縮すると、Windowsでファイル名が文字化けする Linuxでは標準で使えない 複…

MySQLでバイナリログを削除する

バイナリログファイルの確認 メインDBで確認する mysql> show master logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000091 | 141 | # 略 | mysql-bin.000107 | 98 | +------------------…

MySQLの文字セットと照合順序

MySQLでは、データベース、テーブル、カラムのそれぞれに対して文字セットと照合順序を設定できる。 文字セット 用語 文字セットとは、文字と符号の対応付けたセット。 文字コードとは、文字セットの符号をビット列に変換する方式。 例: Unicodeは文字セット…

MySQLのストレージエンジンを確認する

-- 使用できるエンジンを確認する -- デフォルトのエンジンを確認する show engines; -- テーブル設定を一覧表示する show table status; -- テーブルの設定を確認する SHOW CREATE TABLE #{table_name}\G

PHPでの日時処理

PHP

PHPよく理解してないので整理。日時まわり。 date関数 出力したい文字列のフォーマットを受け取り、現在日時(or渡したタイムスタンプ)の日時を、文字列で返す https://www.php.net/manual/ja/function.date.php echo date('Y-m-d'); // -> 2021-06-01 echo d…