2022-01-01から1年間の記事一覧
gomockの引数のMatcherでgomock.Eq()を使うときに、構造体がポインタ型だったりするとうまく比較できない。 type Hoge struct { ID string } m.EXPECT().Hoge(gomock.Eq(&Hoge{ID: "1"})).Return(nil).AnyTimes() // マッチしない m.Hoge(&Hoge{ID: "1"}) そ…
go-cmp を使うと2つの構造体のDiffを取ることができるが、プロパティにJSON文字列([]byte や json.RawMessage など)があると、内容は同じでもインデント等が異なるとdiffが出てしまい、うまく比較できない。 type Hoge struct { ID string JSON json.RawMess…
Docker Desktop ではコンテナから host.docker.internal を使って、ホストにアクセスすることができる。 index.js: const express = require("express"); const app = express(); const port = 3000; app.get("/", (req, res) => { res.send("OK\n"); }); ap…
以下の記事で示したように、github.com/go-sql-driver/mysql で parseTime、loc オプションを適切に設定することで、Go の time.Time型とMySQLの datetime 型をタイムゾーンを考慮して適切に相互変換できる。 mrk21.hatenablog.com しかし、同様にMySQLのdat…
MySQLのdatetime型はタイムゾーンを保持しないため、MySQL側でJSTで取り扱うと決めたら、クライアント側で都度適切にタイムゾーンを変換する必要がある。 Go言語でこれを適切に行うためには、DB接続時に github.com/go-sql-driver/mysql のDSNで以下のように…
AWS SDK for JavaScript v3 (@aws-sdk/***) では optional chaining operator ?. が使われており、Chrome や Node.js などでも割と最近になって使えるようになったので(2020年ごろ)、Nuxt app で使おうとすると設定にもよるがおそらく以下のようなエラーが出…
xargsの-Pオプションを使うとパイプで渡された値を任意の並列数で並列処理することができます。以下では、普通に実行すると10秒かかる処理が、5並列で並列処理することによって2秒で実行することができます。 f.sh: #!/bin/bash echo $*; sleep 1; $ seq 10 …
Windows Terminal 1.13 から管理者権限に昇格できるプロファイルを定義できるとはいえ、いちいち管理者権限が付与されたウィンドウを立ち上げたくはない。POSIXのように sudo <command> で同一ウィンドウ(タブ)で実行したい。 これには gsudo というそのまんまなこと</command>…
WSL2上でcodeコマンドを使ってVSCodeを開こうとしたらハングしてしまった。WSL2の再起動や高速スタートアップを無効にしてもWindowsの再起動をしても治らないし、codeコマンドだけではなくexplorer.exeもハングしてしまう。 調査していると、Windows上のパス…
PowerShell にも .bashrc 的なファイルがあって、それを編集すればシェルを起動するときに任意の設定を読み込める。 $profile 変数にプロファイルファイルのパスが入っているので、これを編集する。なお、存在しない場合があるので、その場合は $profile の…
以前、自分の環境では localhost forwarding で頻繁にハングすることがあるので、netsh interface portproxy add コマンドを使って手動で port forwarding するようにした。 mrk21.hatenablog.com 別に都度このコマンドを叩いてもいいのだが、WSL2 が listen…
Webpack + Babel + core-js な環境でビルドしたJavaScriptをPerlサーバーで配信するプロジェクトで、あるときPerlサーバーで配信しようとしたときに Internal Server Error がでてしまった。 ログを確認すると、Wide character in subroutine entry at /path…
WSL2 の localhostForwarding 機能を使うと、WSL2側で listen したポートを自動的にWindows側で port forwarding してくれるので、Windows側からは localhost でWSL2側で listen しているポートにアクセスすることができる。 しかし、自分の環境ではアクセス…
個人PCでは Windows で WSL2 と WSL2 backend な Docker Desktop を使って開発しているが、Docker container 上での名前解決が異常に遅い。 調査していると、どうも Hyper-V のネットワークまわりに問題がありそうだが、具体的にどこがおかしいのかはわから…