【Spark SQL】その月の月初の日を指定するクエリ

SparkSQLにはlast_day という指定した日の月の月末の日を返す関数があるのですが、月初の日を返す関数がありません。 そこで、月初の日を返すやり方はないのかと思い、試行錯誤してみました。 (前提条件として、時刻の環境はUTCを想定しているため、都度FRO…

Elasticsearchをアップデートした際に生成されるjvm.options.rpmnewの扱いとJVMのチューニング

Elasticsearchを5.2.1から5.3にアップデートした時の話。 before [root@ip-*** home]# curl localhost:9200 { "name" : "***", "cluster_name" : "elasticsearch", "cluster_uuid" : "***", "version" : { "number" : "5.2.1", "build_hash" : "***", "build…

OpenCV2でお手軽顔認識

OpenCVを使った顔認識を試してみたのでメモ。 Enviroments macOS Sierra jupyter pyenv(anaconda3-2.5.0) gistfb4ec23b44147bb5f088818ae3741354 やってることは カスケードフィルターの定義 画像の読み込み、モノクロに変換 フィルターの特徴量を取得 認識…

Mixpanelのevent propertiesで、一つのpropertyが許容できる文字列長は255バイトまでだった

キーワード: mixpanel, size, max, len property, event property mixpanelでトラッキングをする際、event propertyを定義出来るのですが、1つのpropertyが許容する文字の長さは255バイトまでだったということが分かりました。 実際に確認してみたコード(事…

【Python】Seleniumを使ってTwitterにログインするスクリプトを書く

Webブラウザのレンダリングエンジンを実装する必要があったので、練習がてらにSeleniumを使ったTwitterログインのスクリプトを作ってみました。 環境はMac & Python3です。 Selenium - Web Browser Automation gist969d904b4cad239da2a5c00df1ad87e7 Seleniu…

Redshiftで「Check 'stl_load_errors' system table for details.」と怒られた時

このSQLで原因が分かる SELECT starttime, TRIM(colname), LENGTH(raw_field_value), err_code, TRIM(err_reason), raw_field_value FROM stl_load_errors ORDER BY starttime DESC LIMIT 20; 各エラーコードの詳細(日本語)は以下に記載されている。 docs.aw…

mailgunのopenのイベントトラッキング(open, click)をユニークにする方法

mailgunのopenのイベントトラッキングをユニークにする方法を紹介します。 mailgunは、デフォルトではメールの開封(open)やメール内でのアクション(click)といったログは取得できませんが、コンソール画面で設定をする事によって取得することが出来るように…

【Python】pandas DataFrameのixとilocの違いについて

pythonライブラリ「pandas」の話。 DataFrameを操作する予約語「ix」、「iloc」の違いが分かっておらず、痛い目を見たのでどのような違いがあるのかを残しておきます。 gist97eb1fc2b3d1c07760ad542cba523b6a 結果がどのようになるかというと... ixではindex…

「onBeforeunloadHandler」を仕込むとChromeではPage Unresponsiveのエラーが発生する

(ちょっと詰まったのでメモ) JavaScriptの関数にはページのリロードやブラウザの戻るをクリックしたときに、その遷移を防止するためにブラウザのモーダルで可否の確認を出現させる 「onBeforeunloadHandler」 というのがあるのですが、どうもChromeではこの…

GitLab CI で「ERROR: Build failed: Get http://unix.sock/v1.18/version: dial unix /var/run/docker.sock: socket: too many open files」と出た時の対処

いつもの様にpushしてCIがpassするのを待っていたら下記の様なエラーに遭遇。 gitlab-ci-multi-runner 1.3.2 (*****) Using Docker executor with image python:3.5.2-alpine ... ERROR: Build failed: Get http://unix.sock/v1.18/version: dial unix /var/…

mailgunのEvent APIによるメールのトラッキングをrubyで実装する

mailgunでは送信したメールをトラッキングしてくれる機能が標準でついており、APIを使う事によってステータスを取得する事ができます。 そこで送信したemailの状態を確認するEvent APIを利用してデータを取得する処理をrubyで実装してみました。 コード samp…

【AWS】ELBのログをS3に保存し、Lambdaを利用してElasticsearchにデータ転送。そしてkibanaで可視化。

タイトルの通りですが、AWSのサービスを駆使して全てのアクセスログをElasticsearchに突っ込み、kibanaで可視化するというデータ基盤を作る機会があったのでその方法を残しておこうと思います。ちなみにほぼリアルタイムで反映されていくのでlambda archtect…

台湾でApple Payがついにスタート。日本のApple Payとの違いについて

台湾でもApple Payがスタートしました。 www.apple.com セキュアな環境を作る為にイシュアー(=クレジットカード発行会社)や銀行と連携をしているので、まだ国によっては交渉中で使えないという背景がありそうですが、今回ローンチした台湾でのApple Payは7つ…

mailgunのBatch sendingを使って複数のユーザーに同一メールを一括で送信する機能をGoで実装する

mailgunのBatch sendingという機能では同一のメールを複数ユーザーに一括で送信することが出来ます。 この記事ではGolangによる一括送信の機能について紹介します。 具体的なコードは以下の通りです。 gist1984d7f79032c8162b08c2ecaf6e2d6f 配列にあるメー…