ECS タスクの終了時にコンテナの依存関係が考慮されない問題を解決するコマンドを作った

ECS タスクは、起動時にはコンテナの依存関係を考慮するのに終了時は全く考慮しません。次のコメントからもよくわかります。

一定間隔の滞在ユーザ数を高速に求める Presto SQL

例えばアクセスログに各ページにアクセスした時刻と離脱した時刻が入っているとします。次のようなイメージです。

upstart で start した job の設定を変更するには一度 stop する必要がある

upstart で start した job の設定を変更した後に反映するには、次のように stop して start しなければいけません。restart ではダメです。restart でダメな理由は後述します。

Rollbar で Rack::QueryParser::InvalidParameterError が通知されるのを抑止する

Rails のエラーを捕捉するのに Rollbar を使っている場合、次のような通知を受け取ることがあります。

tmux で列数固定で window を分割して複数サーバに SSH する

日頃の業務で複数台のサーバにログインしてオペレーションすることがあると思うんですが、cssh, i2css, tmux-css, xpanes 等便利なツールがあるし、tmux 関連の簡易スクリプトだけでも次のように色々見つかります。

MySQL に INSERT ... SELECT syntax でデータを挿入する fluentd plugin を作りました

fluentd に送られてきたデータを MySQL に挿入する plugin はいくつかあるんですが、送られてきたデータを MySQL 上のデータを使って加工して挿入すると便利そうな案件があったので作ってみました。任意の SELECT を記述できるので、複数のテーブルと JOIN した結果を挿入することもできます。
https://github.com/abicky/fluent-plugin-mysql-select-insert

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)ベースのチーム開発を何年か経験してみて、「こうすると良さそう」というものが見えてきた気がするのでまとめてみました。

広告