Go
Release v0.10.0 · hymkor/make-scoop-manifest GitHub のレポジトリから scoop 用の manifest を生成するツール: make-scoop-manifest。使い方として次の3種類があると説明をしていたが、分かりにくかった。 レポジトリの場所は git remote show -n で取得…
既存のライブラリに bufio.Scanner があるが、改行をカットしてしまう 改行を含めて読み取りたいときは (*bufio.Reader) ReadString('\n') を使う EOF を検出した時の処理が面倒だが、雑に書くと最終行が失われてしまう 面倒なく、ありのままに読み込むコー…
以前: hymkor/go-minimal-optional: The minimal optional package for golang Go言語で必要最小限の optional パッケージを実装したものの、安全性と使い勝手の両立は難しい - 標準愚痴出力 というパッケージを作ったが、別の方式で、もう一つ作ってみた。…
tidwall/btree: B-tree implementation for Go 既存のメソッド Scan の仕様が range から呼ばれた関数の要求仕様にちょうどマッチしてた。 package main import ( "fmt" "github.com/tidwall/btree" ) func main() { var users btree.Map[string, string] //…
意外と簡単でした(Lua に慣れてる人は、コールバック関数を戻り値として返すというやり方はおなじみかも) uncozip のパッケージは、ZIPファイルの各ファイルをリストアップする関数として (*CorruptedZip) Scan() bool というメソッドがあります。この実装…
Windows の検索コマンド find.exe は検索対象の文字列は二重引用符で囲んで与えてやらないといけないという困った仕様があります1。 C:> find /? ファイル (複数可) 内のテキスト文字列を検索します。 FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "文字列" [[ド…
zenn.dev に Goの1.22にGOEXPERIMENTガード下で導入されるrange over func proposalを試してみる という記事があったので、試してみた。同記事にある手順: go install golang.org/dl/gotip@latest gotip download 510541 は特に問題なく完了した。ダウンロ…
以前、 zip/tarファイルと、それを展開したと思われるディレクトリがあった時、両者が一致していて一方を削除してしまっても大丈夫かを検証するツール(verifyarc)を書いた。 hymkor/verifyarc: A tool that verifies that when there is a ZIP file and a di…
最近、作り込んでいる はてなブロククライアント だが、投稿テキストをテキストエディターで編集した後、os.Remove で削除していた。だが、何らかのトラブルがあって投稿が失敗したのに検知できなかったという最悪ケースのため、完全削除よりは、復元できた…
WriteRune を持たない io.Writer 相手に 1-rune を出力するのに、fmt.Fprintf(〜,"%c",r) を使いがちだが、utf8.EncodeRune を使ってやった方が速いのではないかと思い検証してみた。 hymkor/study-go-write-rune: Goで WriteRune を持たない io.Writer で最…
レポジトリの README.md からの導線が分かりづらくて、なかなか気付いてもらいにくいのですが、go-readline-ny のカスタマイズ方法を Wiki にまとめました1 Home · nyaosorg/go-readline-ny Wiki 記載内容は 日本語目次 にあるとおりですが、次のとおりです…
hymkor/go-htnblog: はてなブログ投稿Goライブラリ いい加減ウェブブラウザで、markdown を編集するのはしんどくて、vim で編集するために作りました1。 ※ (2023-10-17 追記) 記事公開後、不具合が見付かり、v0.1.1 → v0.2.0 と更新しているので、ご注意くだ…
(2023/9/13)コードが分かりづらかったので、全面的に書き直しました (x1 *X) Add(x2 *X) *Xというメソッドを持つ型(X) (y1 *Y) Add(y2 *Y) *Yというメソッドを持つ型(Y) これを等価に扱いたい。 引数がその固定の型であれば普通の interface で済むところ…
Release v0.12.0 · hymkor/go-multiline-ny Enter だけを入力した時にそれを入力終結と判断する「条件」を関数で指定できるようになりました。 たとえば、SQL Bless v0.9.0 では、Enter を入力したとき、最終行の行末がセミコロンで終わっていたら入力を終結…
nyagos というツールをメンテナンスしているが、このツールはまだ当分 Windows8.1 や WindowsServer2008 をサポートしたい。 だが、最新の Go 1.21.0 はそれらの OS のサポートを切ってしまっているので、Go 1.20.7 でビルドしたバイナリを引き続き提供する…
YouTube 動画で、新しい for range をデモってる人が gotip というコマンドを使っているので、go1.20.7.exe とかと同じかなと思って、 go install golang.org/dl/gotip@latest gotip download してみたところ、 Cannot find C:\Users\hymkor\Go1.4\bin\go.ex…
Go 1.21.0 のマイナーなライブラリ修正の中に、sync.OnceValue という関数が追加されていた。1 sync The new OnceFunc, OnceValue, and OnceValues functions capture a common use of Once to lazily initialize a value on first use. どうやら、これは遅…
hymkor/sqlbless: The Command-line Database Client 共通 型名は DB ごとにばらばらだが、ANSI SQL の型がエイリアスになっている模様 可変長文字列型 → CHARACTER VARYING(n) 数値型 → NUMERIC[(n)] Oracle Database 21 Express Edition コマンドラインク…
(2023/04/14:追記) v0.10.0 にて非互換性を含む修正を行ったため、その変更点を反映しました。 go-readline-ny は v0.6.1 から文字ごとに色を変更できるようになりました。 この配色は固定ではなく、readline.Editor のフィールド Coloring に設定された…
go-readline-ny で Enterで改行挿入だけ Ctrl-Enter or Ctrl-J で入力内容確定(送信) が出来たらいいなぁと思ったので、トライしてみました。 当初はパッケージの改造がいるかなぁと思ってたんですが、キーマップへのコールバック関数のアサインだけでなん…
zenn.dev に投稿しようかと思って書き始めたけど、結局、塩漬けのままになってしまったのを再利用シリーズ第二弾 Go言語で ISLisp のサブセットを作ってる hymkor/gmnlisp: gmnlisp - the subset of ISLisp でも、単に規格書に載ってる標準関数を一つずつ実…
(当文書は zenn.dev あたりに投稿しようかなと思って書き始めたんですが、書いているうちに文書量の割に役立つ内容がないのでボツにしたものです。もったいないのでブログの方に残しておきます) きっかけ twitter の先行きがいろいろ不安なので自分の全ツ…
(先日、gist に書いたものをこちらへ移動) package main func sub() (rc int) { defer func() { println("defer func():", rc) rc *= 2 }() rc = 1 return 2 } func main() { rc := sub() println("main:", rc) } $ go run defer.go defer func(): 2 main:…
github.com 本記事は https://twitter.com/NyaosOrg/status/1612296206193143809 以下のスレッドの転載になります。 scoop のマニフェストファイルとは何かについては、以下もご覧ください(本記事の記載内容と若干重複していますが) scoop の野良パッケー…
benhoyt/goawk: A POSIX-compliant AWK interpreter written in Go Go言語による gawk 互換処理系 Windows では Unicode-APIを利用しているため、コンソールに UTF8 を出力しても、化けずに表示される(逆にいうと、CP932 は対応していない) シングルクォー…
まぁ、当たり前の話ではあるんだけど、github.com/zetamatta/go-windows-dbg を改造するにあたって大丈夫か?とちょっと不安になったので、念のため検証。 サブパッケージ(bar)は release タグの有無で挙動が変わる。タグを指定するのはメインパッケージ(mai…
Windows のAPI関数を呼ぶ場合は、DLLの名前と関数名があれば、"syscall"パッケージ、もしくは "golang.org/x/sys/windows" パッケージの NewLazyDLL・(*LazyDLL)NewProc を使えばよかった (参考:Big Sky :: golang で型付きで DLL を呼び出す方法)。 が、…
ブランチ名で指定したらよいようだ。 $ go get github.com/USER/REPOSITRY@master go: github.com/USER/REPOSITRY master => v0.0.4-0.20200929012639-b0f19ff1ae2f go: downloading github.com/USER/REPOSITRY v0.0.4-0.20200929012639-b0f19ff1ae2f 上に挙…
仕事で使う月次データを日別に分解するコンバーターを Go で書いた。が、 .\month2daily [-o OUTPUT.zip] source.tsv というコマンドラインのパラメータ、非開発者では使えんので。GUI が欲しい。 Walk 使おうかとも思ったが、manifest ファイルを作成しない…
yuin/gopher-lua: GopherLua: VM and compiler for Lua in Go Lua 5.1 ☆3600 production used:現行、もっとも使われている処理系。 ほぼフルセット 。ガベコレを Go に頼ってる都合、__gc がサポートされていないので、メモリ以外のリソース管理がつらい(C…