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 製なので、実行ファイルはバイナリを適当なパスに置くだけで動く。

cf コマンドでターゲット毎に $CF_HOME を切り替えるエイリアスを貼る & 自動生成する

雑記。cf コマンドと $CF_HOME の切り替えについて。

Nuxt.js で Atomic Design ベースの設計をする時にコンポーネントのあり方

備忘録。 Nuxt.js で Atomic design を実践する際の各コンポーネントの役割が自分の中でまとまってきたので書き残す。

Mison を Go で実装してみている

以前 Microsoft が出した Mison という JSON の高速なパーサに関する論文を読んだ。 Mison は普通のパーサと違って1文字ずつ読んで構造を解釈するのでなく、bitmap をフィールドの位置の特定を高速化し、さらにある程度パターンが読めてきたらフィールド位置…

Go の io.Reader 覚書

備忘録。 Go の io.Reader の使い方について。

ruby-build の各バージョンの仕組みについて

備忘録。 Ruby の trunk に入った新機能を試す過程で ruby-build のスクリプトを調べたので、その概略についてのメモを残す。 ruby-build のコミット ca85eba に基づいた情報です。

RubyKaigi 2019 参加記録(3日目)

RubyKaigi 2019 3日目のメモです。 1日目 autopp-tech.hatenablog.com 2日目 autopp-tech.hatenablog.com

RubyKaigi 2019 参加記録(2日目)

RubyKaigi 2019 2日目のメモ 1日目 autopp-tech.hatenablog.com

RubyKaigi 2019 参加記録(1日目)

4/18 - 4/20 に福岡で開催中の RubyKaigi 2019 に参加しています。 1日目に聞いたセッションについて忘れないように雑にメモっておきます。 本当に雑です。

Fiddle 経由で取得した char ** を Ruby の文字列配列に変換する

備忘録。 C の文字列配列(char**)を返す関数を fiddle 経由で呼び出し、String の Array に変換する方法について。

C の __COUNTER__ マクロの使い方

備忘録。 GCC や Clang で利用できる C の拡張機能 __COUNTER__ マクロについて。

Node.js の import の大文字小文字問題について

備忘録。 Nuxt.js を使っている時にファイルシステムの仕様で Mac と Linux でビルドの成否が変わる問題に当たった。

Fiddle で C のメモリを free した時にやらかした話

備忘録。 少し前に Fiddle を使って C 関数を呼び出す Ruby プログラムを書いた時にやらかした時のメモ。 Fiddle とは とてもざっくりというと dlopen/dlsym のラッパー。以下は C の strlen を Ruby から呼び出す例がドキュメントにある。 起きたこと 以下…

Ruby 2.7 の Numbered parameters を試す

Ruby の trunk に Numbered parameters なる新機能が入ったようなのでどんな挙動をするのか触ってみた。 動作確認に使っているバージョンはこちら $ ruby -v ruby 2.7.0dev (2019-03-18 trunk 67294) [x86_64-darwin17]

Ruby の子プロセスの終了ステータスの取得方法

備忘録。 Ruby での子プロセスの終了ステータスの取得方法について、定期的に自分でやらかしたり他の人がやらかしているのを目撃するので書き残す。

Rails/OSS パッチ会に参加した

2/28 の Rails/OSS パッチ会に参加してきた。 行く前はもくもく会のようなものかと思っていたが、むしろせっかく他の人もいるので対面で相談する方が推奨されている感じだった。(自分も今抱えている issue について相談させてもらった) この会自体は OSS …

Ruby の独自エラークラスのデザイン

備忘録。 Ruby の例外クラスのインタフェース、とりわけコンストラクタと生成後に取得できるメッセージについて考えることがあったので、いくつかの事例をまとめる。

VSCode の設定を Settings Sync で共有しつつ環境固有の設定もする

備忘録。 Settings Sync は複数の PC で各種設定を同期するためのプラグイン。settings.json や keybindings.json だけでなく独自スニペットも管理できる。 キーマップなどは同期するだけでどうにかなるが、一部の設定は PC 毎に変えたくなることもある。こ…

OpenAPI Generator の Ruby クライアントコード生成のバグをいくつか直した

OpenAPI のコードジェネレータである OpenAPI Generator に Ruby クライアント生成周りでいくつかの PR を出した。 ↓の記事の続き。

Danger のプラグインの構造

プルリクエストに関する定形作業を自動化するツール Danger のプラグインを書く機会があったので、プラグインの構造について簡単にメモ。v5.13.0 を参照している。