0桁埋めした文字列を返す関数
/** * 0埋めしたdigit桁の文字列を返す。 * @param {number} n 非負整数 * @param {number} digit 正整数 */ function zeroPadding(n, digit) { return "0".repeat(digit).concat(n).slice(-digit); }
他に無いらしい。時刻を指定したフォーマットで文字列に変換するメソッドが欲しかっただけなのに。
function dateToFormat(date, format = "y/m/d H:M:S") { let txt = ""; for (let chr of format) { if (chr === 'y') txt = txt.concat(zeroPadding(date.getFullYear(), 4)); else if (chr === 'm') txt = txt.concat(zeroPadding(date.getMonth(), 2)); else if (chr === 'd') txt = txt.concat(zeroPadding(date.getDate(), 2)); else if (chr === 'H') txt = txt.concat(zeroPadding(date.getHours(), 2)); else if (chr === 'M') txt = txt.concat(zeroPadding(date.getMinutes(), 2)); else if (chr === 'S') txt = txt.concat(zeroPadding(date.getSeconds(), 2)); else txt = txt.concat(chr); } return txt; }
N 秒間だけ処理を実行する c++ のコード
処理を実行するのは、メインスレッドでない別のスレッド。
メインスレッドは、sleep_for
で待機して、時間になったら atomic_bool
で通知する。
#include "bits/stdc++.h" using namespace std; int main(){ atomic_bool halt(false); long long counter = 0; thread t([&halt, &counter](){ while (!halt){ ++counter; } }); this_thread::sleep_for(chrono::seconds(1)); halt = true; t.join(); cout << "counter: " << counter << endl; return 0; }
若干遠回りの方法だけれども、むしろこっちの方が有利な点もあるかと思う。
std::chrono::system_clock
がボトルネックになる場合は使えるかも。
nodejs サーバのWebサイトに Google IDによる 認証機能を実装する
CUDA で HelloWorld
環境
- Windows10
- Visual Studio 2017 + Visual Studio 2019
- NVIDIA のグラフィックボードが刺さっている(geforce gtx 1050ti)
- CUDA Toolkit v10.1.105 が公開されている
やる
CUDA Toolkit のインストール
上のリンクから、ツールキットがインストール出来る。
容量が気になる場合は、カスタムインストールにして、Sample等を除外する。
Visual Studio 2017 の起動
プロジェクトの新規作成。すると、CUDA 10.1のカテゴリがある。
CUDA 10.1 Runtime
をクリックして、プロジェクトを作る。
Build・Run
サンプルコードが既に実装されているので、デバッグなしで開始
をクリック。