投稿

2013の投稿を表示しています

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」って書いてありました。これで次期バージョンのコードネーム確定です。 まぁ、そんなことはどうでもいいことですが。

SendGrid Nightに参加しました

はじめに SendGrid Night に参加してきました。 詳しくはこのへんを。 SendGrid Nightやりました LTしてきました SendGrid Parse APIをデモってみる from Wataru Sato Parse APIについては、 宛先アドレスごとにPOST先を振り分けたい アドレスをフィルタしたい(POST側でフィルタしたくない) みたいなFeature requestがありました。確かに欲しいですよね。 今の仕組みはシンプル杉ですから。 Feature requestは受付窓口があるみたいなので、見つけ次第ビシバシ送りつけてやります。 それが使われるサービスになるための道です。 感想的なこと いっぱい人がいました。 既にSendGrid使っている人もいっぱいいました。 日本語サポート、ドキュメントに対する期待の高さも感じることができました。 やりますよ。

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)

イメージ
前回に引き続き SendGrid についてです。 今回は SMTP API を使ってみました。 SMTP APIについて SendGridのSMTP APIは基本的には普通のSMTPプロトコルに則ったものですが、X-SMTPAPIヘッダというカスタムヘッダを使うことで機能を拡張することができます。 X-SMTPAPIヘッダについて X-SMTPAPIヘッダはSMTPプロトコルの拡張ヘッダです。 X-SMTPAPI: { "category": "newuser" } みたいな感じでJSON形式でパラメータを与えることで機能を拡張します。 Section TagsとSubstitution Tagsについて 今回はSMTP APIで使える機能のうちSection TagsとSubstitution Tagsを使ってみました。 Section TagsとSubsitution Tagsは送信メールの内容を宛先毎に特定の文字列を置換するための機能です。toと合わせて使うことで機能します。 例えば、X-SMTPAPIヘッダの値を以下のような形にします。 { "to": ["test1@xxx.xxx", "test2@yyy.yyy"], "sub": { "-body-": [ "-bodyFemale-", "-bodyMale-" ], "-favorite-": [ "バナナ", "カツオ" ], " "-nickname-": [ "ミキ", "サブロー" ] }, "section": { " "-bodyFemale-": "-nickname-さん!女性向けの商品のご紹介です。", "-bodyMale": "-nickn

AndroidからSendGridを使ってみた

イメージ
Androidから SendGrid APIを使ってみたのでメモっときます。 SendGrid について PaaS/SaaSの一種でEメールを扱うサービスです。SMTPによるメール配信サービス、受信メールをトリガとした処理の駆動、扱ったメールの統計・統計結果表示、マーケティングメールの配信管理などの機能があります。 今回やったこと SendGridが提供するWeb APIとSMTP APIをAndroidアプリから行ってみました。やった内容としては、 JavaでSendGridを利用したメール送信 と同じです。 要は、 ・JavaMailを使ってSMTP APIを利用。 ・ sendgrid4j を使って基本的なWeb APIを利用。 と、これだけです。 具体的には、 JavaでSendGridを利用したメール送信 と同じなのでそちらを参照していただければと思います。以上でした。 で、終わってしまうのはアレなので普通のJavaと違った点のみ絞って書きます。 ソース とりあえず、 この辺 に置いときます。 尚、動かす場合、HelloSendGrid.java内のSMTP_AUTH_U SER、SMTP_AUTH_PWD、SENDER_ADDRESS、RECIPIENT_ADDRESSあたりをそれぞれ置き換えます。 依存関係 こんな感じ。合計約1.5MB。2,3年前だったらデカめな印象でしたがイマドキ特にデカくはないですよね。 Java環境との違い いずれもSendGridを使うための特別な事項はありません。ただ、ちょっとだけ事情が異なる点だけ。 Oracle提供のJavaMailは使えない AndroidではOracle提供のいわゆる JavaMailは使えません 。理由は、awtに依存しているためです。そういうわけで、 javamail-android を使います。基本的に両者のI/Fは同じみたいなのでjarファイルを入れ替えてあげるだけで動きました。 認証情報の扱いに注意が必要 今回のサンプルアプリケーションでは、SendGridの認証情報をコードの中に埋め込みましたが、一般に公開するAndroidアプリでこれをやるとSendGridの認証情報が

さようならAndroid JaTTS。ありがとうAndroid JaTTS。

SmartTraining Ver.8.0.12からAndroid JaTTSの対応をやめました。 バージョンアップした人はいきなりN2TTSインストールを求められて「なんじゃこりゃ、元に戻せやゴルァ!」みたいに言わないかと若干心配ではありますが、一応、長い間利用させていただいたAndroid JaTTSへの感謝の意味を込めて、元々の導入の経緯と対応をやめた理由をメモっときます。 ここで言うTTSとはText to Speechのことです。文字列を音声化する機能のことです。 導入の経緯 SmartTrainingをリリースした当時、Androidのバージョンは1.5から1.6に上がったあたりで、ようやくOSがTTSをサポートし始めたころでした。今と違って日本語をサポートしたTTSエンジンは世の中に存在せず、日本語で音声をだそうと思ったら別途独自の仕組みを構築する他手はありませんでした。 そんな時見つけたのが Android JaTTS です。小さなライブラリをインポートするだけで端末に日本語を喋らせることができたのは、当時Android初心者だった自分としては結構衝撃的でした。仕組みとしては文字列を入力としてサーバに送信し、サーバ側で音声合成した結果の音声ファイルをダウンロード、再生という形をとっています。サーバ側は Galatea talk という多数の大学、研究機関が関わった由緒正しいプロジェクトを源流にしています。当時、音声合成エンジンとしてはいくつかありましたが、無料で、面倒な設定不要で使えたという理由で選択しました。 N2TTSの出現 その後、KDDI研究所さんがN2TTSというAndroid標準のTTSに準拠した無料の日本語音声合成エンジンをリリースしました。これは現在でも日本語TTSとして最も有名なものとなっています。 Android JaTTSを利用する上での課題 バッテリー消費が大きい 音声合成をするたびに「リクエスト送信→合成された音声データダウンロード」という手順を踏むのでどうしても通信によるバッテリー消費が避けられません。 サービスの停止 サーバを運営されている方のほうでどれくらい運営コストがかかっているのかはわかりませんが、24時間365日サービスが提供されているわけではありません。時々

SmartTrainingでPebble対応してみました

イメージ
はじめに 去年Kickstarterで勢いのあった Pebble 。即Backerになりました。 発売されたのは2013年1月くらいでしたが、なんだかんだで発送が遅れて入手できたのが2013年5月。とりあえず使ってみて、今まで使ってきたLiveViewやSmartWatch MN2と違った面でイイ感じだったのでSmartTraining対応してみました。 Androidアプリ WatchApp 忘れても思い出せるようにメモしときます。 ユーザ的観点 抜群のバッテリーの持ちの良さ 今まで使ってきたsmart watchに比べると電池の持ち時間が圧倒的に長いです。 LiveViewとかMN2だと静かになるべく使わないようにしてギリ二日とかだったのが、PebbleだとGmailの通知1日50件くらい発行しても1週間経ってようやくバッテリー警告が出る感じ。警告出てから1日経っても干上がりませんでした。その後は試してないですが。とにかくバッテリー面の運用が楽です。 実用的な液晶 IS03に使われていたメモリ液晶と似たような雰囲気です。白黒しか表現できません。パッと見地味ですが、明るい場所で全く見えないMN2と比べると、直射日光下でもちゃんと見えるので実用的です。暗い場所ではバックライトONで見えるようになります。 不快なリストバンド 他のsmart watchと同様、通気性ゼロのゴム性のバンドです。梅雨時期に付けていると不快感100%です。しかも交換は不可。なんでこういうバンドにしちゃうんでしょうね。まぁ、耐久性は抜群なんだと思いますが。きっとHQのあるカリフォルニアの気候だとこういうバンドでも問題ないんでしょうね。 文字化けするビルトインアプリケーション Phoneからの通知は全体的に豆腐に文字化けします。あとたまに生HTMLが表示されたりします。日本語を含むGmail通知はまともに読めた試しがありません。 開発者的観点 C言語 C言語(C++ではなく)にPebble独自のフレームワークを乗せた感じです。フレームワーク自体はサンプルが少ないながらもリファレンスは充実しているので使いやすいと感じました。また、標準的なC言語ライブラリが全て利用できるわけではありません。例えばmallo

DialControllerのソースを公開してみた

イメージ
BodyRecorderのために作った、くるくる回したり、上下左右をクリックすることで操作するためのコントローラをライブラリ化して Githubでソースを公開 してみます。 テキストやら背景は一通りコードおよびXMLから変更可能なのでそこそこ汎用的かと思います。欠点は、正方形に近い領域がないと円の半径が確保できないことです。 何かに使えるといいですね。 サンプルのイメージはこんな感じ。

SmartTraining V8テスター募集してみます

読み込み中...

BodyRecorder v1.0.0リリースしました

イメージ
久々に新しいアプリをリリースしました。 https://play.google.com/store/apps/details?id=com.awwa.bodyrecorder BodyRecorderという今のところ体重を記録するだけのアプリです。 体重を記録するアプリなんて腐るほどあり、いまさらなんでこんなもの作るのよ?という感じはありますが、いろいろな事情によりこういった形での公開となりました。 流れとしては、 SmartTrainingの体重編集機能弱いねぇ ちゃんと履歴管理できるようにしたいねぇ SmartTrainingに体重管理機能追加(非公開) SmartTrainingに体重データ同期機能追加(まぁ、動いた) 体重管理とSmartTrainingは機能的に分けた方が広がりがあるんじゃね? 共通ライブラリ部分と、アプリ部分を分離 リリース といった感じの行き当たりばったりで作っていたので体重編集機能追加しようと思ってから半年以上経過しています。まぁ、いいんです。 たいした機能がない割に、今回のアプリで手間がかかった部分としては、 カレンダーコントロール HoneyCombから追加されたCalendarViewをGB以前でも動作するように移植しました 主にはsmoothScroll系のメソッドをコメントアウトしたくらいです 移植したはいいけど、描画動作がもっさりしてイマイチだったので、汎用性を捨てて高速化しました 土日を色分けしたり、画面高さに応じて週高さが決定される部分に最低高さを設けたりと、見た目で気に喰わない部分を修正しました 体重入力インターフェイス オリジナルのiPodのインターフェイスをイメージしたUIを独自で作りました 連続性のある数字の入力するのに最低限の操作で行える方法を目指しました 色々と使いまわせそうなのでソース公開もやってみたいな 2種類のOAuth2実装 ICS以降向けにAccountManager経由でのOAuth2実装 HoneyComb以前向けにWebView経由でのOAuth2実装 セキュリティ的な問題はあるものの、これ以外方法がないのでやむを得ず実装 Google Driveとの同期機能 SmartTrainin

Google Fusion Tables API v1.0 Tips

※2013/5/3追記 その後気付いた点を追記、編集したTipsのRev2を作りました。 http://www.slideshare.net/awwa500/google-fusion-tables-api-v10-tips-rev2 どうせ見るならこっちの方がよさげです。 ---- Google Fusion Tables API v1.0を使ってみました。そこそこTipsが溜まったのでブログにまとめようと思ったら、勢い余ってスライド作ってしまいました。 http://www.slideshare.net/awwa500/google-fusion-tables-api-v10-tips 発表する場の予定はありませんが、あったら是非ご紹介お願いします。ネタトーク的な感じでならやりたいです。 元々はAndroidアプリでSQLiteとFusion TablesのデータのSynchronizeの仕組みを作成する途中でできた成果物です。なので、Fusion TablesのStylesやらTemplatesやらの機能は含まれていません。そのうちまた踏み抜いたドブ板が溜まってきたらまとめるかもしれません。