CS

dockercodexCS

timeout docker compose exec から学ぶCS - Codex では動くのにTerminalからでは止まる -

この記事で分かること Codexの Terminal で timeout docker compose exec が正常に動作するのに、ローカルのTerminalでは同じコマンドが途中で停止してしまう。この現象の背後には、プロセスグループ、TTY制御、そして実行ハーネス という、コンピュータサイエンスが隠れています。 環境情報 * Docker Compose: version 3.8 * Go: 1.23 * timeout コマンド: GNU coreutils -------------------------------------------------------------------------------- 結論:3つのオプションで解決できる 先に結論を示します。ローカル環境で Codexと同じ安定性を得るには、次の3つのオプションを組み合わせます。 timeout --foreground 5 \ docker compose exec -T \ go-app bash -lc "go run main.go" \ < /dev/nu
Kohei Kondo
Kohei Kondo
6 min read
algorithmBITGo

Signed bitとBITとGoと

目次 * きっかけ * Two’s complement(2の補数) * 累積和 * BIT(binary indexed tree) * 転倒数 きっかけ 先日友人から下記の結果についての質問がきた。 package main import ( "fmt" ) func main() { const a = ^0 fmt.Println(a) } 皆さんも予想してみてほしい。 実行は↓から The Go Playground [https://play.golang.org/p/qpWRExXsJ8E] ^0 はNOTでbit反転なのだが、値はintegerのmax値になることなく `-1` となる。 これは、ご存知Signed Integer で全bitが1の場合はTwo’s complement(2の補数)となり `-1`が出力される。 そして、Goのconstは数値が右辺に来た場合はSigned Integer Typeとデフォルトで解釈する。 では uintのmaxの値をbit反転で取りたい場合はというと package
Kohei Kondo
Kohei Kondo
5 min read