AWS CloudWatch Logs で上がったアラームを検知して、Lambda 経由で Slack にエラーログを投稿する

CloudWatch Logs 収集対象のログ監視をしてアラームが上がってきた場合、SNS で通知することは可能ですが、エラーログの内容までは通知されません。そこで、SNS からの通知を基に、エラーログの内容を取得し、更に、その内容を Slack に投稿するようにしてみました。Lambda を使って Go で実装しました。

続きを読む

JavaScript: forループの中で配列にループ変数扱う関数(クロージャ)を埋め込みたい

forループの中で配列にループ変数扱う関数を埋め込みたいが…

// sample1.js
var funcs = [];
for (var i = 0; i < 3; i++) {
  funcs[i] = function() {
    console.log("My value: " + i);
  };
}


for (var j = 0; j < 3; j++) {
  funcs[j]();
}

以下の通り出力することを期待しているが

My value: 0
My value: 1
My value: 2

実際には以下の通り。

My value: 3
My value: 3
My value: 3

なぜか?

続きを読む

Javaのクラスファイルの中身を知る ConstantPoolテーブル

はじめに

Javaのプログラムがどうやって動いているのかを知りたい。
手始めに、javaのクラスファイルの中身がどうなっているか、特にプログラム中の各種名前(クラス/関数/フィールドなど)や固定値をどうやって格納しどうやってそれを参照しているかについて調べる。

対象読者:

  • Java(またはJava仮想マシンを対象とする言語)のプログラムを書いたことがある人
  • Javaのプログラムがどうやって動いているのかを知りたい人
続きを読む