雑文発散

追記
過去の日記

2015-08-30 [長年日記]

[] タブー・タトゥーを読んでいた

雨の日は外へ出たくないモードが炸裂してしまって、家で未読本の消化活動。先日の KADOKAWA 50% オフのときに勢いで買った「タブー・タトゥー」を一気読みしていた。

タブー・タトゥー TABOO TATTOO 01<タブー・タトゥー> (コミックアライブ)(真じろう)


一定の面白さはあるけど「すげー面白いからぜひ読んで」的に他の人へオススメする感じではないかな、今のところは。10巻まで進んで、割と佳境に入っている雰囲気なのだけど、ここからどう終わらせるか次第かな。終わるまで付きあおう。


2015-08-29 [長年日記]

[] スティールワールドを観た

たまには AppleTV で映画でも観るかなーっと新作を物色していたら「スティールワールド」を見つけたので観てみた。SF だったし。

スティールワールド [DVD]

まぁ、ね、あれだよ、SF ってのはご都合主義的な部分がどこかにはあるもんだけど、これはどうなんかなー。感想としては「2015 年版・宇宙戦争か?」って感じ。SF 映画を見ているひとなら、これだけで分かってもらえると思う。


2015-08-28 [長年日記]

[JavaScript] getComputedStyle を知った

CSS ファイルで定義した内容は document.querySelector('#hoge').style では取れないのね。代わりに window.getComputedStyle(document.querySelector('#hoge')) で取得するようにした。

ブラウザ依存もあるみたい?だけど、実験で使っていただけなので、とりあえずこれで解決。


2015-08-27 [長年日記]

[Elasticsearch] Elasticsearch 2.0.0-beta1 が出たので早速インストール

今朝、 @johtani さんが「ベータでた」とツイートしているのを見かけた。

「あ、もしかして!?」と、調べていくと、Elastic 社のブログ記事を発見。

Elasticsearch 2.0.0 での Pipeline Aggregations にはだいぶ期待しており、しばらく前には「Elasticsearch 2.0.0 で導入予定の Pipeline Aggregations が便利そうなので自分なりにまとめてみたよ」という日記も書いていた。

じゃあ、さっそく試してみようと思い、リリース記事からもリンクされてるここからダウンロードした。

既存の Elasticsearch 環境(1.7.x)をアップデートするのはちょっと躊躇したので、2.0.0-beta1 のクラスタを新たに作ることにした。社内のプライベートクラウドから、ポコポコと3台起動して構築していった。

@hsbt さんが「OpenStack は福利厚生」という発言をされているのだけど、こういうクラスタ構築時には勝手に使えるクラウド環境があるのは本当にありがたい。

ちなみにウチの場合は「福利厚生」とは言っていないし、使い放題とまでは言われてないけど、ちょこちょこ使うぶんには勝手に使っちゃって良い、、、はず。100台とか上げたら怒られるかも知れないけど、数台程度なら誤差だろ?と思っている。

話が逸れた。

起動した3台には、ダウンロードした deb ファイルをインストール。いつものようにクラスタ名とノード名を変更するために /etc/elasticsearch/elasticsearch.yml を開いたら驚いた。設定ファイルがずいぶんシンプルになっている。

cluster.namenode.name を変更し、更に discovery.zen.ping.unicast.hosts の設定に、起動した3台の IP アドレスを記入したので、これでほぼ終わりかなーと思って、試しに起動してみたら、listen しているアドレスが localhost となっていて、うまくクラスタ化されなかった。

あぁ、じゃあ、network.host0.0.0.0 にすればいいんだろ?と思って変更してもダメ。なんでだろー?と思ったけど、これは listen アドレスを定義するものじゃないらしい。結局、自サーバの IP アドレスを設定したら、うまくクラスタ化ができた。

# Set the bind adress to a specific IP (IPv4 or IPv6):
#
network.host: 192.168.0.1

でもこれだと、インストールしたサーバ上で localhost:9200 にアクセスできない。Elasticsearch の動作確認をするときに、各サーバ上で localhost 向けに Cat API をよく使っている。

% curl -XGET localhost:9200/_cat/nodes

これが localhost では接続できずに次のように自サーバのアドレスを指定する必要があった。

% curl -XGET 192.168.0.1:9200/_cat/nodes

もちろん DNS で解決できれば自サーバ名でも良いんだけど、、、どこでも localhost で叩いていたので、なんか勝手が違って面倒に思ってしまった。

まぁ、それでもこれでクラスタはできた。でも、データがなければ試せないので、今度は elasticsearch-dump を使って、既存クラスタのデータを 2.0.0-beta1 のクラスタへブチ込んだ。

elasticsearch-dump は初めて使ったけど便利だね。Elasticsearch 内のデータをファイルにダンプすることもできるけど、クラスタ間でコピーすることもできる。例えばこんな風に。

% elasticsearch-dump \
   --input=http://OLD-CLUSTER:9200/my_index \
  --output=http://NEW-CLUSTER:9200/my_index \
    --type=data

これでデータも用意できたので、次は Kibana で内容を確認したいなと思って、GitHub の kibana リポジトリ から 4.2.0-snapshot をダウンロードしてインストールした。さっそく Pipeline Aggregation がどのようなものなのか試してみよう!!!と意気込んでアクセスしてみたものの、それらしき項目が見当たらない。

で、調べてみたら、どうやらまだ実装されていない様子で、要望として Issue に上がっていた。

この Issue には enhancement のラベルが付けられてはいるものの、具体的なバージョン番号のラベルは付けられていないので、しばらく先になるのかもなぁ。

Pipeline Aggregations の結果のグラフとか、これまでとだいぶ違う内容をどうやって見せるんだろう!?と wktk してたのだけど、まぁそうだよね。そんな簡単には実装できないよね。。。

Kibana は無理でも、クエリを手で書いて実行すれば Pipeline Aggregations を試せるわけだけど、、、今日は残念ながら時間切れ。いや、本当はもっといじりたかったんだけど、まずはやるべきタスクを終わらせないといけないので諦めた。

隙を見て、明日以降も触っていこうっと。


2015-08-26 [長年日記]

[] 今日はちょっと書くネタがないので1年前を振り返りつつ自分をほめることにした

昨日見つけた MutationObserver の挙動を確認するために JavaScript のコードを書いていたのだけど、1年前に比べて「素の JavaScript」を書きやすく感じるようになっているのに気がついた。

1年前は document.getElementById('some-id') じゃなくて $('some-id') と書きたいのに!と思ってたけど、いまはそんなことない。querySelector() とかも覚えたし(笑)。

jQuery を使わない「素の JavaScript」を書き始めたのは、プロジェクトの都合によるところが大きかったし、はっきり言って苦手な領域だったけど、チャレンジしてきて良かった。この1年ほどでだいぶ成長できたと思う。

もちろん、ちまたの JSer には遠く及んでいないのも理解しているけど、たまには自分を褒めないと!