tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

npmの使い方

lilytermでショートカットに複数キーを割り当てる

lilytermは設定が簡単で、default.confを少しいじるだけで良くて気に入っている。デフォルトの例だとcopy_clipboard = Ctrl Deleteのような2キーによる設定しかないので3キー使うことが出来ないかと思いきやcopy_clipboard = Ctrl+Shift Cのようにすれば設定できる。

libnssを静的リンクできなかった

ubuntu15.10からantergosに移行したわけだが、先日書いたプログラムがlibboostの特定のバージョンに依存していたため動かなくなってしまった。今後は–staticにしたかったわけだが、最終的にはlibnssへの依存のためできなかった。とはいえ今後のためにメモ。

続きを読む

テンプレートで任意の多次元の配列を出力する

任意の次元の配列をprintする関数が欲しくなったが、単純にベタ書きする方法だと次元が決まっている場合しか対応できないのでテンプレートの再帰を用いたプログラムを書いてみた。

続きを読む

pythonのクラス

メモ(podhmoさんのツイート)

Windows向けにクロスコンパイル

極めてつまらないプログラムを書いた。Windowsユーザの弟も利用すると考えたので少しだけ工夫をした。

# ifdef __MINGW32__
        cin.get();
# endif
        return 0;
  • 実際にWindows10で実行したところ、libstdc++がないとエラーが出た

C++での時間の取り扱い

C++で日時を取り扱うプログラムを書いている。Cスタイル、C++スタイルの両方が存在しているほか、相互に変換するための関数、計測精度ごとに複数の関数が存在するなど非常にややこしい。以下は簡単なまとめとして、具体的にインクルードすべきヘッダ、型に関する情報はレファレンスをその都度参照して確認する。

続きを読む

KLダイバージェンス、JSダイバージェンス

# Kallback-Leiblerダイバージェンス
def kld(p, q):
    p = np.array(p)
    q = np.array(q)
    return np.sum(p * np.log(p/q))

# Jensen-Shannonダイバージェンス
def jsd(p, q):
    p = np.array(p)
    q = np.array(q)
    m = 0.5 * (p + q)
    return 0.5 * (kld(p, m) + kld(q, m))