January 23, 2021
MacOS では shift(⇧) + command(⌘) + 5 から画面収録できるわけだが、それが QuickTime ムービー形式なわけでブログとかにペシっと載せるにはちょっと不都合。なのでアニメーションGIFに変換する簡単な方法ないものかと調べたところffmpegを使えばできる。というわけでワンライナーができた。
ffmpeg を MacOS にインストールしてもいいが Docker Hub にイメージがあったのでそいつを使う。
docker run -v $(pwd):/tmp -w /tmp jrottenberg/ffmpeg -i 画面収録\ 2021-01-23\ 16.12.46.mov -r 24 -vf scale=320:-1 converted.gif サイズを指定しないとそこそこ大きいサイズのGIFが作成され、オリジナルのmovファイルより容量がデカくなってしまうっていう。
September 28, 2020
MySQL の AES_ENCRYPT 関数 # https://dev.mysql.com/doc/refman/5.6/ja/encryption-functions.html#function_aes-encrypt
key_str にプレーンテキストを指定する場合 # HEX 表現で以下の値が得られる。
mysql> SELECT HEX(AES_ENCRYPT('my_value', 'my_secret')); +-------------------------------------------+ | HEX(AES_ENCRYPT('my_value', 'my_secret')) | +-------------------------------------------+ | 6A6C5170A935FA5A70B8B1721EDAC3B7 | +-------------------------------------------+ 1 row in set (0.00 sec) Node.js で同様の結果を得るロジックは以下の通り。
const crypto = require('crypto'); function convertCryptKey(strKey) { let newKey = Buffer.from([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]); strKey = Buffer.from(strKey); for(let i=0; i < strKey.length; i++) newKey[i%16] ^= strKey[i]; return newKey; } const crypt_key = 'my_secret'; const c = crypto.createCipheriv("aes-128-ecb", convertCryptKey(crypt_key), ""); const b = c.
...
September 24, 2020
Ruby の webrick を使ってワンライナーで。
ruby -rwebrick -e 'WEBrick::HTTPServer.new(:DocumentRoot => "./", :Port => 3333).start'
September 9, 2020
DockerHub の amazon/aws-cli イメージで実行するシェルスクリプトを書いてみた。
if [ -n "${DELETE}" ]; then DRY_RUN= fi S3PATH=s3://your-bucket/your-folder/ for file in $(docker run --rm -ti --env=AWS_ACCESS_KEY_ID --env=AWS_SECRET_ACCESS_KEY amazon/aws-cli s3 ls $S3PATH | awk '{print $4}' | egrep -e '\.'); do docker run --rm -ti --env=AWS_ACCESS_KEY_ID --env=AWS_SECRET_ACCESS_KEY amazon/aws-cli s3 rm $DRY_RUN ${S3PATH}${file} done
August 22, 2020
ポータブルな PHP 実行環境が欲しくて Docker Hub の PHP イメージを眺めるメモ。
https://hub.docker.com/_/php
CLI で実行するサンプル # docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.4-cli php my-script.php my-script.php は以下の通り。
<?php echo "hello\n"; 実行結果。
$ docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.4-cli php my-script.php hello インストール済みのモジュールや phpinfo() を確認する # php -m php -i Extensions をインストールするには以下らへんが利用できるらしい。必要になった時のためにメモだけ。
docker-php-ext-configure docker-php-ext-install docker-php-ext-enable 例えば GD extension をインストールしたイメージを用意するには以下のような Dockerfile を用意すれば良いと。
FROM php:7.4-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) gd PECL extensions をインストールする場合はこう。
...
August 4, 2020
TL;DR # 以下コピペで実行。
for i in $(docker ps -a --format '{{ .ID }}'); do docker rm $i; done for i in $(docker volume ls --format '{{ .Name }}'); do docker volume rm $i; done for i in $(docker network ls --format '{{ .Name }}'); do docker network rm $i; done ユースケース # ローカルでDocker利用していて、ふと docker ps -a とか見るとゴミが大量に出てきてクリーンアップしたい!という話。
docker ps の CONTAINER ID だけ列挙したい # --format を使う。
$ docker ps --help | grep format --format string Pretty-print containers using a Go template Go template で書式設定できると。 {{ .
...
July 28, 2020
GitHubのリポジトリ毎で異なるアカウントを利用する方法。
SSHキーの作成とGitHubへの登録 # 公式ドキュメントを見ながらやる。
SSHキーをssh-addする # User A のキーが id_rsa_key_a 、User B のキーが id_rsa_key_b とする。
$ ssh-add ~/.ssh/id_rsa_key_a $ ssh-add ~/.ssh/id_rsa_key_b キャッシュを削除しておいた方が良い。
$ ssh-add -D 追加済みのキーを確認。
$ ssh-add -l ssh configファイルに振り分け設定 # Host github.com-user-a HostName github.com User git IdentityFile ~/.ssh/id_rsa_key_a Host github.com-user-b HostName github.com User git IdentityFile ~/.ssh/id_rsa_key_b それぞれのプロジェクトで git config 設定 # $ git config user.name "user-a" $ git config user.email "user-a@gmail.com" $ git config user.
...
July 13, 2020
ドキュメント見ながら Hugo の使い方をメモ。 https://gohugo.io/getting-started/
post を追加する # $ hugo new posts/hugo-getting-started.md content 以下に新しいファイルが出力される。
$ tree content content └── posts └── hugo-getting-started.md 1 directory, 1 file サーバー起動して確認 # $ hugo server -D http://localhost:1313 で確認できる。
静的ページの出力 # $ hugo -D public 以下に出力される。このファイル群をサーバーにアップすればデプロイ完了。