Puppeteer + 何?

Puppeteer は Chrome を操作するライブラリなので E2E のテストで利用するには、テスト用フレームワークと組み合わせた方が便利そう。

何と組み合わせるかを悩んでいてたけれど、最終的に Jasmine に決めた。

理由は、Puppeteer のテストが Jasmine で書かれているので。

Puppeteerで自己署名証明書を使ったサイトのテストをする方法

ignoreHTTPSErrors: true を puppeteer.launch の引数に渡す。

const browser = await puppeteer.launch({
    ignoreHTTPSErrors: true,    // <= これ
    args: ['--no-sandbox', '--disable-setuid-sandbox']
});

正当な証明書を用意するハードルが下がって来ているけれど、いるときはいるんだよね。

これを試した時の Puppeteer のバージョンは v0.10.2。

vscode-fluentd

vscode-fluentdという Visual Studio Code の拡張機能を作った。

ここ最近はVimを離れてvscodeを使うことにしている。 fluentd の設定もちょくちょく書くことがあるのだが、vscode に fluentd のシンタックスハイライトがなかった。なので、作った。

形から入るタイプなので、シンタックスハイライトがあるとないとでは生産性が10倍は違うのでは!?

Amazon Elasticsearch Service 小ネタ

お断り

Amazon Elasticsearch Service に限った話ではないけれど。

elasticsearch-head を使う

elasticsearch-head はローカル環境のDockerで実行させる.

$ docker run --rm -p 9100:9100 mobz/elasticsearch-head:5

ブラウザで elasticsearch-head にアクセスする

$ open http://localhost:9100

テキストボックスに接続したい Elasticsearch のエンドポイントを入力し、Connect ボタンをクリック.

f:id:ymmtmsys:20170729143232p:plain

AWS の Elasticsearch はデフォルトで Access-Control-Allow-Origin:* を返してくるので, これだけでOK.

cluster health を green にする

クラスタ構成でない場合限定.

デフォルトで number_of_replicas は 1 になっている. クラスタ構成でない場合, レプリカを作るノードがないので cluster health が yellow になってしまう.

問題はないのだが, ちょっとソワソワするので number_of_replicas を 0 にして cluster health を green にする.

curl -XPUT https://{elasticsearch service}/\*/_settings -d'
{
    "index" : {
        "number_of_replicas" : 0
    }
}'

/*/ を入れないと {"Message":"Your request: '/_settings' is not allowed."} と言うエラーになった.

参考

JavaのDNSキャッシュのTTLが何秒になっているか

を調べるプログラム。

gist6fb0e42da6cb2aeb32da2cd2983f94b3

コンパイル時に以下のWarningが発生する。

NetworkaddressCacheTtl.java:5: warning: InetAddressCachePolicy is internal proprietary API and may be removed in a future release
        sun.net.InetAddressCachePolicy.get()
               ^

terraform と パラメータストア

terraform 0.9.7AWS パラメータストア(Amazon EC2 Systems Manager Parameter Store) がサポートされた。aws_ssm_parameter がそう。

簡単なものを試したのでメモしておく。

サンプル

parameter_store.tf でパラメータを設定する。elastic_beanstalk_env.tf でパラメータストアから値を取り出す(Elastic Beanstalkの環境変数にパラメータを設定するサンプル。関係のない場所は省略)。

AWS SSM parameter store sample

タグ付け

Amazon EC2 Systems Manager のパラメータストアで階層、タグ付け、および通知を追加サポート

ではタグが付けられると書かれているが、terraform はまだ対応してなさそう。

Machine Learning その後

2017年3月27日、会社へ向かう電車の中で最後のビデオを見終えた。もちろん途中のクイズ・課題はすべて合格している(満点ではないけれど)。

感想

  • Week5が演習の山場。これを超えるとスルスルと進む。
  • Deep Learning がきっかけで機械学習について勉強し始めた。Deep Learning を使わなくても手書き文字(MNIST)の認識率は 95%くらいだったので、びっくり。そんなに高いんだと。残り数%を埋めてくのが大変なんだなと感じた。
  • 初め方の演習ででた問題と同じような問題が後の方の演習でも出てきた。初めの方の演習では苦労して解いたが、後の方の演習ではすんなり解けて、成長(というほどでもないけれど)を感じた。
  • 機械学習と聞くとよくわからないブラックボックス的なものだったけれど、おおよそどういうもののか把握できたのがよかった。
  • インプットばかりだったので、アウトプットもしたい今日この頃。