標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

2025-10-01から1ヶ月間の記事一覧

GNU AWK for Windows 5.3.2 が assertion failed で落ちる

awk

とある OSS のテスト中に確認。なんだかなぁ > echo 17379 mel | gawk "match($NF,$1)>0{ print }" Assertion failed: s[len] == '\0', file re.c, line 57 > gawk --version GNU Awk 5.3.2, API 4.0, (GNU MPFR 4.0.2, GNU MP 6.1.2) Copyright (C) 1989, 1…

Goの構造体タグによるコマンドラインオプション・設定ファイル・環境変数の一元管理

go

いわゆるクリーンアーキテクチャでコマンドラインツールを作る時、標準の "flag" パッケージのオプションを全部構造体へ転記するのが面倒です。 そこで、次のようにタグにオプション名と Usage を書いておけば、flag.Parse が構造体へ直接フラグ値を代入して…

Unicode の曖昧幅の文字は2セルか1セルか?

Unicode では各コードに対応する文字がターミナルで、どれだけの幅をとるかという補助情報を扱う「East Asian Width」というプロパティを定義しています。 値 意味 表示幅 F (Fullwidth) 全角文字 2 桁 H (Halfwidth) 半角文字 1 桁 W (Wide) 通常全角扱い 2…

環境変数から得る端末情報おぼえがき

昔は TERMCAP/TERMINFO でターミナルで使うべき制御コードが得られた。現在の端末はほぼ VT100 互換なので、その役割は薄れている。 一方、まだ自動では判別できない端末情報があり、一部のライブラリ・アプリケーションは次の環境変数からそれを取得してい…

5DB x Go言語 "database/sql" プレースホルダーまとめ

(2025-10-25更新) SQLite3, MySQL でのバインド変数の利用について追記 DB プレースホルダーor バインド変数 SQLite3 ? $VARNAME, :VARNAME, @VARNAME SQL Server @VARNAME Oracle :VARNAME PostgreSQL $1 $2... MySQL ? (@VARNAME) プレースホルダー・バイ…

PowerShell で (Go言語のように) リダイレクトされてたら、標準出力を UTF8 化する

注意:PowerShell 7 でしか検証してません $saveEncode = $null if ([Console]::IsOutputRedirected) { $saveEncode = [System.Console]::OutputEncoding [System.Console]::OutputEncoding=[System.Text.Encoding]::UTF8 } # ... 中略 ... if ( $saveEncode…

Go言語で、コンパイラのバージョンによって import 先を切り替える

go

"log/slog" の出力をS式化するアドオン sxlog-go というパッケージを開発しています。 Release v0.2.0 · hymkor/sxlog-go "log/slog" は Go 1.21 で実装された標準ライブラリですが、ちょうど 1.21 で Windows 7, 8, Server 2008 R2 へのサポートは切られて…

Windows 版 goawk は LF 改行を扱えない (続報リンク追記)

(続報あり→Windows版 goawk v1.30.0 でLF 改行を出力できるようになった) Go言語でツールを書いていると、Windows でも LF 改行のテキストファイルを扱うことがめずらしくない。だが、goawk で加工しようとすると、LF が CRLF に変換されてしまう。これを…

PowerShell でのワイルドカード展開のソート順が難儀

リリースノートに記載された最初のバージョン部分の記載を日英それぞれについて引用するツールを PowerShell で作っている。基本的には英語の方を先に出るようにしたいので、読む順番は: release_note.md release_note_en.md release_note_ja.md としたい。…