actions/upload-artifact@v2 は /tmp で使わないほうがいい

雑記。 Github Actions で成果物を永続するためのアクション actions/upload-artifact@v2 の落とし穴について。 TL; DR 執筆時点で actions/upload-artifact@v2 は指定したファイルをアップロードすることはできない Mac の /tmp は /private/tmp へのシンボ…

Go 製ツールの開発フロー with Github Actions 覚書

Github 上での Go 製ツールの開発フローとそれを支える Github Actions が自分の中で一旦まとまったので書き残す。

2019年の振り返り

年の瀬なので、今年一年を振り返る。

zplug から zplugin に乗り換えた

年末の大掃除と称して dotfiles の整理をし、ついでに zplug から zplugin へと乗り換えた。 zsh の起動時間を縮めるために oh-my-zsh から zplug に乗り換えたのが1年半前だが、最近また起動時間が気になったのがきっかけ。

ghq list を高速化する PR を出した

ghq を使い始めて以来、ディレクトリ移動にしろエディタオープンにしろ ghq list に頼りっぱなしだが、最近どうも遅く感じていた。そこでボトルネックを探してみて特定の状況下で ghq list の実行速度が向上する PR を出してみたところ、無事にマージされた…

zsh で which と command -v の速度比較

雑記。 以前 Bash ではコマンドの有無の確認に which ではなく command -v を使った方がいいという旨を見た覚えがあったので、Zsh ではどうかを調べてみた。

Go 1.13 の error について

備忘録。 Go 1.13 で入った error の機能について。

Go の testing の Error/Fail/Fatal

備忘録。 Go の testing パッケージでいつも Error, Fail, Fatal の違いがわからなくなるので、まとめる。

Songmu/gitconfig で Go から git config を取得する

備忘録。 git config の Go クライアントと言える Songmu/gitconfig について。

Python の文字列/バイトバッファ

備忘録。 Python で IO 同様のインタフェースで扱えるインメモリバッファ(Ruby における StringIO)について。

Go の 構造体のタグを取得する

備忘録。 json などで構造体のフィールドに付ける json:omitempty などのタグを取得する方法について。 構造体フィールドのタグは標準パッケージ reflect を使って実行時に取得する。 以下、構造体 Tagged のフィールド Foo に付いているタグを取得するサン…

openapi-generator で生成した Go クライアントで Bearer 認証をする

備忘録。 openapi-generator で生成した Go クライアントで Bearer 使い方について。

Vue で子コンポーネントのメソッドを呼び出す

備忘録。 refs を経由でコンポーネント内で利用している子コンポーネントのメソッドを呼び出す方法について。

Gatling のシナリオをデバッグする

備忘録。 Scala DSL でシナリオを書けるパフォーマンステストツール Gatling を使い始めたが、シナリオをデバッグしたいことがままあるので、そのメモ。 バージョンは3.2。

t.Run で Go のテストをサブテストに分割する

備忘録。 Go のテスト関数内でサブテストに分割する方法について。 testing.T は Error や Skip などのように関数で実装しているテストの制御を行うメソッドがあるが、サブテストに分割するためのメソッド Run も実装されている。以下のように使える: func T…

Go のテストを testify/assert で書く

備忘録。 最近 Go のテストで使い始めたアサートライブラリについて。

MyBatis で Auto Increment された ID を取得する

備忘録。 MyBatis で DB に INSERT した際に ID などの特定のカラムの値を取得する方法について。

Collectors::toMap の値マッピング関数の制約

備忘録。Java でストリームをマップに変換する Collectors::toMap の NullPointerException にハマった。 Collectors::toMap はストリームに K 型のキーへマッピングするための関数と V 型の値へマッピングするための関数を受け取って、Map<K, V> 型のマップを返す</k,>…

MySQL でツリー構造 by 閉包テーブルモデル

備忘録。 SQL アンチパターンに載っていた木構造を RDB で表現するためのモデルの1つ、閉包テーブルモデルの MySQL による実装について。

MySQL でツリー構造 by 経路列挙モデル

備忘録。 SQL アンチパターンに載っていた木構造を RDB で表現するためのモデルの1つ、経路列挙モデルの MySQL による実装について。

Nuxt.js のカスタムローディングコンポーネントで throttle を再現する

備忘録。 Nuxt.js のローディングにカスタムコンポーネントを使っている際に、描画を遅延させる方法について。

Git でブランチを切り忘れてコミットした時の戻し方

備忘録。 ブランチを切り忘れて master ブランチにコミットした際に、ブランチを切り直してコミットをそちらへ移動させる方法をいつも忘れるのでメモとして残しておく。

oas_parser を使って OpenAPI の YAML をパースする

備忘録。 OpenAPI の定義をパースしてあれこれしたい機会があったので、パーサを試してみた。パーサ実装は色々あったが、とりあえず慣れ親しんでいる Ruby 向けの oas_parser を使ってみた。

MyBatis でパラメータが null 以外の時にカラムを更新する

備忘録。MyBatis における UPDATE 文のパラメータの扱い方について。

「SQL アンチパターン」を読んだ

読んだ。まとめと感想を簡単に。

nuxt-i18n を使っている時の nuxt-link の params

備忘録。 nuxt-i18n を使っている時に Nuxt.js の nuxt-link の params が動かなくなるケースとそのワークアラウンドについて。

Vue コンポーネントに渡された props の更新時に data を書き換える

備忘録。 Vue.js でコンポーネントの props が更新された時に何かしらの処理を実行する方法について。

<nuxt-link> でパラメータを渡す

備忘録。 Nuxt.js の <nuxt-link> の使い方。</nuxt-link>

Spring Boot のエンドポイントが OpenAPI Spec を満たしているかを検証する

雑記。OpenAPI Spec の使い方について。

cf コマンドのターゲット別エイリアスを生成するコマンド fcfc を作った + ghr を使ってみた

先日のブログで考えていた fcfc コマンドができたので Github Release でバイナリを公開した。Go 製なので、実行ファイルはバイナリを適当なパスに置くだけで動く。