2015年 10月 の投稿一覧

evacにGAERプラグインを追加した

GAERというとてもクールなツールがあります。

t32k.me

コマンドラインからJSON文字列を与えるとその内容をGoogle analyticsのイベントトラッキングレポートとして情報を渡してくれるもので、任意のキーと値の組み合わせで与えられる情報の推移をグラフとしてAnalytics上で閲覧できる様になるのでWebサイトのアクセス等のトラフィックと各種指標を並べて閲覧できる様になるのでとても便利なツールです。

GAER自体はGoogle analyticsMeasurement Protocolを利用して通知させていますがnpmとして公開されているのでそれを利用すればAPIとして自身のツールの中で埋め込んでも利用することができます。

今回、これを利用させてもらって弊作のevacの出力として利用できる様にしました。

例えば、Instagramのフォロワー数をGoogle analytics上のイベントに記録するには先日の手順に倣ってInstagramのフォロワー数をAPI経由で取得してGAERを通じてGoogle analyticsに通知してみます。

以下の様なYAMLファイルを用意します。

in:
jsonRequest:
targetProperty: data.counts.followed_by
url: https://api.instagram.com/v1/users/xxxxxxxxx/?access_token=*******
out:
gaer:
id: UA-xxxxxx-99
reportName: Instagram
parameterName: Follower

で、これをevacに食わせます。

$ evac -v instagram_follower.yaml
2015-10-17T07:49:20.287Z - info: Settings are loaded from a file :instagram_follower.yaml
2015-10-17T07:49:20.992Z - info: Input plugin called.
(snip)
Sending [||||||||||||||||||||||||] 100%
Success: The data is sent to UA-xxxxxx-99

Google analyticsのイベントにGAER > Instagram というレポートが追加され、Followerの値が記録される様になります。実際にGoogle analyticsを確認してみるとイベントのレポートの箇所に記録されているのがわかります。

これを定期実行すれば、以下の様な形で日毎のInstagramフォロワー数を記録していくことができ、それをグラフとして確認できる様になります。

evacの入力にはWebページのスクレイピング結果やMySQLへのクエリ発行の結果、iTunes connectを通じたアプリのダウンロード数の取得等ができるので、サービスにまつわるKPIを一括で確認できるダッシュボードとしてGoogle analyticsが使える様になります。(きっと)

最相葉月「仕事の手帳」を読んだ

青いバラ」「絶対音感」といった作品でお馴染みのノンフィクション作家最相葉月さんの仕事論。

4章で構成されていて、

  • 仕事の心得
  • 聞くこと
  • 書くこと
  • 読むこと

特に2章目の「聞くこと」はFM番組でのインタビューの書き起こしなのだけど、合間合間にこの本を起こす際に聞き手としての著者の反省や補足などといったコメントが差し込まれていて単純な書き起こしではなく、聞くことを仕事としたときに心がけるべきことを知れてとても興味深く、一通り読み終えて感じたのは聞くこと・聞き方の大切さと最後は人と人との関係が職種問わず大切だなと思った。

最近、社会人として働き始めた人、また仕事で関わる範囲に変化が起きた人が読んでみると、学べる点が多いのではないだろうか。

npmのtunnel-sshを利用してSSHポートフォワーディングする

SSHでポートフォワードするのをNode.jsだけで行うことを試してみたのでその際のメモ。

下の例では、local(127.0.0.1)の13306番にアクセスするとSSH接続先のホストから接続できる mysql***.heteml.jp の3306番にフォワードしている。

npmで公開されている tunnel-ssh を利用するとシンプルにできる。

$ npm install tunnel-ssh --save

SSH接続するための設定とポートフォワードする先の設定、ローカルで接続待ちをするポート番号を指定する。

// tunnel.js
var tunnel = require('tunnel-ssh');
var config = {
username: 'ssh-hideack',
port: 2222,
host: 'ssh***.heteml.jp',
privateKey:require('fs').readFileSync('/Users/hideack/.ssh/id_rsa'),
passphrase: '******',
dstPort: 3306,
dstHost: 'mysql***.heteml.jp',
localHost: 'localhost',
localPort: 13306
};
var server = tunnel(config, function (error, result) {
if (error) {
console.log(error);
process.exit();
}
console.log('connected');
// これ以降にMySQLクライアント等でlocalhostの13306番に接続する処理を書けばよい
});

というメモエントリでした。

greenkeeper.io を利用してプロジェクトが依存するnpmを最新の状態で保つ

プロジェクトで依存しているnpmを最新に保つのにgreenkeeperというサービスを見つけたので試してみました。

まずはcliツールをインストール。このサービスのカッコイイのがOAuthの部分を除いてコマンドラインで完了するというところ。

$ npm install -g greenkeeper

まずはgreenkeeperにログインします。コマンドラインでログインを指定。

$ greenkeeper login

そうするとGithubOAuth認証用にブラウザが立ち上がって認証を求められます。

f:id:hideack:20151002210341p:plain

その手続が済むとgreenkeeperを利用可能な状態になっているので、greenkeeperでpackage.jsonで管理されているnpmパッケージを最新に保ちたいプロジェクトのルートでgreenkeeperを有効にします。

☁  remp-api [master] greenkeeper enable
🌴  info enable The GitHub slug is: remp-team/remp-api

そうすると該当リポジトリ内にある package.json の監視が始まり、最新のnpmパッケージがあれば自動的にプルリクエストが作成されます。

f:id:hideack:20151002210518p:plain

github側で連携していれば当たり前ですが自動的にSlackに流れてきて, CI走って便利感ある。

f:id:hideack:20151002210650p:plain

例によってプライベートリポジトリだと課金が必要なのですがパブリックなリポジトリであれば無料で利用できる様なのでぜひお試しください。


2015年9月に読んだ本を振り返る

先月は11作品。

村上龍と坂本龍一 21世紀のEV.Cafe (SPACE SHOWER BOOks)は2000年前後の対談が多く含まれて改めて2011年以後に収録され発刊されたもの。コンテンツに対する考え方や社会問題等、あまり大きく変わっていないことが良いことなのか。悪いことなのか。

廃駅ミュージアムは刹那系。それぞれの駅の歴史的経緯も写真に添えてある。終わりは始まりであり始まりは終わりでもある*1


hideackの本棚 - 2015年09月 (11作品)
くいしんぼう
松浦弥太郎
読了日:09月26日



powered by booklog

*1:先日終了したブラタモリの始点・終点のコーナーの締めのナレーション