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

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 を参照している。

「入門 監視 ――モダンなモニタリングのためのデザインパターン」を読んだ

読んだ。とてもいい本だった。まとめと感想を簡単に。

swagger-codegen の Ruby クライアントコード生成について調べた

swagger-codegen で API の Ruby クライアントライブラリの生成を試していたところ色々な問題を見つけたメモ。すべて以下のバージョンを対象にしています。 $ java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar version 2.4.2-SNAPSHOT…

VSCode で Ruby のブロック用のスニペットを定義した

VSCode における Ruby の do - end の補完には endwise という拡張がすでにあるがブロックパラメータなどの補完はできない。そこで公式ドキュメントに従って、Atom と同じような補完ができるスニペットを定義した。 { "Do block": { "prefix": "do", "body":…

VSCode で Markdown を書く時に閉じ引用符を自動入力したい

最近使ってみている VSCode で、 Markdown を書いていると " を入力したら自動で "" まで入力されないことがわかったのでなんとかしてみたメモ。