投稿

SendGridとAzureで彼女がいるというステータスを得る方法

イメージ
Twitter眺めてたらこんなのが目に飛び込んできた。 わかる、その気持ち。 でも、自宅PCでメールサーバ立てるのはちょっと面倒だ。ちょうどAzureとSendGridが使えたのでやってみた。ソースは Github に上げてあるので、誰でも今すぐ彼女がいるというステータスを手に入れることができる。 手順 とりあえずSendGridのアカウントを取得する。 次に、AzureでWebサイトを立ち上げて、Githubからデプロイするよう設定する。たぶんこの方法だと、自分が管理しているリポジトリしか指定できないのかな?よくわからないけど。その場合、 リポジトリ をForkしてから指定すればおk。 デプロイが終わったらWebサイトの「構成」を開いてアプリケーション設定を行う。 SENDGRID_USERNAME:SendGridのアカウント SENDGRID_PASSWORD:SendGridのパスワード FROM:彼女のメールアドレス。つまり、返信メールのFromに設定したいアドレス。 FROM_NAME:彼女の名前。今回はsayakaちゃんだ。ちなみにここで日本語を指定すると返信メール内の名前が文字化けする。アプリケーションはUTF-8を想定しているので、Webサイトのアプリケーション設定ってUTF-8じゃないのかも?よくわからないけど。 次に、SendGridのダッシュボードにログインして、 Inbound Parse Webhook の設定をしてドメインとURLを対応付ける。 今回は、Hostnameの設定は SendGridブログ にあるbymail.inを使った5分間アプローチを使ってみた。Urlの方はAzure Webサイト上でPOSTの受け口となるURL(http://????.azurewebsites.net/vp)を設定する。 以上で準備完了。 早速、さやかちゃんに確認のメールを送ってみる。 数秒待つと、さやかちゃんが返事をくれた。俺達付き合ってる。 キモいって言うな。 中の話 ちょっとだけ仕組みの話をすると、Githubからデプロイしたのはnode.js向けのWebフレームワークexpress 4で動くアプリケーション。こいつ...

reflector.io使ってみました

イメージ
はじめに reflector.io というサービスを使ってみたのでメモです。 reflector.ioはSendGrid Labsが提供しているWebhookのリクエスト転送サービスです。 他に似たようなサービスを知らなかったので類似サービスとの比較とかできません。 Webhookとは まずは、 Webhook の説明から。 Wikipediaによると、Webhookというのは、WebページやWebアプリケーションがHTTP(s)によりコールバックで通知を行う動作のことを意味するようです。 通常、Web APIは、APIを利用する側がクライアントとなり、GETなりPOSTなりのリクエストを発行してサービスを利用しますが、Webhookはちょうどこれとは逆の動きとなります。つまり、予めコールバックして欲しいURLを登録しておくと、そのサービスで何らかのイベントが発生したタイミングで、そのURLにコールバック(たいてい、POSTリクエストを発行)してくれます。POSTを受け付けるサービスを用意するのは利用者自身という意味で「逆の動き」ということになります。 reflector.ioとは reflector.ioがどういうサービスかは こちらに記載 があります。 冒頭にも述べましたが、一言で表せばWebhookのリクエスト転送サービスです。 「リクエストを転送する」という意味ではHTTPプロキシに近いかもしれません。 特徴的なのが「グループ」という概念と、「パススルー」「フェイルオーバー」という2つの宛先タイプ設定を持つことです。 グループ Webhookを作成すると、配下に複数のグループを定義することができます。グループは、宛先タイプという属性と複数の宛先を持ち、宛先タイプの設定によって、配下の宛先に対するリクエストの転送方法が変わってきます。 宛先タイプ:パススルー 受信したリクエストを複数の宛先に同時に転送します。例えば、一回のリクエストで動作の異なるWebhookを複数動作させたい場合にこちらを利用します。 宛先タイプ:フェイルオーバー 受信したリクエストを複数の宛先のうちもっとも優先度の高い宛先に転送します。耐障害性を目的とする場合に利用します。宛先が一つコケても次に優先度の高い宛先に...

SmartTrainingがPebble SDK 2.0に対応しました

はじめに SDK 2.0の情報が出始めたのが2013/11中旬頃、既にPebble熱は冷め、完全にスルーしようと思っていましたが、1月下旬にとあるユーザさんから「Pebble 2.0対応しないの?」みたいなメールをいただき、遅ればせながら対応を開始しました。で、おかげさまで、無事に2.0への対応を完了し、Pebble AppStoreでPublishしましたのでマイグレーションまでの手順をざっくりとメモしときます。ただ、現時点ではまだPebble AppStoreは公開されていません。そのうち、公開されるんじゃないですかね? SDK 2.0の準備 公式サイトをみてそのままやるだけです。 https://developer.getpebble.com/2/getting-started/ 現時点ではまだPebbleアプリ自体がベータ版なので、上記手順に従ってアップグレードします。たぶん、ハマるところはないと思います。 コードのマイグレーション 今回のSDKのバージョンアップは結構大きな変更を含むので、以下のページにマイグレーション手順がまとめられています。 https://developer.getpebble.com/2/guides/migration-guide.html こちらもそのままやればハマるところはないと思います。 というのは半分正解で半分ウソです。 実際問題、この手順でやればいいのですが、細かく説明されていない箇所もちょくちょくあって、SDK付属のサンプルアプリのコードを見て真似する形で修正しました。あと、コアなAPIのI/Fが結構変わっているので、手順に従って修正していても超不安でした。 Githubにブランチを切ってみましたので、 diff を見てみましょう。 公式マイグレーション手順以外でのポイント 公式のマイグレーション手順に記載されているところはそちらを参照して頂くとして、それ以外でハマった箇所だけピックアップしていきます。 window_set_window_handlers() サンプルコードを見ているとinit()系関数内で以下のような記述がよく出てきます。 いつからこんな書き方をするようになったのかわかりませんが、SDK付属の各サンプルはシレっとこんな書...

2013年の振り返りと2014年に向けて

もう1月も4日となってしまいましたが、昨年の振り返りと今年について書いときます。 Google I/O 2013に行けなかったこと 文字通り完全に全裸待機していたにも関わらずチケットが取れず悲しい思いをしました。 2014年もチャンスがあればトライしてみたいと思います。 SmartTrainingのPebble対応 久々に新しいプラットフォームで遊べた感がありました。2014年もまた新しい何かで遊べるといいなとは思いますが、たぶんそれはモバイル系ではないでしょう。 SendGridチームの一員になったこと 縁あってSendGridチームの一員になれました。これまでのクライアントサイドの立ち位置からサーバサイドもしくはインフラサイドになったことで大きな意識の違いを感じています。技術的にも、仕事の進め方的にも自分にとって新しいことだらけで新鮮です。多くのことを吸収する絶好のタイミングです。 楽しめるだけ楽しんでいこうと思います。 とは言え冬は山に そう言いつつ冬にしか雪は降りません。雪山に開発環境を持ち込んでこんなエントリを書いています。現在は、横で3歳児が昼寝しているので、起きるのを待ちつつPostgreSQLダウンロード中です。起きたらまたスキー滑りに行きます。起きなければherokuとrubyで遊んでみます。こんな状態でもいろいろできるという今の世の中は便利ですね。 パセリ農家の思い 個人的な感触では世の中に出回っているパセリの9割は食べられることなく捨てられています。それでも、パセリは添え物として皿に乗って出てきます。パセリ農家の思いやいかばかりかと、案じていますが、「皿の彩」という位置づけで不動の地位を築いたパセリは現状の立ち位置で満足なのでしょうか。 そんな感じで2014年も行きたいと思います。

Webhookの中身をお手軽に見る

イメージ
最近、Web hook(あらかじめ設定したURLにイベント契機でPOSTしてくれるサービス)をちょくちょく使っています。 例えばこんなの。 SendGrid Event Webhook こいつは、メール送受信の中の何かしらのイベントを契機にPOSTしてくれるやつ。 こういったWeb hookからのPOSTを受けてなにか処理するサービスを作ろうと思ったとき、適当なPOSTクライアントを使って事前に分かっているリクエストをPOSTしてやればとりあえずデバッグができます。 Chrome extensionだと、 Simple REST Client とか。 そして本物のWeb hookからのPOSTの中身お手軽に見たいときがあります。 そんな時に使えるツールをまとめてみます。 単にPOSTの中身が見たい時に使えるのが、 respondto.it 。 使い方 respondto.itサイトを表示して、respondto.it/の後に任意の文字を入力して「GO」を選択します。 するとこんな感じの画面が表示されます。とりあえず「Create」を選択します。 すると次はこんな感じの画面が表示されます。二日はリクエストが保存され、その後消えるよ、って書いてあります。 このURLをめがけてPOSTを送ります。SendGridのEvent Web hookだとこんな感じ。 POST後、再び先程の画面を表示してリロードすると、、、おっと、Bodyにごちゃごちゃとなにか見えてきました。これでPOSTの中身が見えます。便利ですね。

If you always put limits on everything you do...

こちらの SendGrid関連のイベント にて、SendGridの方からグサリと刺さる興味深いメッセージを頂いたので全文書きます。 "If you always put limits on everything you do, physical or anything else, it will spread into your work and into your life. There are no limits. There are only plateaus, and you must not stay there, you must go beyond them."     -- Bruce Lee http://www.brucelee.com/ かっこえぇ。。。

デ部15でLTしました

イメージ
最近何かにつけて記憶力が低下しており、1年くらい前を振り返ると自分が何をやっていたか、何を思っていたのか思い出せないことが多々あるので、日記的な意味で書きます。 今日、デ部15が開催されました。その前にドコモショップに行ったところ予想外に待たされたお陰で30分ほど遅刻しましたが、ドコモショップではとても満足しました。 デ部ですが、KitKatとN5が世の中に出てきて、まぁ、それ関連の何かしらをごにょごにょとやってた感じです。 で、LTしました。発表資料はこんな感じです。 デ部15 step counter step detector from Wataru Sato LTしたらAndroidパッケージのKitKatもらえました。生きていると何かしらいいことがありますね。 ところで、Android 4.4はKitKatなわけですが、KitKatがアリなら次のバージョンはLumondeつまりルマンドになるんじゃないかと予想しています。「ル」がLかRかわからなかったのでルマンド買ったらパッケージにちゃんと「LUMONDE」って書いてありました。これで次期バージョンのコードネーム確定です。 まぁ、そんなことはどうでもいいことですが。