Skip to content

Instantly share code, notes, and snippets.

@terashim
terashim / nkf-sample.sh
Created October 7, 2019 04:04
nkfコマンドの基本的な使い方
# インストール
brew install nkf
# 元ファイル作成
echo 'こんにちは' > test.txt
# 文字コードを調べる
nkf -g test.txt
# Shift JISに変換
@terashim
terashim / last-month-1st-date.R
Created December 13, 2019 06:54
先月の月初の日付を取得する
# 先月の月初の日付を取得する
library(lubridate)
floor_date(today() - months(1), "month")
@terashim
terashim / last-month-last-date.R
Created December 13, 2019 06:58
先月の月末の日付を取得する
# 先月の月末の日付を取得する
library(lubridate)
floor_date(today(), "month") - days(1)
@terashim
terashim / portainer.fish
Last active February 24, 2020 15:58
Docker Desktop for Mac & fish shell環境でPortainerを起動する関数
# Portainer Local CLI
#
# Docker Desktop for Mac & fish shellのローカル環境でPortainerを起動する関数
#
function portainer
echo "Dockerの状態を確認します"
echo "> docker system info"
docker system info
if [ $status -ne 0 ]
echo "エラー: Dockerが起動していません. 終了します."
@terashim
terashim / y_m_d.R
Created December 26, 2019 10:39
y_m_d() 年、月、日の整数値ベクトルから日付ベクトルを作成するR関数
#' 年、月、日の整数値ベクトルから日付ベクトルを作成する
#'
#' @param y 年
#' @param m 月
#' @param d 日
#' @return 日付ベクトル
#' @examples
#' y_m_d(2019, 10, 2:4) # => [1] "2019-10-02" "2019-10-03" "2019-10-04"
#' y_m_d(c(2019, 2020), c(1, 2), c(10, 20)) # => [1] "2019-01-10" "2020-02-20"
y_m_d <- function(y, m, d) {
@terashim
terashim / install-python3.8-venv-macos.sh
Created January 7, 2020 04:19
Mac OS に Python 3.8 をインストールして venv 環境を作成する例
# Mac OS に Python 3.8 をインストールして venv 環境を作成する例
# Homebrew で Python 3.8 を取得
brew install [email protected]
# $HOME/.venv/3.8 にPython 3.8 用の venv フォルダを作成
# (プロジェクトごとにvenv環境を分離したい場合は, 別フォルダを作成する)
/usr/local/opt/[email protected]/bin/python3 -m venv $HOME/.venv/3.8
# 用法
#
@terashim
terashim / load-mathjax-v2.7.6.html
Created February 3, 2020 15:47
Load MathJax v2.7.6
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>
<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js?config=TeX-MML-AM_CHTML"></script>
@terashim
terashim / README.md
Last active March 2, 2020 10:32
BigQuery パーティショニングによるクエリサイズの削減実験

BigQuery パーティショニングによるクエリサイズの削減実験

パーティショニングされたテーブルに対してクエリを実行するとき, パーティショニングフィールドの値で絞り込むとデータ処理量を削減できる. しかし, サブクエリや他のテーブルを使って絞り込み条件を与えるとクエリサイズ削減が効かない.

ドキュメント パーティション分割テーブルのクエリ | BigQuery | Google Cloud より引用

述部フィルタはテーブルの識別子に可能な限り近いところに記述してください。述部(内部クエリやサブクエリなど)を解決するために複数の段階でクエリの評価を行う必要がある複雑なクエリでは、クエリからパーティションがプルーニングされません。

@terashim
terashim / bigquery-extract-data-at-every-end-of-month.sql
Created March 2, 2020 06:50
BigQuery クエリの例 - 日付でパーティショニングされたテーブルから毎月月末のデータのみ抽出する
--
-- BigQuery クエリの例 - 日付でパーティショニングされたテーブルから毎月月末のデータのみ抽出する
--
-- パーティショニングされたテーブルに対してクエリを実行するとき,
-- パーティショニングフィールドの値で絞り込むとデータ処理量を削減できる.
-- しかし, サブクエリを使って絞り込み条件を与えるとクエリのサイズ削減が効かない.
--
-- 処理サイズを抑えながら毎月月末のデータだけを抽出するクエリの例を示す.
--
-- ### データの準備
@terashim
terashim / README.md
Created May 14, 2020 05:52
DBeaverでSSHトンネル接続する場合はPEM形式の秘密鍵が必要

DBeaverでSSHトンネル経由の接続をする場合、SSH秘密鍵はOpenSSH形式ではなくPEM形式にする必要がある。

例えば既にOpenSSH形式の秘密鍵 ~/.ssh/id_rsa があるとき、それをPEM形式に変換したファイルを ~/.ssh/id_rsa.pem に作成するには

cp ~/.ssh/id_rsa ~/.ssh/id_rsa.pem
ssh-keygen -p -m PEM -f ~/.ssh/id_rsa.pem

とする。