developer's diary

最近はc#のエントリが多いです

AWS Summit Tokyo 2015 2035 年、その時デベロッパーはどう生きるか つぶやきメモ

AWS Summit Tokyo 2015 【パネルディスカッション】デベロッパーが切り拓く、次の時代 のつぶやきメモ

AWS Summit Tokyo 2015【パネルディスカッション】デベロッパー視点でみた AWS のつぶやきメモ

AWS Summit Tokyo 2015 オープニングキーノート Scott Chaconさんのお話(GitHub, Inc. 共同創業者)つぶやきメモ

GitHub, AWS などの分散テクノロジーが実現する、デベロッパー主体のアプリケーションデリバリ

AWS Summit Tokyo 2015 1day 基調講演 つぶやきメモ

Google Calendar APIにあるCalendarList.DeleteとCalendars.Deleteの違い

違いが気になったのでAPIを動かして確認してみた。

CalendarList: delete

 ドキュメント:CalendarList: delete - Google Calendar API — Google Developers

ユーザのカレンダー一覧から消すのみでした。  カレンダー自体は残るので注意が必要です。

Calendars: delete

 カレンダーオブジェクト自体を削除します。  カレンダーに付随するACLも削除されていると思われます(ACL.List APIでエラーとなった)

 ドキュメント:Calendars: delete - Google Calendar API — Google Developers

WPFを始める際に読んで参考になったリンク集

jQueryUI dialogを利用してalert関数を作成

alertするパターン毎にdivタグをHTMLにべた書きは面倒。

Dialog | jQuery UIを見てみると、

divタグをHTMLに記述してそれをalertで利用するような使い方で書いてある。

alertの種類分作ってられないので関数の中でdivを作ってから

ダイアログ表示後に後片付けするような関数を作ってみる。

毎度毎度dom生成するから重い?

定義:alertDialog関数

引き数オブジェクト

キー 内容
title ダイアログのタイトル
body ダイアログの本文
close ダイアログを閉じたときに実行する関数

使い方

$(function() {

  $("#btnAlert").on("click", function(){
    alertDialog({title:"title",body:"body", close: function(){ console.log("ダイアログを閉じました。") }});
  });

});

デモ

アラートを終了したら再度アラートをしてみる。

alertDialog({title:"title",body:"body", close:function(){
  alertDialog({title:"title2回目",body:"body2回目", close:function(){} });
}});

ソース

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>

<script type="text/javascript">
    function alertDialog(_options){
        var default_option = {
          title:"",
          body:"",
          close:function(){ return true; }
        }
        var options = $.extend(default_option , _options, {});
        var dom = $("<div />", { title: options.title, html: options.body });
        dom.dialog({
          modal: true,
          close: function(){
            var dom = $(this);
            dom.dialog("destroy");
            dom.remove();
            options.close();
          },
          buttons: [
            {
              text: "Ok",
              click: function() {
                $(this).dialog("close");
              }
            }
          ]
        });
    };
</script>


<script type="text/javascript">
  $(function() {
    $("#btnAlert").on("click", function(){
      alertDialog({title:"title",body:"body"});
    });
  });
</script>

<button id="btnAlert">デモ</button>

twilioでフリーダイヤルを取得した際の試算。

価格は以下を参考に

 

というかシュミレーターがあります。

↓↓↓

http://twilio.kddi-web.com/price/#simulatorArea

固定費

月額利用料:1,620 円(税込)

着信料金

1分あたり21.6 円(税込)

発信料金

フリーダイヤル(0120)で受けた着信をアプリで処理する場合は無料だが、 転送する場合は別途発信料金が必要だと思われる。

宛先 1分あたりの料金(税込)
固定電話宛(下記「携帯電話宛」以外) 5.4 円
携帯電話宛(070 / 080 / 090 番号) 16.2 円
アプリ宛(Client 利用) 0.25 円(税込)
SIP 宛 0.5 円(税込)

録音機能

1分あたり0.1 円(税込)

例)単純に携帯電話に転送。全部で100分

項目 費用
月額利用料 1,620 円
フリーダイヤル着信料金 2,160 円
携帯宛発信料 1,620 円
音声録音 10円
合計 5,410 円

例2)8時間 + 20営業日 = 9600分 を固定電話に転送

項目 費用
月額利用料 1,620 円
フリーダイヤル着信料金 207,360 円
固定電話宛発信料 51,840 円
音声録音 960円
合計 261,780 円

SIP宛の発信だと1分あたり0.5 円なので、合計214,740円

しかし

同時に電話が掛かった場合、「通話待ち」の状態にしないといけない。

twilioの場合、通話キューイングという機能があるのでそれを使えば実装は出来そう。

しかし通話待ちの間は、フリーダイヤルの着信料金がかかる。

なので単純に計算できない。。。

今度はNTTコミュニケーションで試算してみよう。

【調査】AWS SDK for JavaScript in the Browserを利用してS3のセキュリティを確認する

要旨

Facebookでログインしたアカウントを利用してAmazonのs3にファイルをアップロードした場合、 他ユーザ(別アカウントでFacebookからログインしたユーザ)からどう見えるかを検証。

詳細

  • プライベートなバケットを用意(CORS Configuration EditorでCROSを許可しておく)
  • AWS.WebIdentityCredentialsを利用してFacebookのアカウントにAMIを発行する
  • 発行したAMIのアカウントでS3に対してプライベートなバケットにファイルをアップロード
  • 他のユーザでログインして確認した場合どのように表示されるか。
  • S3からファイルを表示する際は、有効期限付きのURLを生成する(getSignedUrl)

AWS SDK for JavaScript in the Browser

※【AWS SDK for JavaScript in the Browser】はDeveloper Previewです。

ブラウザ内の AWS SDK for JavaScript

権限の種類

権限 意味
private 所有者に FULL_CONTROL が付与される。
public-read 所有者に FULL_CONTROL 、All Users に READ が付与される。
public-read-write 所有者に FULL_CONTROL 、All Users に READ/WRITE が付与される。
authenticated-read 所有者に FULL_CONTROL 、Authenticated Users に READ が付与される。
bucket-owner-read オブジェクト所有者に FULL_CONTROL 、バケット所有者に READ が付与される。
bucket-owner-full-control バケット所有者とオブジェクト所有者に FULL_CONTROL が付与される。

権限の参考

結果

本人が表示

f:id:mitsugi-bb:20141025132923j:plain

他人が表示

f:id:mitsugi-bb:20141025132822j:plain

結果

private、bucket-owner-read、bucket-owner-full-controlで保存したファイルは

ログインユーザまたは、バケット所有者しかアクセスできない。

参考

http://devlog.mitsugeek.net/entry/2014/03/08/AWS_SDK_for_JavaScript_in_the_Browser%E3%81%A7s3%2Bjs%2Bfacebook%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%92%E3%82%84%E3%81%A3%E3%81%A6

http://fb.dev-plus.jp/reference/getstart/website/auth/