Skip to content

Instantly share code, notes, and snippets.

Avatar

Yoshiaki Kawazu kawaz

View GitHub Profile
View twitter-search-default-to-live.user.js
// ==UserScript==
// @name Twitter search default to live
// @namespace http://tampermonkey.net/
// @version 0.6
// @description Twitter検索のデフォルトタブを「話題のツイート」から「最新」に変更する
// @author kawaz
// @supportURL https://twitter.com/kawaz
// @updateURL https://gist.github.com/kawaz/33e60bd3fbba4e5cc1615d30b97f8ad4/raw/twitter-search-default-to-live.user.js
// @downloadURL https://gist.github.com/kawaz/33e60bd3fbba4e5cc1615d30b97f8ad4/raw/twitter-search-default-to-live.user.js
// @match https://twitter.com/*
@kawaz
kawaz / install_neovim_to_amazonlinux.sh
Last active Nov 2, 2021
install neovim to amazonlinux
View install_neovim_to_amazonlinux.sh
#!/usr/bin/env bash
sudo yum groups install -y Development\ tools
sudo yum install -y cmake
sudo yum install -y python34-{devel,pip}
sudo pip-3.4 install neovim --upgrade
(
cd "$(mktemp -d)"
git clone https://github.com/neovim/neovim.git
cd neovim
make CMAKE_BUILD_TYPE=Release
@kawaz
kawaz / README.md
Last active Oct 20, 2021
docker/docker-compose を nerdctl に置き換えるラッパースクリプト。Mac環境での lima のセットアップ補助も兼ねてる。
View README.md

Introduction

Docker Desktop は有料化云々については元々リポジトリとして便利に使わせて貰ってて課金済みだったしどうでもよくて。それよりも Docker Desktop for Mac が重くて消費電力馬鹿食いするのに辟易したので、この機に lima を試してみることにした。

そしたら導入は簡単だし Docker Desktop に比べてかなり負荷も軽い(アイドル時にアクティブモニタで見るとCPU3%程度)し、面倒かなと思ってたポートフォワードについても lima が勝手に自動ポートフォワードしてくれるので QEMU 内で動いてるコンテナ内のサーバプロセスへのポート開けとかの作業は一切不要で普通に localhost でアクセス出来ちゃうし超便利だった。て事でまだ30分くらいしかさわってないけど気に入ったので Docker Desktop はサクサク消す事にした。

更に最初は nerdctl って打つのに慣れない(明日には忘れてるはず)ので今まで通り docker/docker-compose のコマンドで lime nerdctl がたたけるようにするラッパーコマンドを作っておいた。これは未来の自分が lima や nerdctl の導入や使い方について忘れたときの備忘録も兼ねている。

lima の細かい設定についてはここでは書いてない。というか何もしてない状態で今のところ特に不満は無い。ホストのリソースをどれくらい使って良いかとか変えたくなったら ~/.lima/ 内の設定を弄ったりすれば良いと思うが必要になったときにググればよい。

Setup

@kawaz
kawaz / analyzeCode.js
Last active Sep 29, 2021
javascriptのcodePointAtとcharCodeAtの使い方や文字数の数え方などの練習
View analyzeCode.js
const toCodeUnit = s => s.split("").map(u => `\\u${u.charCodeAt(0).toString(16).toUpperCase().padStart(4, 0)}`).join("")
const toCodePoint = s => [...s].map(p => `\\u{${p.codePointAt(0).toString(16).toUpperCase()}}`).join("")
const splitToVisualChars = s => [...s].reduce((c, p, i, a) => {
let description = p
if (p == "\u200D") {
// ZERO WITH JOINER
description = "ZWJ"
} else if ("\u{180B}" <= p && p <= "\u{180D}") {
// モンゴル文字専用のモンゴル自由字形選択子(3個)
description = `FVS${p.codePointAt(0) - 0x180B + 1}`
@kawaz
kawaz / csprng.js
Last active Sep 5, 2021
ブラウザのJavascriptで暗号論的にセキュアな疑似乱数を使って指定範囲の整数の乱数を得る方法。
View csprng.js
/**
* a以上b以下の整数の乱数を生成する
* @param {number|bigint} a
* @param {number|bigint} b
* @returns {number|bigint}
*/
function getRandomIntBetween(a, b) {
if (b < a) {
// [a, b] = [b, a]
const t = a; a = b; b = t;
@kawaz
kawaz / find-iphone.sh
Created Sep 16, 2019
iphoneを探すのメモ
View find-iphone.sh
#!/bin/bash
username='apple-id@example.com'
password='apple-id-no-password'
authheader="Authorization: Basic $(echo -n "$username:$password" | base64)"
url_initClient="https://fmipmobile.icloud.com/fmipservice/device/$username/initClient"
url_playSound="https://fmipmobile.icloud.com/fmipservice/device/$username/playSound"
# initClient
curl -vXPOST "$url_initClient" -H "$authheader" > initClient.json
@kawaz
kawaz / tools.js
Last active Aug 20, 2021
よく使うJSの便利関数的な奴 tools.js
View tools.js
// Timeout付きInterval。cbに渡されるstopで繰り返しを停止することも出来る
const setIntervalTimeout = (cb, interval = 200, timeout = 5000) => { const stop = () => { clearInterval(i); clearTimeout(t) }, i = setInterval(cb, interval, stop), t = setTimeout(stop, timeout); cb(stop); return stop }
// querySelector のショートハンド
const query = (target) => target instanceof Element ? target : typeof target === 'string' ? document.querySelector(target) : null
const queryAll = (target) => target instanceof Element ? [target] : typeof target === 'string' ? [...document.querySelectorAll(target)] : []
const myStyle = (id) => myStyle[`$${id}`] ?? (myStyle[`$${id}`] = (document.head.append(document.createElement('style')), document.styleSheets.item(document.styleSheets.length - 1)))
const newRule = () => (s => (s.addRule(), s.cssRules[s.cssRules.length - 1]))(myStyle())
@kawaz
kawaz / cfn.cue
Last active Aug 1, 2021
[CUE](https://cuelang.org/) の練習で CloudFormation のテンプレート定義を適当に書き下してみた。
View cfn.cue
package cfn
Template:: close({
AWSTemplateFormatVersion?: "2010-09-09"
Transform?: string | [...string]
Description?: string
Metadata?: [string]: Value
Parameters?: [string]: Parameter
Mappings?: [string]: [string]: [string]: _
Conditions?: [string]: Condition
@kawaz
kawaz / README.md
Last active Jul 6, 2021
ジョブカン勤怠の画面の使いづらいところを個人的に勝手に直すユーザスクリプト jobcan.user.js
View README.md

インストール

TamperMonkey拡張をインストール済みのブラウザで以下URLを開くとユーザスクリプトのインストール承認画面が出てくると思う。 https://gist.githubusercontent.com/kawaz/8f08bbc218ab16b92f5e018801cec668/raw/jobcan.user.js

機能

  • 日付セレクタの -年-月-日 の『日』のセレクタに曜日表示をつけ足す
  • 打刻一覧テーブルで「修正レコードが全て承認された」という前提で以下の色つけなどをする
    • 『開始-終了』のペアが分かりやすいよう青のグラデーション背景にする
    • 『開始』で終わってる場合は赤くする(エラーなので
    • 削除レコードはグレーにする
@kawaz
kawaz / vpn-control.sh
Created Oct 26, 2016
maxOS の VPN をCLIで一覧したり接続・切断したりするスクリプト
View vpn-control.sh
#!/usr/bin/env bash
set -e
usage() {
local name
name=$(basename "$0")
echo "Usage: $name command [options]"
echo " $name list"
echo " $name connect ID"
echo " $name disconnect ID"