openapi2ruby v0.2.0をリリースしました

github.com

変更点

変更の経緯

OpenAPI 3.0で導入されている oneOf記法に対応するPull Requestが届いたので取り込んでリリースしました。
Pull Requestを送ってくださった gami-meryさん ありがとうございました。

itamae-plugin-recipe-datadog v0.2.0をリリースしました

github.com

変更点

変更の経緯

前職時代にOSSとして公開したgemでしたが、退職に伴ってメンテナを引き継げておらず放置状態になっていました。
そこにPull Requestをいただいたことで再び同僚を通じてcollaborator権限をもらう段取りになり、今回のリリースに至りました。
Pull Requestを送ってくださった id:Pocket7878_dev さん ありがとうございました。

2018年買ってよかったもの

今年買ってよかったものを書きます

続きを読む

ActiveModel::Serializersでリソースに応じて動的にSerializerを切り替える

この記事は ZOZOテクノロジーズその2 Advent Calendar 2018 - Qiita 13日目の記事です。

今回はActiveModel::Serializers(AMS)の便利メソッドを紹介します。 github.com

AMSを使ってjsonシリアライズ実装をしていたのですが、以下のような非ActiveRecordオブジェクトのシリアライズ
動的にSerializerを切り替えたい場面で困った事がありました。

続きを読む

Homebridge on Docker on RaspberryPiとNatureRemoで自宅IoT環境の改善

この記事は ZOZOテクノロジーズ Advent Calendar 2018 - Qiita 10日目の記事です。

2年ほどラズパイ上でHomebridgeの運用をしていましたが、新型NatureRemoの発売に伴い構成を見直すことにしました。 takanamito.hateblo.jp

新型NatureRemoはIRKitと違い、温度・湿度・照度が取れるのでお部屋モニタリングが捗ります。

続きを読む

Aurora MySQLのローカルストレージ不足で事故ったログ

日次でDB内のとあるテーブルのデータ全件をBigQueryに同期するバッチがあって
RDS for MySQLからデータをselectしていたが、先日Aurora MySQL(5.6.10)に移行した直後から急にバッチがこけはじめた。

原因調査

バッチは使用しているMySQLクライアントの設定値(3600秒)に従ってタイムアウトし落ちていた。

バッチの実行時間帯のCloud Watchメトリクスを確認してみると
AuroraのCPU使用率が30分間ほど平常値から外れて高くなっていた。

しかしバッチを実行しているEC2のネットワークインプットメトリックは特に変動がなく、Auroraからselectした結果を受け取れてなさそうなことも同時にわかった。

DBへの接続がタイムアウトするまでに1時間かかっているのに、selectによるCPU負荷が30分程度しか上昇していないので
クエリが何らかの理由で異常終了している可能性を疑い始める。

続きを読む

Netflix製のjsonシリアライザgem fast_jsonapiを試す

先日OpenAPIのスキーマからRubyのクラスを自動生成するgemを作りました。

OpenAPIのschema定義からRubyのクラスを生成するgem「openapi2ruby」をつくりました - Start Today Technologies TECH BLOG

このgemを作って自動生成しようとしたのがActiveModel::Serializer(AMS)のシリアライザで
他にも自動生成できるものがないか調べていたときに、ちょっと前に話題になったNetflixのgemを見つけたので使ってみることに。

github.com

なんでも

serialization time is at least 25 times faster than Active Model Serializers on up to current benchmark of 1000 records.

らしい。速い。

続きを読む