標準愚痴出力

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

2024-01-01から1年間の記事一覧

引き続き、ISLisp 検証パズルを進めてる

自作Lispで、ようやくISLisp の検証プログラムが少し動くようになってきた - 標準愚痴出力 引き続き、ISLisp の検証プログラム対応を続けている NG は多々あるんだけど、まずは、全ての検証式の処理以前に途中で止まってしまう問題をクリアしないといけない…

自作Lispで、ようやくISLisp の検証プログラムが少し動くようになってきた

自作Lispで、ようやく ISLisp の検証プログラムが少し動くようになってきた。 このプログラム、テストケースを動かすための土台(tp.lsp)そのものがテクニックが駆使された難しいコードで、自作Lisp ではそれをまず処理できずにつまづいていた。テストケース…

Go の "flag" パッケージのヘルプ表示部分を差し替える

Go

flag パッケージのヘルプ表示は -h オプションを指定された時や、引数ゼロの時に自動で表示される。 だが、issue 対応している中、その自由度が結構きつくて、ユーザの提案に対応できない事態が発生した。 -flagname XXXXX UUUUUUUUUUUU (default: DDDDD) こ…

最近の jj の動向 (v0.17〜v0.19)

Git互換 DVCS jj の最近の動向 (2024-06-28) jj v0.18.0 の jj split の画面が乱れまくって使いものにならなくなってる件 - 標準愚痴出力 差分編集パッケージの scm-record が v0.3.0 になった影響の模様 TABコードの描画がおかしいという issue が出てた (2…

Windows11の開発者向け仮想環境イメージのダウンロードと日本語化

Windows デベロッパーセンターより、各種仮想化ソフトウェア向けのイメージをダウンロードする Download a Windows virtual machine - Windows app development | Microsoft Developer (機械翻訳) Windows 仮想マシンのダウンロード - Windows アプリ開発 | …

コマンドラインフィルターを使って nyagos の文法を手直しする

以前もコマンドラインフィルターについて次のような文書を書いたことがあるのですが、説明がほとんどなかったので、改めて解説文書を書いてみました。 Lisp を nyagos のコマンドラインに埋め込む Lua アドオン - 標準愚痴出力 Lisp を nyagos のコマンドラ…

curl と jq で、GitHub レポジトリの Contributor list を作る

(1) issue の起案者の一覧を GitHub からダウンロード curl "https://api.github.com/repos/USERNAME/REPOSITORY/issues?state=all" > issues.json Open/Close 問わずに取得したいので、URL の ?state=all を追加する そのままだと1ページ目だけしか出ない。…

直近の Lisp 活動 (gmnlisp v0.7.0 and Smake v0.4.1)

gmnlisp v0.6.0 で出来ていなかったこと: 既存エラーのLispオブジェクト化 対応エラー追加:<undefined-function> スロットを参照する包括関数 (undefined-entity-name), (undefined-entity-namespace) も対応 → まだまだ修正は続く データと関数の名前空間が同じ → 対応! (lam</undefined-function>…

jj v0.18.0 の jj split の画面が乱れまくって使いものにならなくなってる件

Git互換の分散バージョン管理システム jj の v0.18.0 で jj split の画面が乱れるという問題が(僕の手元だけで)発生している。具体的にはこんな感じになる。 どうも、タブの桁数カウントか何かがおかしいようだ。症状が分かりやすい例を作ってみた。 v0.17…

最近の Lisp 活動 (gmnlisp v0.6.0)

SQL-Bless が一段落したので、また gmnlisp のコードさわってました。いい加減コミットも 100近くまでたまってきたので、一応リリースしました。 Release v0.6.0 · hymkor/gmnlisp 結構すすみました。 包括関数の実装がたぶん完了 オブジェクトシステムの機…

ls (dir /b) の出力を JSON 配列にする (join関数なしに文字列連結を行う)

awk

lsの出力をJSON配列にする #Bash - Qiita ときどきの雑記帖 Re* | Ghost in the Shell 自分も gawk × コマンドプロンプトバージョンで: dir /b | gawk "BEGIN{ dem=\"[\n\" } ; { printf \"%s\x22%s\x22\",dem,$0 ; dem = \",\n\" } END{ print \"\n]\" }" j…

ISLisp の包括関数のどれが呼ばれるだろう

ISLisp の包括関数 (generic function) って、要は「関数の多重定義」みたいなもんだと思うんだが、一つ疑問があった。 (defgeneric) で宣言したパラメーターリストと、(defmethod) で宣言した関数群で、引数名がくいちがっていても大丈夫だろうか? 実験し…

Lisp で、メソッド名より前にレシーバー名をおいて、メソッドを呼び出す試み

(2024.06.26) 追記あり Lisp でオブジェクト指向プログラミングをする場合、他の言語と違い、(METHOD OBJECT PARAMS...) みたいに呼び出すことが多い。 これを無理やり、(OBJECT METHOD PARAMS...) みたいに呼び出す方法を考えた。そのためには、 クラスは、…

【解説】SQL-Bless v0.14.0 を公開しました

v0.13 の時は修正内容が細かく多過ぎたので、解説記事を省いてしまったのですが、今回はがんばってかきました。 Release v0.14.0 · hymkor/sqlbless 起動パラメータの改善 MySQL の TIMESTAMP を edit コマンドで適切に扱うには、起動パラメータの DSN で ?p…

AppVeyor で nyagos がビルドできなくなっていたのを直した

nyagos は Windows7, 8.1 もまだサポートしているので、ビルドの要件は Go 1.20.14 だが、AppVeyor ではデフォルトの Go でビルドするようにしていた。 だが、 go fmt の最後で次のようなエラーになるようになってしまった。 go: downloading github.com/Mic…

GoのMySQLドライバーと loc パラメーター "Local" とSQL-Bless

SQL-Bless で MySQL に接続する場合、第二引数でGo言語用のMySQLドライバーへ引き渡す接続文字列をわたさないといけないため sqlbless mysql "root:@/mydb?parseTime=true&loc=Asia%2FTokyo" と指定させていたが、ロケーションがSQL-Bless を動かしているタ…

PureGo な SQLite3 ドライバーの glebarez/go-sqlite のドライバー名に "3" がついていない件

glebarez/go-sqlite: pure-Go SQLite driver for Go (SQLite embedded) そのまま import _ "github.com/glebarez/go-sqlite" すると "database/sql".Open で使う、ドライバー名が sqlite になってしまう。 mattn/go-sqlite3 と同じ sqlite3 というドライバー…

今までよく理解できていなかった、bash のヒストリを参照して編集した時のヒストリエントリの変化

bash で実験したが $ echo 1 $ echo 2 $ echo 3 と入力した後、Ctrl-P で echo 2 を呼び出して echo 2+ に変更すると、ヒストリ構造は一時的に echo 1 echo 2+ echo 3 みたいになる。だが、だが、一旦 Enter を押すと echo 1 echo 2 echo 3 echo 2+ のように…

Go modules を使っている時、自モジュールの最新コミットの機能を自分の他のGo パッケージから参照するだけで第三者に使ってもらう必要がないのであれば、無駄に新たな git tag をつけなくてもよいかもしれない

go

みんな普通にやってるかもしないし、やっていないかもしれない。どうなんだろ (追記) 前にも同じようなテキスト書いてた。おれはもうだめだ TL;DR go get -u するだけでは、最新のタグのついたバージョンまでしか参照されないが、パッケージ名にブランチ名…

SQL-Bless の競合を調べてみた - xo/usql

xo/usql: Universal command-line interface for SQL databases 8700-STAR もある巨人 PostgreSQL の標準ツール psql にインスパイアされたツール。psql を模したコマンドの他、いろいろ便利なものが拡張されている サポートする DB が無茶苦茶多い Go言語製…

SQL-Bless とgo-sql-driver/mysql と日時データ型とタイムゾーン

go-sql-driver/mysqlと日時データ型とタイムゾーン parseTimeはtrue locに指定するタイムゾーンとMySQLのタイムゾーンを一致させる 後者についてはこれらがずれてしまっていると、例えばTIMESTAMP型に内部的に保存されている値は通常UTCで解釈すべき値ですが…

Git互換バージョン管理システム Jujutsu で Linux の実行ファイルが勝手に登録されがちになる問題

※ 2024-06-13 追記あり martinvonz/jj では、明示的な add 操作をしなくても、自動的にファイルがレポジトリ管理されるようになっている。 Windows では .gitignore に *.exe と書いておくことで実行ファイルを登録から自動的で除外することができるが、Linu…

【解説】ターミナル用 DBクライアントSQL-Bless v0.12.0 を公開しました

前回→ 【解説】ターミナル用データベースクライアント SQL-Bless で CSVI をページャとして使うようにしてみました - 標準愚痴出力 Release v0.12.0 · hymkor/sqlbless v0.10.1 では SELECT の結果を Csvi でスプレッド風に表示させるようにしたわけですが、…

【解説】ターミナル用データベースクライアント SQL-Bless で CSVI をページャとして使うようにしてみました

もともと SQL-Bless って、SELECT 結果を CSV 形式で出力するようになっているんですよね。 で、CSVI はファイルだけでなく、標準入力から CSV データを読み込むことができるようになっている。 これは連結すると便利じゃね?ということで、SQL-Bless に CSV…

csvi 以外の最近の活動(2024年4月)

go

go-readline-ny v1.3.1 サブパッケージ completion で、空状態で補完するとクラッシュする不具合を修正するプルリクエストをいただきました。ありがたい あと、csvi でやった一文字キー入力の仮想化をこっちでもやりました。前から ITty という interface で…

【解説】 CSVI v1.8.1 【これで完成?】

Release v1.8.1 · hymkor/csvi v1.8.0 まだ全行読み切っていないとき、ステータスラインの読み込み済み行数欄を毎秒4回更新するようにした 今まではキー入力直後にしか更新していなかったので「なんか全行数が少なく見えるな」と誤解することがあったわけで…

Windows Terminal の内部的なコードページがおかしくなる現象

Windows Terminal、プロファイル「コマンドプロンプト」を開き、CMD.EXE のコマンドラインの中から手動で wsl.exe を起動するなりして、一度でも Linux ターミナルとして使用すると、そのあと exit で CMD.EXE に戻ってきても、どうもどこかコードページの設…

【解説】 CSVI v1.7.1 をリリースしました。

Release v1.7.1 · hymkor/csvi 前に説明したのは v1.5.0 だったので、v1.6.0, v1.7.0 の変更点も合わせて CSView → CSVI と名前を変えました View という単語が名前に入ってると読み取り専用ビューアという印象があるが、今は編集可能になっている 同カテゴ…

今更だけど、Go では (具体的なレシーバー.メソッド名) を「関数ポインタ」扱い出来た件

たぶん、有識者では常識なんだろうけれども、最近まで認識できていなかった件についてのポエム type T struct { // : } func (t *T) Method(){ // : } var t T と定義されている場合、 var f func() = t.Method という代入が可能。これの何が嬉しいのかとい…

最近、更新したプロダクト

CSView v1.5.0 文字コードとして UTF16 をサポートしました。 最初の2バイトが \xFE\xFF、もしくは最初の1バイトが \0 の時 → UTF16BE 最初の2バイトが \xFF\xFF、もしくは二番目の1バイトが \0 の時 → UTF16LE と判断するようにしました。今どき、UTF16 な…