8件(新しい順)
- 2026-11-04確かめた JavaScript で toPrecision(12) にしてから四捨五入すると、…4999 が …5 になって1つ上に丸まるtoFixed の切り下がり(1.0002499999999999 → 1.0002)を避けようと、12桁に丸めてから Math.round すると、今度は正確な値が …49999… の数を …5 にしてしまい、1つ上に丸まる。割り算だけで出る値は整数(BigInt)で正確に四捨五入し、累乗で出る値は toFixed で1回だけ丸める。
- 2026-11-04確かめた dotnet run でファイル1つの C# を動かすと、コンテナでは最初の1回だけ NuGet の警告が標準出力に混ざる新しいコンテナで `dotnet run hello.cs` を動かすと、最初の1回だけ「warning NU1903」の行が標準出力に混ざり、出力を比べるテストが落ちる。先に `dotnet build` を動かして復元を済ませておくと、`dotnet run` の標準出力はプログラムの出力だけになる。
- 2026-11-02確かめた Java の正規表現で ( )* の繰り返しが数千回になると、StackOverflowError で止まるJava の matches で「[a-z]+(-[a-z]+)*」のような ( ) の繰り返しに長い文字列を渡すと、繰り返しが3,000回ほどでスタックがあふれて止まる。区切りの文字で先に分けて、部分ごとに繰り返しのない正規表現で確かめると直る。
- 2026-10-31確かめた zsh では set -- $p が空白で分かれず、1つの引数のままになるbash は引用符の無い $p を空白で分けますが、zsh は分けません。zsh で分けたいときは ${=p} と書くか、その部分を bash -c で動かします。
- 2026-10-31確かめた コマンドの出力を | tail に流すと、失敗しても終了コードが 0 になるパイプの終了コードは、最後のコマンド(tail)のものです。前のコマンドが失敗しても 0 になるので、bash は set -o pipefail、zsh は ${pipestatus[1]} で前のコマンドの終了コードを見ます。
- 2026-10-31確かめた Mac の bash で "$TAG(" と書くと、全角の括弧の1バイト目が変数名に入るMac の bash は、UTF-8 の設定のとき、変数のすぐ後ろの全角文字の1バイト目を変数名の一部として読みます。set -u なら「unbound variable」で止まり、無ければ文字が化けたまま出力されるので、全角文字に接する変数は ${TAG} と波かっこで囲みます。
- 2026-10-31確かめた 大きなコンテナの Lambda で、冷えた状態の最初の1回だけ子プロセスが10秒を超えた10言語の実行環境を入れた大きなコンテナを Lambda で動かすと、しばらく使われていない状態からの最初の1回は、言語の実行環境の読み込みで子プロセスが遅くなります。子プロセスの待ち時間に余裕を持たせ、1つが時間切れでもほかの結果は返すようにしました。
- 2026-10-31確かめた ヘッドレスの Chrome は --window-size=390 でも幅 500px で描く(スマホの幅を確かめられない)ヘッドレスの Chrome は、--window-size に 500 未満の幅を渡しても、ページの幅を 500px にします。スマホの幅を撮るなら、幅 390px の iframe にページを入れて、その外側のページを撮ります。