Elasticsearch 2.x で複数のドキュメントにUPDATE文のようなもの実行する

公式ドキュメントのこれだった。 Update By Query API なんだけどうまくいかず、結局はクエリと設定の両方の問題やってん。 設定 探した限りでは実行時の設定APIは用意されていなくて、 設定ファイルで変更しないといけないっぽい。 # script.inline: on がscriptアップデートに必要 $ echo “script.inline: on” >> elasticsearch.yml # 公式dockerのES $ cat elasticsearch.yml network.host: 0.0.0.0 script.inline: on クエリ POST /<index>/_update_by_query?conflicts=proceed に対して以下のようなクエリを投げる { “script”: { “inline”: “ctx._source.my_point= 100” }, “query”: { “term”: { “my_point”: 0 } } } これは↓のようなSQLのイメージ UPDATE my_hoge_index SET my_point=100 WHERE my_point=0; curlから。 $ curl -s http://localhost:9200/my_hoge_index/_update_by_query?conflicts=proceed -XPOST -d ‘ { “script”: { “inline”: “ctx._source.my_point= 100”}, “query”: { “term”: { “my_point”: 0 } } } ‘ | jq . { “took”: 1920, “timed_out”: false, “total”: 500, “updated”: 500, “batches”: 1, “version_conflicts”: 0, “noops”: 0, “retries”: 0, “throttled_millis”: 0, “requests_per_second”: “unlimited”, “throttled_until_millis”: 0, “failures”: [] }

Read More

Google Analytics Real Time Reporting APIの初め方

申し込み 以下のフォームから申し込みをします。 https://docs.google.com/forms/d/1qfRFysCikpgCMGqgF3yXdUyQW4xAlLyjKuOoOEFN2Uw/viewform 申し込んでたらいつのまにか使えるようになっていました。 テスト テストの前に、まずGAに登録したサイトのビューIDを取得します GAのUIは頻繁に変わって説明しても無駄かもですが、 左サイドバー下部の歯車マーク「管理」を選択 メイン部分にて「アカウント」->「プロパティ」->「ビュー」を選び、その下の「ビュー設定」を選択 「ビューID」が表示されます 取得したビューIDを使い、API Explorerでテストしてみてください。 右サイドバーからテストできます。 ids: ga:XXXXXXXX (XXXXXXXXにはビューIDを入れる) metrics: rt:activeUsers 「Execute」ボタンを押下(初回はログイン・パーミッション画面がでます) 正常にAPIの使用が許可されていれば結果は緑の「200」になり、アクティブユーザー数がJSONで返却されます。

Read More

NodeSchool International Dayにいってきた

5月23日に全世界でやっていたらしい http://nodeschool.io/international-day/ 日本では東京と大阪の2都市だったのかな? CAの大きな会場に結構人が集まってた(101人くらいとか言っていた気がする) 同日に隣の部屋でCA Tech Kidsという小学生向けのプログラミング教室的なイベントをやっていたらしく、元気なお姉さんの声がたまに聞こえていた。 楽しそう… 14時から17時まで、3時間ひたすらワークショッパーをやっていた。 運営の趣旨的には、学校の自習ノリでワイワイしながら教え合う感じにしたかったんだと思うけど、 人はコードを書くと無口になってしまうので、なかなか難しい気がする。 席も向かい合わせにすると少し会話が生まれそうだけど、人が多く会場の都合上少し難しいのかな。 まず選択したのは learnyounodeというnode.jsの基礎的なやつ。 少し問題の意図が掴みづらかったりすることがあって、ちょっと時間がかかることもあった。 テストコードは何をテストしてるんだ、と。 2時間ちょいで終えることができたので、次はtower-of-babelというES6の基礎っぽいやつを選択。 8章くらいで時間が来てしまったので残りは家でやった。 TSで少し慣れてたので、というかほぼ一緒なので戸惑うことは少なかったけど、 デストラクチャリングとかは知らなかったので便利すぎはよ使いたい。 ワークショッパーはとても素晴らしいなと思った。 無償で独習できるし、Glitterで質問できるし。 自分でも何か作りたいけどAngularかGoしか思い浮かばない。 用事があったため懇親会は出席せず、、、 ありがとうございました。 そして帰って焼き肉食べた。

Read More

R Programing – Week1

ずっとやらずに放置してきたR言語だったけど、 ようやく先週からcourseraのR Programmingという授業を始めてみた。 コースのWeek1のメモ。 Rの型 基本の型 文字列 character 実数 number 整数 integer 複素数 complex 真偽値 logical (= boolean) ベクトル値(≒ 同型の配列): vector() 実数(number) 末尾にLをつけると 整数(integer)になる x <- 1 x <- 1L 無限を表すInf 未定義値のNaN 属性 attribute() 関数 names, dimnames dimensions class / length / other ベクトル値 同じ型の配列 c() 関数で値から作成可能(concatenate) > x <- c(“a”, “b”, “c”) > x [1] “a” “b” “c” vector() 関数で定義作成可能 > x <- vector(“numeric”, length = 10) > x [1] 0 0 0 0 0 0 0 0 0 0 違う型のものを混ぜると優先度に従って自動で型の統一が起こる 文字列 > 数値 > 真偽値 as.xxx() によって型キャストが可能。破綻するものはNAとして表される > as.numeric(x) > as.logical(x) > as.character(x) リスト 異なる型を格納可能な特別なベクトル マトリックス(行列) matrix() 関数で定義可能 > m <- matrix(nrow = 2, ncol = 3) dim()…

Read More

にっき

内見を済ませた。 slackでhubot経由でユーザーごとのpull requestを取得できるようにした。 暗くなる出来事が立て続けに起きた。 お金がない。

Read More

にっき

病院に付き添えずとも漫画を読んだ。 前の会社の人とお酒を飲み、実家へ帰る。

Read More

Slack×hubot×GitHub

業務で本格的にSlackを使いはじめたので、 hubotを使ってGitHub連携を試した。 モダンな感じになりつつある。

Read More

スノーボードのバインディングを交換してみた

あけましておめでとうございます。 クソ久しく。 バインディングの交換 2012年の乱 一昨年にバインディングの先の留め具を踏み折ってからというものの、交換もせずに放置してた。 ボードが上手い友達から中古の板とブーツと合わせて3点セットで安く購入し、 朝5時に受け取りそのままスキー場へ行き二回目のリフトから降りた時に踏み折った。 泣いた。 2014年の計 3日に滑りに行く約束をしたため、29日、30日で慌てて買いに行き、 ようやく元旦にしてセットをすることに。 まずは取り外しを… ネジがひとつだけ固かったので、他のから先に取り外すとうまく取れた。 古いバインディングも新しいやつも両方RIDE 以前と同じ角度にしてセット完了。(※1) スプレー塗りも含めて、所要時間は1-2時間程度で終了。 滑りに行くのが楽しみだ…! 追記 ※1 その後友達に言われて、前17・ 後9 にしました。 あと滑っている時にガタガタするくらい緩かったので、しっかり締めたほうが良いと思いました。 (レストランでドライバー借りて何とかなった…)

Read More

平和の代償 (rest in peace, how?)

平和の象徴とはなにか。 ハトだ。 ハト目ハト科の鳥の総称。スズメ大から鶏大のものまで大きさはさまざまで、色彩もさまざま。比較的頭が小さく、翼が発達してよく飛ぶ。くちばしを水につけたまま飲むことができ、主に果実・種子を食べる。ひなは、親鳥が吐き出すピジョンミルクとよばれる嗉嚢(そのう)の分泌物を食べて育つ。日本にはキジバト・アオバトなどがすむが、家禽(かきん)のドバトをいうことが多い。オリーブの枝とともに平和の象徴とされる。 「デジタル大辞泉」より ハトが暮らしている。平和だ。 つがいのハトがイチャイチャしている 。平和だ。 ハトがベランダで喉を鳴らしている。平和だ。 ベランダに残されたものはフンである。平和だ。 “Rest in piece of shit.” (無職の言葉) … そんなわけで、毎日平日の昼間からベランダで奇声をあげている男がいても さりとておかしくない。 平和なのだ。

Read More

VMWare Fusionで作ったWindows8をVirtualBoxへ移行する

背景 「Windows8安い!」と思って買う Mac MiniにVMWare Fusionを買ってインストール 「Windows8安い!」と思ってさらに買う Mac Book AirにVMWare Fusionをインストール。 (30日経って、体験版の期限が切れる。) そういえばChef-soloを入れようと思ってVirtualBox入れてたっけ? これ使えばWindowsも動くよ!! というわけで、ovftoolを使ったディスク変換系のインポート方法が失敗しまくり、 ストレージは圧迫するわ時間は食うわでにっちもさっちもいかなくなった時に、 「こんな作業いらなかったじゃん!」と憤慨した記録。 (※ 大量のDisk I/Oを伴う利用をする場合は変換したほうがいいかもですが、本番サービスのDBとかP2Pファイル共有でもやらない限りあまりない気がします。) 参考 参考、というか元ネタ。神。全てここに書いてありました。 Carlos Sanchez’s Weblog – Migrating Windows 7 from VMWare Fusion to VirtualBox 一応、日本語で手順を書いておきます。 環境 OS X 10.7.5 VirtualBox 4.2.14 VMWare Fusion 5の体験版 手順 VMWare Toolsのアンインストール 仮想マシン上でアンインストールしておきましょう。とのこと。 (VMWare Fusion自体が期限切れで起動できなかったためスキップ。) 仮想マシンのディスクファイルの移動・コピー 「仮想マシン名.vmwarevm」を右クリック→「Show Package Contents(パッケージの内容を表示)」を選択する。 中にxxx.vmdkというファイルがあるので、それを全て適当な場所に移動orコピーする。 (私の環境では[Virtual Disk.vmdk]と[Virtual Disk-s0xx.vmdk]というファイルが31個ありました。) .vmwarevmというファイルは「Documents(書類)」→「Virtual Machines(仮想マシン)」の中にあると想います。 VirtualBoxでの仮想マシン作成 VirtualBoxを起動し、上部タブより「New(新規)」をクリックする。 「Name(名前)」にはVMWareの仮想マシンと同じ名前を設定する。タイプ・バージョンはゲストOSに合わせる。 「Use an existing virtual hard drive file(すでにある仮想ハードドライブファイルを使用する)」から、先ほどのvmdkファイルを選択する。(ファイルが複数ある場合は、連番になっていないものを選択) 仮想マシン設定の変更 上部タブより「Settings(設定)」をクリックする。 「System(システム)」より、「Extended Features: Enable IO APIC(拡張機能: IO APICを有効化)」にチェックが入っていることを確認する 「Storage(ストレージ)」より、「Controller(コントローラー):SATA」を削除する。 さらに「Storage(ストレージ)」より、「Controller(コントローラー):IDE」にて「Add Hard Disk(ハードディスクの追加)」アイコンをクリックし、「Choose existing disk(既存のディスクを選択)」を選択する。先ほどのvmdkファイルを選択する。 さらに「Storage(ストレージ)」より、「Controller(コントローラー):IDE」の「Use host I/O cache(ホストのI/Oキャッシュを使う)」のチェックを外す。 仮想マシンの起動 通知アラートがたくさん出るのでひたすらOKで消していく。 普段より時間がかかって起動する。 ユーザーログオン! 上部より「Devices」→「Install Guest Additions」を選択する。 CDが挿入された旨の通知がでるので、そのままインストールを進める。 (Windowsのライセンス認証をし直す? めんどす…) 少しOracle様が好きになりました///

Read More