備忘録。Spring WebFlux を使っている中で、Flux<DataBuffer> ((実際には FilePart.contents() から取り出した。))を単一の java.io.InputStream へ変換したいシチュエーションに出くわしたので、その方法についてのメモ。</databuffer>
TypeScript 向け DI コンテナライブラリの TypeDI を素振りしたのでメモ。
Github Actions のあるワークフローから別ファイル(別リポジトリでも可)のワークフローを呼び出せる Reusable Workflow を触ったところ、不便というかどう対処するべきかわからない点があったのでメモとして残しておく。 ワークフローで定義したジョブ名と…
RSpec, Jest ライクな Go のテストフレームワーク Ginkgo が年末に v2.0.0 をリリースしたので個人プロジェクトで試してみた。
RDB の ER 図を PlantUML の DSL で出力する plant_erd の出力を修正する PR を出した & マージされた。
Github Actions で Slack 通知を行う 8398a7/action-slack の入力定義を修正する PR を出した & マージされた。 修正内容は入力パラメータの誤った必須指定を直すだけの簡単なもの。最近使い始めた ワークフローの YAML の補完・lint を行ってくれる VSCode …
備忘録。Go の os.StartProcess() や os/exec.Cmd で実行した外部プロセスがシグナルによって終了した場合に、そのシグナルを取得する方法について。Go のバージョンは1.16。 注: GOOS=linux or GOOS=darwin で動作すること、および GOOS=windows で動作しな…
備忘録。ESLint のルールを含むプラグインを TypeScript で書く時のポイントについて。 プラグインの仕組み自体は公式ドキュメントに従いつつ、TypeScript でどう対応させるかについて述べる。
Github 公式 CLI である gh コマンドに出した PR がマージされた。 内容は gh issue list/gh pr list の --state オプションの値をシェル補完できるようにするというもの。 --state オプションに open, closed といったキーワードを与えると、表示する issue…
備忘録。TypeScript の Compiler API を特定の tsconfig.json の設定で使う方法について。 TypeScript のバージョンは 4.1.3。
備忘録。TypeScript の Compiler API を使ってソースコードのパースから特定の型・関数の定義元の AST ノードへジャンプする方法について。 TypeScript のバージョンは 4.1.3。
雑記。 Github Actions で成果物を永続するためのアクション actions/upload-artifact@v2 の落とし穴について。 TL; DR 執筆時点で actions/upload-artifact@v2 は指定したファイルをアップロードすることはできない Mac の /tmp は /private/tmp へのシンボ…
Github 上での Go 製ツールの開発フローとそれを支える Github Actions が自分の中で一旦まとまったので書き残す。
年の瀬なので、今年一年を振り返る。
年末の大掃除と称して dotfiles の整理をし、ついでに zplug から zplugin へと乗り換えた。 zsh の起動時間を縮めるために oh-my-zsh から zplug に乗り換えたのが1年半前だが、最近また起動時間が気になったのがきっかけ。
ghq を使い始めて以来、ディレクトリ移動にしろエディタオープンにしろ ghq list に頼りっぱなしだが、最近どうも遅く感じていた。そこでボトルネックを探してみて特定の状況下で ghq list の実行速度が向上する PR を出してみたところ、無事にマージされた…
雑記。 以前 Bash ではコマンドの有無の確認に which ではなく command -v を使った方がいいという旨を見た覚えがあったので、Zsh ではどうかを調べてみた。
備忘録。 Go 1.13 で入った error の機能について。
備忘録。 Go の testing パッケージでいつも Error, Fail, Fatal の違いがわからなくなるので、まとめる。
備忘録。 git config の Go クライアントと言える Songmu/gitconfig について。
備忘録。 Python で IO 同様のインタフェースで扱えるインメモリバッファ(Ruby における StringIO)について。
備忘録。 json などで構造体のフィールドに付ける json:omitempty などのタグを取得する方法について。 構造体フィールドのタグは標準パッケージ reflect を使って実行時に取得する。 以下、構造体 Tagged のフィールド Foo に付いているタグを取得するサン…
備忘録。 openapi-generator で生成した Go クライアントで Bearer 使い方について。
備忘録。 refs を経由でコンポーネント内で利用している子コンポーネントのメソッドを呼び出す方法について。
備忘録。 Scala DSL でシナリオを書けるパフォーマンステストツール Gatling を使い始めたが、シナリオをデバッグしたいことがままあるので、そのメモ。 バージョンは3.2。
備忘録。 Go のテスト関数内でサブテストに分割する方法について。 testing.T は Error や Skip などのように関数で実装しているテストの制御を行うメソッドがあるが、サブテストに分割するためのメソッド Run も実装されている。以下のように使える: func T…
備忘録。 最近 Go のテストで使い始めたアサートライブラリについて。
備忘録。 MyBatis で DB に INSERT した際に ID などの特定のカラムの値を取得する方法について。
備忘録。Java でストリームをマップに変換する Collectors::toMap の NullPointerException にハマった。 Collectors::toMap はストリームに K 型のキーへマッピングするための関数と V 型の値へマッピングするための関数を受け取って、Map<K, V> 型のマップを返す</k,>…
備忘録。 SQL アンチパターンに載っていた木構造を RDB で表現するためのモデルの1つ、閉包テーブルモデルの MySQL による実装について。