Skip to content

Instantly share code, notes, and snippets.

View kawaz's full-sized avatar
🏠
Working from home

Yoshiaki Kawazu kawaz

🏠
Working from home
View GitHub Profile
@kawaz
kawaz / GoogleMeet-AutoMute-AutoJoin.user.js
Last active April 8, 2025 09:54
GoogleMeetにカメラとマイクの自動ミュートや自動参加機能を追加するユーザスクリプト
// ==UserScript==
// @name GoogleMeet: auto mute / auto join
// @namespace http://tampermonkey.net/
// @version 2025-04-08
// @description GoogleMeetにカメラとマイクの自動ミュートや自動参加機能を追加する。
// @author Yoshiaki Kawazu ( https://x.com/kawaz )
// @match https://meet.google.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant none
// ==/UserScript==
@kawaz
kawaz / op-run.sh
Last active April 3, 2025 09:43
1password CLI の op run を、引数でもインジェクション出来るようにするラッパースクリプト。
#!/usr/bin/env bash
# 1Password CLI の op run を、引数でもインジェクション出来るようにするラッパースクリプト。
# https://gist.github.com/kawaz/a2d0c5bece913a34d2a6d4a02ca6cc3c
op_args=()
while (( 0 < $# )); do
a=$1
shift
op_args+=("$a")
[[ $a == -- ]] && break
@kawaz
kawaz / reboot-before-after.sh
Last active February 5, 2025 19:24
サーバ再起動する際の起動前後で重要なプロセスの起動漏れとかマウント漏れとかがないかの確認を効率的にする為のメモ。
# 再起動前のメモ
sudo bash -c "set -x; ps auxf; top -bn1; netstat -anp; mount; docker ps" > reboot2025.txt 2>&1
# sudo shutdown -r now
# 再起動後に確認
## 本当に再起動したか?
uptime
## netstat の比較
diff <(cat reboot2025.txt|grep LISTEN|perl -pe's/\d+\///;s/\s\d+\s/ /g;s/[ \t]+/\t/g'|sort -V|perl -pe's/\d+\///;s/[ \t]+/\t/g') <(sudo netstat -anp|grep LISTEN|perl -pe's/\d+\///;s/\s\d+\s/ /g;s/[ \t]+/\t/g'|sort -V)
## mount 状態の比較
@kawaz
kawaz / main.cf に追記
Last active September 21, 2024 03:23
postfixからAmazon SESに雑にメールをリレーさせる設定テンプレ
# ローカルで発生したメールを全部SESにリレーして送信する
sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps.regexp
sender_dependent_relayhost_maps=hash:/etc/postfix/sender_dependent_relayhost_maps regexp:/etc/postfix/sender_dependent_relayhost_maps.regexp
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/smtp_sasl_password_maps regexp:/etc/postfix/smtp_sasl_password_maps.regexp
smtp_sasl_security_options=noanonymous
smtp_sender_dependent_authentication=yes
@kawaz
kawaz / setValue.js
Last active February 10, 2025 03:37
React等が利用されているとinputやtextareaのvalueに値をセットしてもWEBアプリ側に変更が伝わらないことがあるが、それを上手くやる。
/**
* React等が利用されているサイトでは value プロパティに値をセットしてもWEBアプリに変更が伝わらないことがあるが、それを上手くやる。
* valueやcheckedプロパティを変更する際はフレームワーク側で差し替えられてるケースの対応として、ネイティブパーツのsetterを直接使って値を書き換えるのが確実
*
* @param {string | Element | Array<string | Element>} target - 値を設定する対象の要素。文字列(セレクタ)、Element、またはそれらの配列
* @param {string | boolean} value - 設定する値。input/textareaの場合は文字列、checkboxの場合は真偽値でもOK
* @param {boolean} [immediate=false] - trueの場合は即座に値を更新、falseの場合は次のイベントループで更新(特別な理由がない限りはfalseでOK)
*/
function setValue(
target,
@kawaz
kawaz / オドロチドロフローチャート.md
Last active February 29, 2024 04:42
風来のシレン6のオドロ/チドロを利用した銀剥がしチャート。錆よけの腕輪があれば安心して銀剥がしができる。錆よけがない場合も印消しより先に銀剥がしがくるから錆よけが無くても銀はがしはできる、ただし全ての銀をはがし終えたら速やかに装備を外すか処理しないと印が消され始めるので注意。
graph TD;
    subgraph 結果
        R0[何もなし]
        R1[強化値ダウン]
        R2[銀剥がし]
        R3[メッキ印消し]
        R4[印消し]
    end
@kawaz
kawaz / README.md
Last active December 29, 2023 07:58
jscodeshift の使い方メモ。

jscodeshift の使い方メモ。

Usage

↓こんな感じに実行すると、before/after のようにピンポイントでいい感じに修正されたコードが出てくる。みたいな感じに使える。

# -d を外すと元のファイルが修正される
bunx jscodeshift -t modify-video-provider.ts sample.js -d -p
@kawaz
kawaz / archive_file.sh
Created December 14, 2023 04:02
ファイルを日付ディレクトリやインスタンスIDを付けた名前にしつつ移動またはコピーするスクリプト。ログをEFSに集約したりする等に使うことを想定している。
#!/bin/bash
# テンプレート変数を用意
declare -A TEMPLATE_KV=()
while read -r k v; do
k=${k//-/_}; k=${k//:/}; k=${k^^}
TEMPLATE_KV["$k"]="$v"
done < <(ec2-metadata -i -t -h -o -z -p -v)
TEMPLATE_KV[REGION]=$(perl -pe's/[a-z]$//' <<< "${TEMPLATE_KV[PLACEMENT]}")
@kawaz
kawaz / speech.js
Last active December 12, 2023 08:03
読み上げAPIのテスト
// 日本語の声をランダムに1つ選ぶ
const voices = speechSynthesis.getVoices().filter(v=>/^ja-/.test(v.lang))
const voice = voices[Math.floor(voices.length*100000*Math.random())%voices.length]
const ssu = new SpeechSynthesisUtterance()
ssu.lang = 'ja-JP' // 言語
ssu.voice = voice // 発話に使用する音声(未設定の場合lang設定を見て適切な音声が選ばれる
ssu.volume = 1 // 発話の音量 0~1、default=1
ssu.rate = 1 // 発話の速度 0.1~10、default=1
ssu.pitch = 1 // 発話の音程 0~2、default=1
@kawaz
kawaz / list-route53-records.sh
Created December 11, 2023 04:07
Route53の全ゾーンの全レコードセットを取得するスクリプト
#!/bin/bash
set -e -o pipefail
# HostedZone[].Id を保存
aws route53 list-hosted-zones | jq .HostedZones[].Id -r | tee HostedZoneIds.txt
# 全HostedZoneのRecordSetを取得
while read id; do
aws route53 list-resource-record-sets --hosted-zone-id "$id"
done <HostedZoneIds.txt | tee rs.json.tmp