Skip to content

Instantly share code, notes, and snippets.

@suzuki-kei
suzuki-kei / work-time.sh
Created April 25, 2024 13:49
work-time
#!/usr/bin/env bash
set -eu -o posix -o pipefail
shopt -s extglob
declare -gr EXIT_STATUS_SUCCESS=0
declare -gr EXIT_STATUS_NO_ARGUMENTS=1
declare -gr EXIT_STATUS_INVALID_FORMAT=2
declare -gr STANDARD_BREAK_TIME_IN_MINUTES=60
"""
High and Low における戦略別の的中率を求める.
背景
----
あるゲーム内のミニゲームに High and Low があった.
* 連続的中回数に応じてアイテムを獲得できる.
* アイテムの獲得は 1 日 1 回までであり, 毎日リセットされる.
* 1 回目にコインを支払えば, 2 回目以降は無料でプレイできる.
"""
HTML を生成するためのテンプレートを提供する.
テンプレートには変数で値を置き換えるために,
以下のようにプレースホルダを含めることができる.
<p>こんにちは <%= name %> さん</p>
変数の値はデフォルトで HTML エスケープされるため,
意図しない XSS (Cross Site Scripting) 脆弱性を防ぐことができる.
@suzuki-kei
suzuki-kei / normalize-url.js
Last active January 16, 2022 15:10
Amazon の商品ページ等の URL からパラメータや冗長な部分を削除する bookmarklet
//
// Amazon の商品ページなどの URL を正規化する bookmarklet です.
//
// 具体例:
//
// https://www.amazon.co.jp/XXXXX/dp/B07FQ4DJ7X?tag=xxx&ref=xxx
// -> https://www.amazon.co.jp/dp/B07FQ4DJ7X
//
// https://www.amazon.co.jp/gp/product/B07FQ4DJ7X?tag=xxx&ref=xxx
// -> https://www.amazon.co.jp/dp/B07FQ4DJ7X
@suzuki-kei
suzuki-kei / holidays.gs
Created April 29, 2020 13:44
休業日を判定する Google Apps Script
/**
* 指定された日付が休業日であるか判定する.
*
* @param {Date} date
* 判定対象の日付.
*
* @return {Object}
* 休業日の場合は Truthy な値.
* 休業日ではない場合は Falsy な値.
*/
#!/bin/ruby
#
# Amazon の URL から冗長な要素を削除する.
#
# Example:
# cat amazon-urls.txt | ruby reduce-amazon-url.rb
#
while line = gets do
url = line.chomp
@suzuki-kei
suzuki-kei / README.md
Last active April 21, 2019 05:44
回文数 (Palindromic Number) を生成する

回文数 (Palindromic Number) を生成する.

定義

101 や 12321 のように左右反転しても同じである数を回文数という.

回文数の数

base 進数における N 桁の回文数の個数を考える. base 進数における N 桁の回文数は以下の制約を満たす必要がある.

@suzuki-kei
suzuki-kei / document-index-options.template.html
Last active March 24, 2019 15:54
Generate Document Index
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
fieldset {
margin-top: 1em;
margin-bottom: 1em;
}
#generate {
@suzuki-kei
suzuki-kei / memo.sh
Created November 9, 2014 10:03
memo と打つと ~/.memo/memo.YYYY-MM-DD.txt というファイルを作成し、$EDITOR で開いてくれる Bash スクリプトです。ファイルは daily でバックアップされます。
function memo {
local memo_dir=~/.memo
mkdir -p "$memo_dir"
local current_memo_file=$memo_dir/memo.`date '+%Y-%m-%d'`.txt
local previous_memo_file=$memo_dir/`ls -1 "$memo_dir" | tail -1`
if [ ! -f "$current_memo_file" -a -f "$previous_memo_file" ]; then
cp -pi "$previous_memo_file" "$current_memo_file"
fi
@suzuki-kei
suzuki-kei / cipher.rb
Created November 9, 2014 07:44
Ruby で暗号化するサンプル
require 'openssl'
class Cipher
# 初期化ベクトル.
attr_reader :iv
# 暗号鍵.
attr_reader :key