Ruby の test-unit で特定のテストだけ実行する
fluentd plugin を作ろうとしたところ、fluentd では test-unit でテストを書くことを推奨しているので test-unit でテストを書こうとしたんですが、ネット上に溢れている情報では test
メソッドを使って定義したテストの実行方法や rake task 経由で指定する方法について言及されているものが見つからなかったのでまとめてみました。
Rails Developers Meetup 2018 で「MySQL/InnoDB の裏側」を発表しました
Rails Developers Meetup 2018: Day 1 で「MySQL/InnoDB の裏側」と題して SELECT クエリの実行フローや InnoDB のインデックス周りの発表しました。MySQL with InnoDB のインデックスの基礎知識とありがちな間違い + α の内容です。
Rundeck の Kill Job や Timeout でプロセスが生き続ける問題の対処方法
Rundeck の “Kill Job” や timeout がちゃんと動いてないという issue は何個も上がっていて、rundeck/#2911 辺りにまとめられているんですが、ここでは server node で (Execute locally) inline script や script file を実行する場合を扱います。
commit をどう分割すべきか 〜コードレビューの観点から〜
普段の開発の中で git の commit の単位に気を遣っている人もいると思うんですが、どういう単位で commit すべきかみたいな話をあまり見かけない気がします。自分自身 GitHub の Pull Request(以降 PR)ベースのチーム開発を何年か経験してみて、「こうすると良さそう」というものが見えてきた気がするのでまとめてみました。
Repro 株式会社に入社しました
社内インタビュー記事でご存知の方もいるかもしれませんが、今年の 8/1 に Repro 株式会社 に入社しました。
Repro を運営している会社です。Repro はグロースハックツールと紹介されることが多いですが、アプリに SDK を組み込むことでコホート分析、ファネル分析等のアナリティクス機能や特定の条件を満たすユーザにプッシュ通知を送ったり、アプリ上でメッセージを表示したりする機能などを提供しているサービスです。
Fluentd 入門 〜運用に必要な基礎知識〜
最近業務で Fluentd を触ることが出てきて入門したんですが、最初のうちはトラブルが起きた時に何が起きているのか、どう対処したら良いのかがさっぱりわからなかったので、「Fluentd ってログの収集とかに使われるやつでしょ?」程度の知識しかなかった過去の自分に向けて「とりあえずこれぐらいは知っておけ!」と言いたい内容をまとめてみました。
Mysql2 の "MySQL client is not connected" について
Rails アプリケーションのドメインロジックを共有するためにバッチでも Rails を使っているケースはあるかと思います。
先日、長時間稼働しているバッチで MySQL サーバの再起動後に MySQL client is not connected
が起きたんですが、数年 Rails を使っていて初めて遭遇したエラーだったので、次の 2 点について調べてみました。
CloudWatch Alarms の暗黙の仕様(予想)
CloudWatch Alarms でアラームを設定しようと思って動作確認をしていたら、ドキュメントを読んでも理解できない挙動がいくつかあったのでまとめてみました。もしかしたらドキュメントに書いてある内容もあるかもしれません。また、バグじゃないかと思う挙動もあるので、その辺はそのうち修正されるかもしれません。
S3 のファイルを HTTP で取得するコマンドを作った
Aws::SSM::Client#get_command_invocation
の返り値には standard_output_url
, standard_error_url
が含まれているんですが、いちいち s3://
の URI に変換して aws s3 cp s3://... -
で確認するのも辛いので、URL をそのまま指定すればオブジェクトの内容を出力するコマンドを作りました。
ブラウザのクライアントサイドのみでバイナリを編集して結果を保存する
以前、日本語を含む Keynote を slideshare にアップロードするというエントリーを書いたんですが、普段ターミナルを使わない方でも変換できるように、ブラウザに Drag & Drop すれば変換された PDF を保存できるようにしました。
Chrome 60.0.3112.90, Safari 10.1.1, Firefox 54.0.1 では動きましたが、ちょっと古いバージョンや IE だと動かないかもしれません。