コピペコードで快適生活

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

JWTについて

JWS/JWE/JWT/IDトークンってなに? https://qiita.com/TakahikoKawasaki/items/1c1bcf24b46ebd2030f5 https://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-id-token.html 直列化方式として2つある JWS (J…

npmライブラリで型情報を提供するには

https://typescriptbook.jp/reference/declaration-file に書いてあった。 Phaserの場合 Phaserの場合は「JavaScriptで書かれたパッケージだが.d.tsファイルを同梱している」に該当する。 型定義ファイルの場所はpackage.jsonに記載がある。 https://github.…

libmysqlclient.so.18: cannot open shared object file

rails s で libmysqlclient.so ない言われたときの調査メモ こんなエラーがでる libmysqlclient.so.18: cannot open shared object file: No such file or directory - /path/to/mysql2.so (LoadError) libmysqlclientがインストールされているか確認する # …

crypt関数とかglibcとか

WordPressのDBに保存されているハッシュ化されたパスワードの値が気になったので調べた話 を読む過程で crypt関数 ってなんだっけ?となったので、調べたことメモ。 PHPのcrypt関数 不可逆のハッシュ値を生成する C標準ライブラリのcrypt関数に実装依存する …

git submodule

git

# submoduleの追加 git submodule add git@github.com:kinosuke01/xxxxx.git xxxxx # submoduleの状態確認 # どのコミットハッシュのバージョンが # submoduleとして登録されているかを確認できる git submodule # submodule内でコミットを積んだ場合は、 # …

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 # Dockerfileを元にイメージを作成する d…

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 …