2011年12月30日金曜日

Google Translate APIの帰属の表示(その5)

Google Translate APIを使用するには、
Googleへの帰属を表す表示が必要です。

Attribution Guidelinesのページに説明されていますが、
ここを翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちら、第4回はこちらです。

Translation Results - 翻訳結果
ユーザーのアクションに応じて、アプリケーションはGoogle Translate APIから取得した翻訳結果を表示することができます。このような情報を表示するたびに、http:translate.google.com/へリンクするGoogleへの帰属を含める必要があります。

Translation buttons - 翻訳ボタン
Google Translate APIを使って、あなたのサイトからGoogle Translateに直接呼出しを行うことが可能です。これらの機能を組み合わせて使うボタンやリンクは、Googleへの適切な帰属情報を含めなければなりません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月29日木曜日

Google Translate APIの帰属の表示(その4)

Google Translate APIを使用するには、
Googleへの帰属を表す表示が必要です。

Attribution Guidelinesのページに説明されていますが、
ここを翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちらです。

Attribution and Logos - 帰属情報とロゴ
以下のGoogleの全体についてのBrand Features guidelinesに加えて、Google Translate APIを使用するときには指定されたブランディング要素を設置する必要があります。これらの付属するフォームは、一貫性を維持し、Googleのブランドアイデンティティを維持するために使用されています。
以下の基本的な原則がGoogleの名前とロゴをGoogle Translate APIを組み合わせての使用を統括します:
  • Googleの付属情報が必要です。
  • Googleの名前とロゴは、Google Translateに関連付けられている必要があります。
  • Googleのロゴは、競合するウェブや他の検索サービスのロゴの隣や同じページ上に表示されることは許容されません。このルールに例外はありません。
  • powered by Google Translateのグラフィックは、常に翻訳結果に隣接した場所になければなりません。
  • Googleが指定するように、一切の知的財産権の説明文と告知を表示しなければなりません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月27日火曜日

Google Translate APIの帰属の表示(その3)

Google Translate APIを使用するには、
Googleへの帰属を表す表示が必要です。

Attribution Guidelinesのページに説明されていますが、
ここを翻訳してみます。

第1回はこちら、第2回はこちらです。


Naming - ネーミング
一貫したエンドユーザー体験を確保し、Google Translateの機能を正確に予想するために、定められた命名規則を順守しなければなりません。

Google Translate APIを活用する製品を作成するとき、製品名に「Google」、「Google Translate」その他のGoogleブランドの機能をソフトウェアの名前の一部として使用することはできません。マーケティングやその他のビジネス戦略を理由から、Google Translateの参照を持つことが価値を持つ場合、開発者にはフレーズとして使うことは許容されます(例として、Acme Plugin for Google Translateは可能ですが、Google Translate AcmeOPAC Pluginは許容されません)が、しかしながらこれは例外であり、ルールではありません。GoogleまたはGoogle Translateと提携関係を意味したり、そのような状態にあるということにはなりません。

(ドキュメントや、ヘッダ、ボタンその他のように)APIを通して提供される機能やGoogle Translateを参照する必要が時折あるかもしれません。そのようにした時には、認証された用語を用いなければなりません:
  • Google Translate service: translate.goolge.comのようなURLや、これらのAPIを通して利用可能になるサービスを参照するには、Google Translateという用語のみを用いてください。例として、ハイフンを挿入したり、組み合わせたり、略語としたり、頭字語とする等、Google-Translate、GT、GoogTrans、GTransのように、これらの単語表記を変更してはいけません。
  • Google Translate API:code.google.com/apis/language/translate/overview.htmlに書かれているような開発対象の機能のセットを参照する場合は、Google Translate APIの用語のみを使用してください。このサイトからの用語を使って特定のAPIやツールを参照してください。
Google Translateの機能に英語以外の言語で参照したい場合は、50以上の言語で利用可能なGoogle Translateのサイトと同じ用語を使わなければなりません。

Googleブランドの機能の使用についてのその他の疑問については、http://www.google.com/permissions/guidelines.htmlを参照してください。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月26日月曜日

Google Translate APIの帰属の表示(その2)

Google Translate APIを使用するには、
Googleへの帰属を表す表示が必要です。

Attribution Guidelinesのページに説明されていますが、
ここを翻訳してみます。

第1回はこちらです。



Overview - 概要
Google Translate APIの目的は、ユーザーが自分の言語でコンテンツにアクセスできるようにする手助けとなることです。従って、特定の帰属と、リンクする要件があります。Google Translate APIの使用には以下の基本的な原則に従ってください:
  • ウェブサイトやアプリケーションからGoogle Translate APIを利用する前に、これらのガイドラインを順守する必要があります。
  • Google Translateからの翻訳結果をユーザーに直接表示する場合は、適切なテキストまたはブランド要素を使って、Google Translateからの自動翻訳を参照しているということをユーザーに明示しなければなりません。
  • Google Translate APIを使用するアプリケーションは、アプリケーションの説明文およびヘルプドキュメントに、Google Translateがアプリケーション内で翻訳を行っていることを明記し、Google Translateのサイトへのリンクを提供しなければなりません。
  • ウェブページに表示される翻訳結果が変わらない場合、検索エンジンによってインデックス化されている可能性があり、後述されるHTMLタグを使って機械が翻訳した内容である翻訳されたテキストを指定する必要があります。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月23日金曜日

Google Translate APIの帰属の表示

Google Translate APIを使用するには、
Googleへの帰属を表す表示が必要です。

Attribution Guidelinesのページに説明されていますが、
ここを翻訳してみます。



Attribution Guidelines - 帰属のガイドライン

Attribution Guidelines - 帰属のガイドライン
Google Translate APIは、自身のサイトまたはアプリケーションをGoogle Translateと統合しようとする方は誰にでも利用可能です。これらのAPIの利用はTerms of Serviceに従ってください。とりわけ、これらの規約については、レイアウトの方法、Googleの属性情報、ブランドの表示をあなたのサイトで処理する必要のある、定められたガイドラインに従うことが求められます。このドキュメントは、これらの条件を参照する助けとなることを意図しています。

これらのブランドのガイドラインは、Googleからの通知よりも前に随時変更される場合があります。Google Translate APIの継続的な使用は、その時点でのブランディングガイドラインを順守することが条件となります。

これらのブランディングガイドラインに従うことが不快な場合は、APIの使用を中止して、心配することについて私達に連絡を行ってください。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月17日土曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その8

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちら、第4回はこちら、第5回はこちら
第6回はこちら、第7回はこちらです。

Query parameter reference - クエリパラメータの一覧
Detect Language APIに使用できるクエリパラメータは、以下の表に要約されています。全てのパラメータの値は、URLエンコードされている必要があります。
パラメータ名 意味 ノート
callback レスポンスを受け取った時点で実行されるJavaScript関数 ・このオプションのパラメータは、純粋にクライアントサイドで実装されたコードでクエリの結果を扱うJavaScript関数を指定することを可能にします。

・<script>タグの内部にAPIのクエリを組み込みます。
・コールバック関数を<script>タグの内部で定義します。
・Getting Startedドキュメント内のREST from JavaScriptの項のサンプルを参照してください。
key あなたのAPIキー ・このAPIは、全てのリクエストについて、認証されたキーを必要とします。
Google APIs consoleからキーを取得してください。
prettyprint インデントや改行込みでレスポンスを返します。 ・prettyprint=trueの場合、サーバーから返される結果は人間に読みやすいもの(pretty printed)となります。
・デフォルトはprettyprint=falseです。
q 翻訳元のテキスト ・判別の対象となるテキスト
・複数のテキストの判別を行うために、単一のリクエストに1つ以上のパラメータを繰り返すことができます。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月15日木曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その7

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちら、第4回はこちら、第5回はこちら
第6回はこちらです。



Detect Language - 言語の判別

Working with results - 結果の取得
HTTP GETリクエストを該当するURIに送ることで、テキスト文字列の言語の判別を行うことができます。リクエストのURIは以下のフォーマットとなります:
https://www.googleapis.com/language/translate/v2/detect?parameters
翻訳のリクエストそれぞれについて、2つのクエリパラメータが必要です:
・API key - アプリケーションの識別のためにkeyクエリパラメータを使用します。
・Source text string - 言語の種類の判別を行いたい文字列を表すためにqクエリパラメータを使用します。
その他の全てのクエリパラメータはオプションです。GETリクエストのためのURIは、パラメータ込みで2K文字以内でなければなりません。
Note:単一のリクエストでより多くのデータを送信したい場合、APIを呼び出すためにPOSTメソッドを使用することもできます。POSTメソッドのbody内の「q」パラメータは、5K文字未満出なければなりません。POSTメソッドを使用するには、X-HTTP-Method-Overrideヘッダを使って、リクエストをGETメソッドとして扱い(X-HTTP-Method-Override: GETを使用)、Translate APIに送信しなければなりません。
このサンプルでは、qクエリパラメータを使って"Google Translate Rocks"をテキストとして指定しています:
GET https://www.googleapis.com/language/translate/v2/detect?key=INSERT-YOUR-KEY&q=Google%20Translate%20Rocks
リクエストが成功すると、サーバーは200 OKのHTTPステータスコードとデータプロパティを返します:
JSON
200 OK

{
    "data": {
        "detections": [
            [
                {
                    "language": "en",
                    "isReliable": false,
                    "confidence": 0.18397073
                }
            ]
        ]
    }
}
ここに挙げるもう1つのサンプルでは、言語判別に複数の翻訳対象文字列を渡しています:
GET https://www.googleapis.com/language/translate/v2/detect?key=INSERT-YOUR-KEY&q=Hello%20world&q=%E6%88%91%E5%A7%93%E8%AD%9A
リクエストが成功すると、サーバーは200 OKのHTTPステータスコードとデータプロパティを返します。
JSON
200 OK

{
    "data": {
        "detections": [
            [
                {
                    "language": "en",
                    "isReliable": false,
                    "confidence": 0.114892714
                }
            ]
        ]
    },
    "data": {
        "detections": [
            [
                {
                    "language": "zh-TW",
                    "isReliable": false,
                    "confidence": 0.7392313
                }
            ]
        ]
    }
}


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月10日土曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その6

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちら、第4回はこちら、第5回はこちらです。



Query parameter reference - クエリパラメータの一覧
APIで使用できるクエリパラメータを次の表にまとめます。すべてのパラメータ値はURLエンコードする必要があります。
パラメータ 意味 ノート
callback レスポンスをうけっとた時点で実行されるJavaScript関数 ・このオプションのパラメータは、純粋にクライアントサイドで実装されたコードでクエリの結果を扱うJavaScript関数を指定することを可能にします。

・<script>タグの内部にAPIのクエリを組み込みます。
・コールバック関数を<script>タグの内部で定義します。
・Getting Startedドキュメント内のREST from JavaScriptの項のサンプルを参照してください。
key あなたのAPIキー ・このAPIは、全てのリクエストについて、認証されたキーを必要とします。
Google APIs consoleからキーを取得してください。
prettyprint インデントや改行込みでレスポンスを返します。 ・prettyprint=trueの場合、サーバーから返される結果は人間に読みやすいもの(pretty printed)となります。
・デフォルトはprettyprint=falseです。
target 目的となる言語 ・言語名にあたる言語とソート順
・言語が指定されていない場合、システムは言語名と言語コードに基づいてソートされる順番を返しません。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月8日木曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その5

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちら、第4回はこちらです。


Discover Supported Languages - サポートされる言語の取得

Working with results - 結果の取得
指定のURIにHTTP GETリクエストを送ることで、このAPIのサポートする言語を取得することができます。リクエストのURIは以下のフォーマットです:
https://www.googleapis.com/language/translate/v2/languages?parameters
リクエストあたりに、一つのクエリパラメータが必要です:
・API key - アプリケーションの識別のためにキーをクエリパラメータとして使用します。
他の全てのクエリパラメータはオプションです。
ここでは、translate APIによってサポートされる言語のリストを取得する例を示します:
GET https://www.googleapis.com/language/translate/v2/languages?key=INSERT-YOUR-KEY
リクエストが成功した場合、サーバは200 OK HTTPステータスコードとデータのプロパティを使用して応答します。
JSON
200 OK

{
    "data": {
        "languages": [
            {
                "language": "en"
            },
            {
                "language": "fr"
            },
            ...
            {
                "language": "zh-CN"
            }
        ]
    }
}
上記のレスポンスの内容は、translate APIによってサポートされる言語コードのリストです。リストは、言語コードをアルファベット順でソートしています。
ここでは、与えられた目的の言語がサポートされている言語のリストの中に存在するかどうかを返す別の例を挙げます。返されるリストは、目的の言語の中でアルファベット順でソートされます。
GET https://www.googleapis.com/language/translate/v2/languages?key=INSERT-YOUR-KEY&target=zh-TW
リクエストが成功した場合、サーバは200 OK HTTPステータスコードとデータのプロパティを使用して応答します。
JSON
200 OK

{
    "data": {
        "languages": [
            {
                "language": "zh-CN",
                "name": "中文(簡體)"
            },
            {
                "language": "fr",
                "name": "法文"
            },
            ...
            {
                "language": "en",
                "name": "英文"
            }
        ]
    }
}


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月5日月曜日

移動ボタンの修正

2011年12月1日より、Kaede翻訳ツールをバージョン2に移行しましたが、
「移動」ボタン(旧表記move)をクリックしても
フレーム内に指定されたページを表示するための遷移を行わない
不具合を修正しました。

このところ、体調を崩して寝込んでいましたので、
更新が滞っていました。
もう少し続くかもしれません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年12月1日木曜日

翻訳ツールのversion 2について

既にご利用になった方はお気づきとは思いますが、
2011年12月1日をもってGoogle Translate API ver1が廃止されるのに伴い、
翻訳ツールに変更を行っています。

ページ下部のフレームに翻訳サイトをリンクすることで、
以前のJavaScriptによる翻訳サービスの呼び出しの代替としています。

また、翻訳サイトを表示するフレームの下に、
翻訳サイトの切り替えを行うドロップダウンリストがありますが、
これを選択することで、別の翻訳サイトを利用して翻訳を行うことができます。

その右側には、テキストエリアを扱うダイアログの呼び出しボタンを2つ作成しました。
以前のインターフェイスでは、1つしかダイアログがありませんでしたので、
翻訳したいテキストと、翻訳後のテキストを
別々にメモしておくことができませんでしたが、
ダイアログを2つにしたことで、翻訳元と翻訳後を別のテキストエリアに
表示しておくことができます。
これにより、フレームに表示できないページの翻訳を行う場合でも、
テキストをコピーしてくることで翻訳を行いやすくなることと思います。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月27日日曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その4

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちら、第2回はこちら、第3回はこちらです。

Language reference - 言語の一覧
以下の表に挙げられている言語間の翻訳がサポートされています:
言語 言語コード
アフリカーンス語 af
アルバニア語 sq
アラビア語 ar
ベラルーシ語 be
ブルガリア語 bg
カタロニア語 ca
簡体中国語 zh-CN
繁体中国語 zh-TW
クロアチア語 hr
チェコ語 cs
デンマーク語 da
オランダ語 nl
英語 en
エストニア語 et
フィリピン語 tl
フィンランド語 fi
フランス語 fr
ガリシア語 gl
ドイツ語 de
ギリシャ語 el
ヘブライ語 iw
ヒンディ語 hi
ハンガリー語 hu
アイスランド語 is
インドネシア語 id
アイルランド語 ga
イタリア語 it
日本語 ja
朝鮮語 ko
ラトビア語 lv
リトアニア語 lt
マケドニア語 mk
マレー語 ms
マルタ語 mt
ノルウェー語 no
ペルシャ語 fa
ポーランド語 pl
ポルトガル語 pt
ルーマニア語 ro
ロシア語 ru
セルビア語 sr
スロバキア語 sk
スロベニア語 sl
スペイン語 es
スワヒリ語 sw
スウェーデン語 wv
タイ語 th
トルコ語 tr
ウクライナ語 uk
ベトナム語 vi
ウェールズ語 cy
ヨルバ語 yi

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月25日金曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その3

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちら、第2回はこちらです。

Query parameter reference - クエリパラメータのリファレンス
Translate APIで使用できるクエリパラメータは、以下の表に要約されています。全てのパラメータ値はURLエンコードされる必要があります。

Parameter パラメータMeaning 意味Notes 注釈
callback レスポンスを受け取った後に実行されるJavaScript関数
・このオプションのパラメータにより、純粋なクライアントサイドの実装でクエリの結果を扱うJavaScript関数を指定することが可能になります。
・<script>タグ内にAPIクエリを組み込みます。
・<script>タグ内にコールバック関数を指定します。
・Getting StartedドキュメントのREST from JavaScriptの例を参照してください。
format フォーマット
・このオプションのパラメータは、翻訳元のテキストがプレーンテキストとHTMLのどちらなのかを識別する値となります。htmlを値とすればHTMLを表し、textを値とすればプレーンテキストを表します。
・デフォルトの値:format=text
key あなたのAPI key
・このAPIは、全てのリクエストについて、有効なキーを必要とします。
Google APIs consoleからキーを取得してください。
prettyprintインデントや改行を入れてレスポンスを返します。
・prettyprint=trueの場合、サーバーからの結果は人間に読みやすい形で返されます(pretty printed)。
・デフォルト値:prettyprint=false
q 翻訳元のテキスト
・翻訳されるテキストです。
・このパラメータは、単一のリクエスト内に1回以上繰り返しができ、複数のテキストを翻訳することができます。
source 翻訳元言語
・翻訳元テキストの言語を表します。Language reference内に挙げられている言語コードの中の一つである必要があります。
・言語が特定されていない場合、システムは翻訳元言語の自動判定を試みます。
target 翻訳先言語
・元となるテキストの翻訳先となる言語を表します。Language reference内に挙げられている言語コードの中の一つである必要があります。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月22日火曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用 その2

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

Developer's Guide (v2) Using REST
を翻訳してみます。

第1回はこちらです。

Identifying your application to Google - Googleへのアプリケーションの識別情報の送信
アプリケーションはGoogle Translate APIにリクエストを送る度ごと全てにおいて、リクエストにAPI Keyを含めることで、自己を確認する情報を送信する必要があります。

Acquiring and using an API key - API keyの取得と使用
API keyを取得するには、APIs Consoleにアクセスします。Serviceパネルの中の、Google Translate APIをアクティブ化します;Terms of Service(サービスの条件)が現れますので、読んだ上で承認してください。
次に、API Accessパネルに移ります。API keyがパネルの一番下の辺りの「Simple API Access」というセクションの中にあるはずです。
API keyを取得した後は、アプリケーション内で全てのリクエストのURLに「key=取得したAPI key」をクエリパラメータに追加します。
API keyは安全にURLに組み込むことができます;それ以外のコーディングは必要ありません。

Translate Text - テキストの翻訳
Working with results - 結果の取得
指定のURIに向けたHTTP GETリクエストを送ることで、テキストをある言語から他の言語へ翻訳することができます。リクエストのURIは以下の形式となります。
https://www.googleapis.com/language/translate/v2?parameters
それぞれの翻訳のリクエストには3つのパラメータが必要です。
・API key - keyクエリパラメータをアプリケーションの識別に使います。
・翻訳先言語 - targetクエリパラメータを、翻訳したい言語を指定するために使います。
・翻訳元テキスト文字列 - qクエリパラメータを、翻訳する文字列を指定するために使います。
全てのクエリパラメータは任意です。GETメソッドのURLは、パラメータを含め、2K文字未満でなければなりません。
Note:単一のリクエストでより多くのデータを送信したい場合、APIを呼び出すためにPOSTメソッドを使用することもできます。POSTメソッドのbody内の「q」パラメータは、5K文字未満出なければなりません。POSTメソッドを使用するには、X-HTTP-Method-Overrideヘッダを使って、リクエストをGETメソッドとして扱い(X-HTTP-Method-Override: GETを使用)、Translate APIに送信しなければなりません。
以下のコードは、翻訳元言語を指定する例で、sourceクエリパラメータを使用しています:
GET https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world
リクエストが成功すると、サーバーは200 OKのHTTPステータスコードとデータプロパティを返します。
JSON
200 OK

{
    "data": {
        "translations": [
            {
                "translatedText": "Hallo Welt"
            }
        ]
    }
}
以下のサンプルは、複数の翻訳元テキストを翻訳するために送信します:
GET https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&q=Hello%20world&q=My%20name%20is%20Jeff
リクエストが成功すると、サーバーは200 OKのHTTPステータスコードとデータプロパティを返します。
JSON
200 OK

{
    "data": {
        "translations": [
            {
                "translatedText": "Hallo Welt"
            },
            {
                "translatedText": "Mein Name ist Jeff"
            }
        ]
    }
}
以下のサンプルは、翻訳元言語を自動判別します:
GET https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&target=de&q=Hello%20world
リクエストが成功すると、サーバーは200 OKのHTTPステータスコードとデータプロパティを返します。
JSON
200 OK

{
    "data": {
        "translations": [
            {
                "translatedText": "Hallo Welt",
                "detectedSourceLanguage": "en"
            }
        ]
    }
}

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月19日土曜日

Google Translate API の有料版 - 開発者ガイド RESTの使用

Google Translate APIは有料化され、
v1のJavaScriptによるアクセスはできなくなります。

有料版はAPIが変更され、
RESTによるアクセスを必要とします。

Googleのドキュメントでは、RESTによるアクセスを
HTTP GETメソッドによるものと、JavaScriptによるものを説明しています。

前回まで(その1その2)の2回に渡って、導入編を翻訳してきましたが、
より詳しい解説となる
Developer's Guide (v2) Using REST
を翻訳してみます。

Developer's Guide (v2): Using REST - 開発者ガイド(v2):RESTの使用

重要事項:Google Translate API v2は、現在有料サービスとして利用可能です。2011年8月24日以前に作成された既存のTranslate API v2プロジェクトに対する制限の優遇は、2011年12月1日にゼロに減らされます。それに加えて、アプリケーションが1日あたりに利用できるリクエストの数も制限されます。ウェブサイトの翻訳には、Google Website Translatorガジェットの使用をお勧めします。

このドキュメントは、RESTfulな呼び出し方法を使うGoogle Translate API v2の共通機能の利用方法を記述しています。


Contents - 内容

Introduction - はじめに
Identifying your application to Google - Googleへのアプリケーションの識別情報の送信
Translate Text - テキストの翻訳
Working with results - 結果の取得
Query parameter reference - クエリパラメータの参照
Language reference - 言語の参照
Discover Supported Languages - サポートされる言語の取得
Working with results - 結果の取得
Query parameter reference - クエリパラメータの参照
Detect Language - 言語の判別
Working with results - 結果の取得
Query parameter reference - クエリパラメータの参照


Introduction - はじめに
このドキュメントは、Google Translate APIと対話的に動作するアプリケーションを作成しようとする開発者向けです。Google Translateを利用して、ウェブページやアプリケーション内のテキストをプログラムから翻訳することができます。
Google Translateのコンセプトに慣れていない場合は、コードを書き始める前にGetting Startedをお読み下さい。
Translate APIへのリクエストの結果は、シンプルなJSONオブジェクトとして返されます。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月18日金曜日

Google Translate APIの有料化(開発者ガイド) その2

Google Translate APIが有料化され、v1は停止されます。

そこで、有料で利用可能なv2の使い方について、
ドキュメントを翻訳してみます。

翻訳元はこちら
その1はこちらです。

Calling styles - 呼び出し方
APIを呼び出すには、複数の方法があります:
・RESTを直接使用する
・JavaScriptからRESTを使う(サーバーサイドのコードは必要ありません)

REST
REST(Representational State Transfer)は、Google Translate APIの中では、伝統的なRESTとは多少異なります。リソースへのアクセスを提供する代わりに、APIはサービスへのアクセスを提供します。結果として、APIはサービスのエンドポイントとして働く単一のURIを提供します。
API操作に記述された方法で、Google Translate APIサービスのエンドポイントにRESTのHTTPメソッドのGETを使ってアクセスを行います。全てのサービスへのリクエストの内容は、クエリパラメータとして渡します。

Translate - 翻訳
単一のGoogle Translate APIのURIへアクセスする指定された形式は以下の通りです:
https://www.googleapis.com/language/translate/v2?parameters
parametersの部分は、クエリに適用されるパラメータです。詳細については、Using RESTドキュメントのWorking with resultsQuery parameter referenceを御一読下さい。
ここに示すのは、Translate APIがどのように機能するかを示す一例です。
https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&q=hello%20world&source=en&target=de

Discover supported languages - サポートされる言語を見つける
言語コードのリストを返す指定の形式は:
https://www.googleapis.com/language/translate/v2/languages?parameters
parametersの部分は、クエリに適用されるパラメータです。詳細については、Using RESTドキュメントのWorking with resultsQuery parameter referenceを御一読下さい。
Translate APIで言語メソッドを機能させる方法の例を示します:
https://www.googleapis.com/language/translate/v2/languages?key=INSERT-YOUR-KEY&target=zh-TW
Detect source language - 翻訳元言語の判別
テキストの言語を判別する指定の形式は以下の通りです:
https://www.googleapis.com/language/translate/v2/detect?parameters
parametersの部分は、クエリに適用されるパラメータです。詳細については、Using RESTドキュメントのWorking with resultsQuery parameter referenceを御一読下さい。
Translate APIで判別のメソッドを動作させる方法の一例を示します。
https://www.googleapis.com/language/translate/v2/detect?key=INSERT-YOUR-KEY&q=google+translate+is+fast

REST from JavaScript - RESTのJavaScriptからの利用
Translate APIを、コールバックされたクエリパラメータとコールバック関数を利用して、JavaScriptからRESTを使って呼び出すことができます。これによってサーバーサイドのコードを記述することなく翻訳されたデータを表示するリッチなアプリケーションを記述することができます。
以下のサンプルでは、この方法を使ってテキストを翻訳し、source textの下に表示します:
<title>Translate API Example</title>

<div id="sourceText">
Hello world
</div>
<div id="translation">
</div>
<script>
      function translateText(response) {
        document.getElementById("translation").innerHTML += ""
+ response.data.translations[0].translatedText;
      }
</script>
<script>
      var newScript = document.createElement('script');
      newScript.type = 'text/javascript';
      var sourceText = escape(document.getElementById("sourceText").innerHTML);
      var source = 'https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&source=en&target=de&callback=translateText&q=' + sourceText;
      newScript.src = source;

      // When we add this script to the head, the request is sent off.
      document.getElementsByTagName('head')[0].appendChild(newScript);
</script>


Data format

JSON
JSON(JavaScript Object Notation)は、任意のデータ構造を表すシンプルなメソッドを提供する共通のインターネット上のフォーマットです。json.orgによると、JSONは完全に言語に依存したテキストフォーマットですが、C、C++、C#、Java、JavaScript、Perl、Pythonその他のC言語系統の言語のプログラマーには慣れ親しんだ規則を使用しています。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月14日月曜日

Google Translate APIの有料化(開発者ガイド)

Google Translate APIが有料化され、v1は停止されます。

そこで、有料で利用可能なv2の使い方について、
ドキュメントを翻訳してみます。

翻訳元はこちら

Developer's Guide (v2): Getting Started - 開発者ガイド(v2):はじめに

重要事項:Google Translate API v2は、現在有料サービスとして利用可能です。2011年8月24日以前に作成された既存のTranslate API v2プロジェクトに対する制限の優遇は、2011年12月1日にゼロに減らされます。それに加えて、アプリケーションが1日あたりに利用できるリクエストの数も制限されます。ウェブサイトの翻訳には、Google Website Translatorガジェットの使用をお勧めします。

このドキュメントは、Google Translate API v2を利用するために必要な背景知識の詳細です。


Contents - 内容
Introduction - はじめに
Learn about identifying your application - アプリケーションの識別についての学習
Translate API background - Translate APIの背景
Translate concepts - 翻訳のコンセプト
Translate API operations - Translate APIの操作
Calling style - 呼び出し方
REST - REST呼び出し
Data format - データのフォーマット
JSON - JSON


Introduction - はじめに
このドキュメントはGoogle Translate APIと相互作用できるアプリケーションを記述したい開発者を想定しています。Google Translateは、ある言語から別の言語(例:フランス語から英語)へと文書を自動で翻訳するツールです。Google Translate APIをウェブサイトやアプリケーション内のテキストをプログラムを使って翻訳することができます。
このAPIを使用するにはGoogleアカウントが必要です。既にGoogleアカウントを所持している場合、Google APIs consoleで新しいプロジェクトをセットアップして、APIキーを取得してください。

Learn about identifying your application - アプリケーションの識別についての学習
アプリケーションがGoogle Translate APIに送る全てのリクエストは、APIキーを使って、Googleに対してアプリケーションの識別を行わなければなりません。
APIキーの使用方法についての情報は、Using RESTのドキュメント内のIdentifying your application to Googleを参照してください。

Translate API background - Translate APIの背景
Translate concepts - 翻訳のコンセプト
Google Translateは、テキストをある言語から他の言語へ自動で翻訳するツールです。
source textは、翻訳されるテキストです。source languageは、source textの記述されている言語です。target languageは、source textが翻訳される目的の言語です。

Translate API operations - Translate APIの操作
Google Translate APIを呼び出す3つのメソッドは、以下の通りです:
Operation 操作 Description 説明 REST HTTP mapping
REST HTTPでのマッピング
translate source textをsource languageからtarget languageに翻訳する GET
languages 翻訳メソッドにサポートされている翻訳元・翻訳先言語の一覧 GET
detect source textの言語を判別する GET


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月13日日曜日

Google Translate APIの有料版(料金について)

11月に入ってから、Google Translate APIの有料版についての記事への
アクセスが増えています。

12月1日からは有料化され、v1は利用できなくなるわけで、
関心が増えるのは当然です。

Googleのドキュメントでも、あまり詳しく触れてるわけではないし、
日本語版のドキュメントは提供されていません。

そこで、このブログでも少し翻訳してみることにします。
(そのため、Google Cloud SQLについてはお休みです)

とりあえず、料金についてのページです。
翻訳元はこちら

Pricing and Terms of Service - 価格とサービスの規約

Pricing - 価格
Google Translate API v2の価格は、利用料に基づいています。翻訳の利用は1Mを10の6乗とする百万(M)文字単位で計算されます。

重要事項:Google Translate API v2は、全てのアカウントに対して、サービスの利用を始める前に課金情報を必要とします。課金のサインアップを行うには、Google APIs consoleにサインインして、Billingタブをクリックしてください。

使用料:
・翻訳:
テキストの1M文字あたり:$20.00
使用制限:
・月当たり50M文字以上の翻訳を必要とする場合は、私達にご連絡下さい
・Google Translate API v2は、デフォルトでは1日あたり2M文字に制限されています。この制限はGoogle APIs ConsoleのQuotasパネルで設定を行うことができます。
Google APIs Console上のBillingパネルでGoogle Translate API v2の課金管理を行うことができます。


Terms of Service - サービスの規約

あなたは、Google Translate APIの使用はTranslate APIのterms of serviceに準拠し、Translate APIサービス規約への同意無しの利用はできないことを認めるものとします。Googleは、私達のサービスの可用性が脅かされるような過度の使用を調整する権利を保有します。


100万文字あたり$20.00、月当たり5000万文字以上の翻訳には問い合わせが必要、
デフォルトで1日200万文字まで、
Google APIs consoleから課金の設定をする、ということですね。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月11日金曜日

Google Cloud SQLのドキュメント - Overview 概要

Google Cloud SQLのドキュメントの翻訳、
今回はOverview(概要)です。

翻訳元はこちらです。

Overview - 概要
このドキュメントは、Google Cloud SQLを紹介して、基本的な情報を提供し、Google Cloud SQLの利用を開始する手助けをします。

Contents - 目次
Introduction - はじめに
Features and Capabilities - 機能と特徴
Support and Feedback - サポートおよびフィードバック
Steps to Get Started - 開始までのステップ

Introduction - はじめに
Google Cloud SQLは、高い可用性をもち、自己管理され、ホストされたSQLストレージソリューションを提供するウェブサービスです。Google Cloud SQLは、ソフトウェアのインストールやメンテナンスを要求することなく簡単に使用できて、小さいものから中規模サイズのアプリケーションに最適です。
現時点では、Google Cloud SQLはJavaまたはPythonで書かれたGoogle App Engineアプリケーション向けに利用可能です。

Features and Capabilities - 機能と特徴
Google Cloud SQLは、インスタンスを簡単・効率的に生成・管理できる多くの機能を提供します。いくつかの重要な機能は次のとおりです:
・クラウド内でMySQLデータベースをホストできる
・10GB以上のインスタンス
・同期した地理的データ複製
・mysqldumpを使用したデータベースのインポート・エクスポート
・JavaとPythonに対する互換性
・コマンドラインツール
・Google APIs Console内のSQLプロンプト


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月7日月曜日

Google Cloud SQLのドキュメントの翻訳

Google Cloud SQLのドキュメントを翻訳してみます。

翻訳元はこちらから。


What is Google Cloud SQL? - Google Cloud SQLとは?

Google Cloud SQLは、あなたのGoogle App Engineアプリケーションでリレーショナルデータベースの生成、設定、使用を可能にするウェブサービスです。データベースのメンテナンス、マネージメント、アドミニストレーションの完全マネージドサービスで、アプリケーションとサービスに集中することを可能にします。
MySQLデータベースの機能を提供することで、サービスはクラウド外のデータ、アプリケーション、サービスを簡単に移すことを可能にします。これにより、高いデータ可搬性を提供し、あなたのApp Engineアプリケーションで既存のデータベースを(JDBCおよび/またはDB-APIを使って)素早く活用できるので、マーケットに素早く追随することをお助けします。
クリティカルなアプリケーションやサービスが常に動作することを確実にするために、Google Cloud SQLは高いデータ可用性を提供できるように、データを地理的に複数の場所にデータを複製します。
サービスは現時点では限定プレビューとなっています。まもなく価格を公開する予定です。

Highlights - ハイライト
・使いやすさ
リッチなグラフィカルユーザーインターフェイスで、クリックだけでデータベースインスタンスの生成、設定、管理、モニタリングを行えます。
・完全な管理
複製、パッチ管理、その他のデータベース管理の仕事のようなタスクの心配は必要ありません。これらの全てのタスクは、あなたの代わりに面倒を見ます。
・高い可用性
今日のアプリケーションとサービスの重要な可用性のニーズを満たすために、複数の地理的な場所に跨る複製のような機能が構築されていて、どこかのデータセンターが利用不可能となった場合でもサービスは利用可能です。
・Google App Engineやその他のGoogleのサービスとの統合
Google App Engineやその他のGoogleのサービスとの密接な統合により、複数の製品を跨って動作させることを簡単にしていますし、データからより多くの価値を引き出し、、クラウドとのデータの出し入れを行い、よりよいパフォーマンスを達成します。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月6日日曜日

Google Cloud SQLのドキュメント

前回まで、クラウド環境にデータを保存する
Google Cloud Storageのドキュメントを翻訳していましたが、
次回からは、しばらくそこから離れて
Google Cloud SQLについて、
翻訳していきます。

Google Cloud SQLは、Google App Engineから接続できる
SQLを利用するデータベースのインスタンスを提供します。

Google App Engineでは、以前からデータをストアする方法として
Datastoreが用意されています。
しかし、Datastoreは独自のAPIを利用しているために
既に存在するリソースを利用することはできず、
また、GAEで作成したアプリケーションを他で再利用することもできません。

更に、データストア自体に変更もありました。
このブログでもドキュメントの翻訳を行いましたが、
マスター/スレーブデータストアから
Highレプリケーションデータストアへと移行したため、
データストアから取得した結果が最新のものであることを
保障できなくなりました。
耐障害性は上がりますが、最新の更新を反映するために
新しい工夫が必要となります。

次回から翻訳を行うGoogle Cloud SQLは、
SQLを使用するリレーショナルデータベースですので、
既存のデータベースのデータを利用することができます。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年11月4日金曜日

Google Cloud Storageのイントロダクション(その5)

クラウド環境で利用できるストレージである
Google Cloud Storageのイントロダクションドキュメントを翻訳してみます。

翻訳元はこちらです。
第1回はこちら。第2回はこちら。第3回はこちら。第4回はこちら

Steps to Get Started - 準備のためのステップ

Google Cloud Storageを始めて利用する場合は、Google Cloud Storageをアクティブにして、Hello Google Cloud Storage!の最初の演習を参照してください。
すでにプロジェクトメンバーとしてプロジェクトを作成している場合は、Google Cloud Storageユーザーとして既にアクティベートされているので、Hello Google Cloud Storage!の演習にまっすぐ進んでください。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月31日月曜日

Google Cloud Storageのイントロダクション(その4)

クラウド環境で利用できるストレージである
Google Cloud Storageのイントロダクションドキュメントを翻訳してみます。

翻訳元はこちらです。
第1回はこちら。第2回はこちら。第3回はこちら

Discussion Groups - ディスカッショングループ

多くのコミュニティリソースがGoogle Cloud Storage向けに利用可能となっていて、私たちはこれらをあなた方と共有できることを喜ばしく思います。私たちはあなたがこれらのチャンネルに参加して知識や経験をGoogle Cloud Storageコミュニティに還元してくださることを望んでいます。

General discussions 一般的な話題についてのディスカッション
このディスカッショングループは技術的な問題に対する答えを発見し、あなたがより大きいGoogle Cloud Storage開発者コミュニティに新しいヒントとテクニックを提供する手助けとなるでしょう。
    ・グループへ参加する: gs-discussion
    ・メールでの申し込み:gs-discussion+subscribe@googlegroups.com

GSUtil discussion GSUtilディスカッション
このディスカッショングループは、Google Cloud Storage上のデータを管理するためのオープンソースのコマンドラインツールであるGSUtilに焦点を置いています。このフォーラムを通じてGSUtilについてのヒントとテクニックの共有を奨励しています。
    ・グループに参加する:gsutil-discuss
    ・メールでの申し込み:gsutil-discuss+subscribe@googlegroups.com

Announcements お知らせ
こちらの「通知専用」リストに登録すると、システムの停止、メンテナンス期間、その他のサービスの中断についての更新情報を受け取ることができます。新しい機能や、機能のアップデートについてもこちらのリストを通じてお知らせします。
    ・グループに参加する:gs-announce
    ・メールでの申し込み:gs-announce+subscribe@googlegroups.com

ディスカッショングループに投稿を送信する前に、以下をお試しください。
FAQをお読み下さい。頻繁に寄せられるGoogle Cloud Storageに関する質問はこのドキュメントに掲載されています。
・このページの上部にある検索エリアに一つ以上の検索語を入力してください。Google Codeのドキュメントの中から、またはブログ記事の中から関連する結果が返されます。
・グループのアーカイブの中から質問が既に投稿されていないかどうか探してみてください。
私たちは、ディスカッションフォーラムであなたをお待ちしております。

  インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月29日土曜日

Google Cloud Storageのイントロダクション(その3)

クラウド環境で利用できるストレージである
Google Cloud Storageのイントロダクションドキュメントを翻訳してみます。

翻訳元はこちらです。
第1回はこちら。第2回はこちら

Features & Capabilities - 特徴と機能

Google Cloud Storageは、データの保存、共有、効率的で信頼性の高い管理を可能にする幾つかの特徴と機能を提供します。キーとなる機能と特徴は、以下を含みます。

・大容量とスケーラビリティ
・強力なデータ一貫性
・OAuth 2.0による認証
・Cookieベースの認証されたブラウザからのダウンロード
・Google APIs Console プロジェクト
・共有のためのGoogleアカウントサポート
・REST API
・バケットロケーション

これらの特長および機能は、次の各項で説明します。

High Capacity and Scalability - 大容量とスケーラビリティ

Google Cloud Storageは、数テラバイトに及ぶサイズとなるオブジェクトをサポートします。Google Cloud Storageはアカウントごとに多数のバケットもサポートしています。

Strong Data Consistency 強いデータ一貫性

Google Cloud Storageは書き込み後読み取りの強力な一貫性を全てのアップロードと削除操作において提供します。言い換えると、オブジェクトのアップロードが成功すると、直ちにダウンロードしたり、削除したり、メタデータを取得したりすることができます。同様に、削除成功後直ちにオブジェクトへのアクセスを試みると、404 Not Foundステータスコードが結果として返されます。リストの操作は、インターネット上のどこからでも最終的に一貫しています。

可用性の観点からは、Google Cloud Storageへのアップロード操作はアトミックに行われます。オブジェクトをアップロードすると、そのオブジェクトはアップロードが完了するまでは利用不可となります。アップロードされたオブジェクトは破損状態や一部のみの状態になることはありません。オブジェクトは利用可能か利用不可のどちらかの状態になります。

より詳しくは、API overviewのConsistencyを参照してください。

OAuth 2.0 Authentication - OAuth 2.0認証

Google Cloud StorageはOAuth 2.0認証を使用し、APIと対話するための許可を行います。OAuth 2.0認証は、アプリケーションがあなたに代わって行動するために発行されたトークンに基づいた認証です。あなたのアプリケーションのためのOAuth 2.0認証をセットアップするには、OAuth 2.0 authentication and authorizationガイドを参照して、OAuth 2.0 authenticationのGoogle Cloud Storageへの適用を参照してください。

Authenticated Browser Downloads - 認証済みのブラウザによるダウンロード

Google Cloud Storageは、Googleアカウント所持者それぞれに対してブラウザベースで認証されたダウンロードを提供します。認証済みブラウザベースダウンロードは、最初にGoogle アカウントベースのアクセスレベルをオブジェクトに設定して、ユーザーにオブジェクトに合わせたスコープのURLを渡すことで提供できます。認証済みブラウザダウンロードのためのURLは、

https://sandbox.google.com/storage/bucket/object

詳しくは、AuthenticationのCookie-based Authenticationを参照してください。

Google APIs Console Projects - Google APIコンソールプロジェクト

Google Cloud Storageは、Google APIs コンソール内でサービスとして利用が可能で、プロジェクトメンバーの追加、課金設定、認証の管理、他のAPIとの連携が行えます。多くのプロジェクトを持つことが可能で、それぞれのプロジェクトにGoogle Cloud Storageインスタンスを持つことができます。


Google Account Support for Sharing - Googleアカウントによる共有サポート

Google Cloud StorageはACLをオブジェクトやバケットへのアクセスコントロールに使用します。ACLの設定によってオブジェクトやバケットを全世界またはGoogleグループ、Googleがホストするドメイン、特定のGoogleアカウント保持者で共有することができます。詳しくはGoogle Cloud Storageアクセスコントロールモデルの項、Access Controlを参照してください。

REST API

Google Cloud StorageはシンプルなRESTfulプログラミングインターフェイスを提供していますので、Google Cloud Storageにおけるデータの保存・共有・管理のために複雑なSOAPツールキットやRPCプログラミングに頼る必要はありません。その代わりに、PUT,GET,POST,HEAD,DELETEのような標準的なHTTPメソッドを使うことができます。

Bucket Locations - バケットのロケーション

Google Cloud Storageはバケットが地理上のどの場所に保存されているか特定する機能を提供します。バケットがヨーロッパかアメリカ国内のどちらに保存されているか特定することが可能です。詳しくはSpecifying Bucket Locationを参照してください。


 インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月28日金曜日

Google Cloud Storageのイントロダクション(その2)

クラウド環境で利用できるストレージである
Google Cloud Storageのイントロダクションドキュメントを翻訳してみます。

翻訳元はこちらです。
第1回はこちら


Google APIs Console - Google APIs コンソール

Google APIs Consoleは、多くのGoogle APIsの管理とアクティブ化、課金のような関係するセッティング、アクティブ化と非アクティブ化、認証、カスタムAPI機能の使用を行うグラフィカルインターフェイスです。

Google APIs Consoleはプロジェクトとアクティブ化されたそれぞれのGoogle APIやプロジェクトに沿ったサービスで攻勢されています。プロジェクトは一つ以上のアクティブなAPIを含むことができます。Google APIsをアクティブにしたり、課金設定を行ったり、その他の管理タスクを実行したりするには、プロジェクトをベースに行ってください。

例として、api_projectという名前の複数のアクティブなAPIを含むプロジェクトがあるとします。api_projectに対して課金を有効にすると、プロジェクト内の全てのAPIに対して課金が有効になります。同様に、api_projectにチームメンバーを追加すると、プロジェクト内の全てのAPIに(メンバーは)アクセスできるようになりますが、アクセスレベルはそれぞれのAPIごとに定義することができます。

詳しくは、Google APIs Consoleヘルプガイドを参照してください。

 インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月24日月曜日

Google Cloud Storageのイントロダクション

クラウド環境で利用できるストレージである
Google Cloud Storageのイントロダクションドキュメントを翻訳してみます。

翻訳元はこちらです。

Introduction (イントロダクション)

Google Cloud Storageは、Googleのクラウドにデータを保存・アクセスするための開発者向けの新しいサービスです。開発者にはGoogleのスケーラブルなストレージとネットワークインフラストラクチャだけでなく、強力な認証とデータ共有メカニズムに直接アクセスを可能とします。開発者は任意のサイズのオブジェクトを保存することが可能で、Google Cloud Storageの使用を基盤として、個人、グループ単位でデータへのアクセスを管理できます。

Google Cloud StorageはREST APIまたは以下を含む利用可能なGoogle Cloud Storage toolsを通してアクセス可能です。
Google Storage Manager - バケットやオブジェクトを管理する、ドラッグアンドドロップ機能を含むグラフィカルユーザーインターフェイス
GSUtil - Google Cloud Storageに対する基本および高度なタスクを取り扱うコマンドラインツール

Google Cloud Storageは、Google APIs consoleを通して起動できます。Google APIs consoleを利用したことがない場合、Google APIs consoleヘルプガイドを参照してください。

Contents 目次

Google APIs Console - Google APIs コンソール
Features & Capabilities 特徴と機能
Discussion Group ディスカッショングループ
Steps to Get Started 開始までのステップ

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月22日土曜日

Google Cloud Storage

前回まで、Google Cloud SQLについてのブログ記事を翻訳してみましたが、
それとは別にクラウド上にオブジェクトを保存する
「Google Cloud Storage」というサービスがあります。

そのGoogle Cloud Storageはどのように使うのでしょう?
ドキュメントを読んでみます。


Google Cloud Storege (Googleクラウドストレージ)

Google Cloud Storageは、Googleのインフラストラクチャにデータを保存・アクセスするためのRESTfulなサービスです。このサービスはGoogleクラウドのパフォーマンスとスケーラビリティを高度なセキュリティおよび共有機能と組み合わせます。ハイライトとして以下を含みます:

速く、スケーラブルで、高い可用性を持つオブジェクト保存
・全てのデータは複数のデータセンターに複製されます。
・データの読み書きの一貫性
・数テラバイトに及ぶサイズのオブジェクトを利用可能で、アップロードおよびダウンロードのレジューム(中途再開)が行え、範囲を指定したGETが可能
・ドメインをスコープとしたネームスペース

簡単で、柔軟性に富んだ認証と共有
・OAuth 2.0による認証
・ウェブブラウザからの認証されたダウンロード
・個人、プロジェクト、グループの、それぞれのレベルでのアクセスコントロール

それに加えて、Google Cloud Storageはウェブベースのストレージ管理インターフェイスオープンソースのコマンドラインツールとライブラリ中途再開可能なアップロードのような高度な機能、App Engineとの統合国際化対応のストレージ機能などを提供します。従量制課金により、簡単に開始して、ニーズの増大に合わせて拡大することができます。

Google Cloud StorageはGoogle API Console上で開始することができます。更に詳しいことについては、イントロダクションをお読み下さい。

 最初のさわりだけなので、詳しいことについては今後翻訳を試みます。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月17日月曜日

Google Cloud SQLのリリースについてのブログ記事へのリンク

前回まで、
Google Cloud SQLのリリースについてのGoogle Code blogの記事を
翻訳してみましたが、
元記事へのリンクが無効(Bad Request)になっていました。

訂正を行うと共に、リンクアドレスを記載します。
元記事:
http://googlecode.blogspot.com/2011/10/google-cloud-storage-is-out-of-code.html

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月15日土曜日

Google Cloud SQLプレビューお知らせのブログ(その3)

前々回の投稿から、
Google Cloud SQLプレビューについてのブログ記事の翻訳を試みています。

元記事はこちら。(10月17日、リンク先アドレスを訂正しました)
第1回はこちら。第2回はここ

このサービスはデータベースのインポートとエクスポート機能を含み、既存のMySQLデータベースをクラウドに移管してApp Engineと共に利用できます。
Cloud SQLは現在無料でご利用いただけますが、課金については開始の少なくとも30日前には発表します。このサービスはプレビュー期間中にも私達が思いつくままに働いて進化させ続けますが、分からないことがあればお知らせ下さい

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月13日木曜日

Google Cloud SQLプレビューお知らせのブログ(その2)

前回の投稿から、
Google Cloud SQLプレビューについてのブログ記事の翻訳を試みています。

元記事はこちら。(10月17日、リンク先アドレスを訂正しました)
第1回はこちら

・メンテナンスや管理は不要 - 私達がデータベースを管理します。
・高い信頼性と可用性 - データは複数のデータセンターに同期的に複製されます。マシンやラック、データセンターの障害はエンドユーザーへの影響を最小限にするよう自動的に処理されます。
・お馴染みのMySQLデータベース環境をJDBCによるサポート(JavaベースのApp Engineアプリケーション向け)、DB-APIによるサポート(PythonベースのApp Engineアプリケーション向け)
・データベース管理用の総合ユーザーインターフェイス
・シンプルで強力なGoogle App Engineとの統合

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月10日月曜日

Google Cloud SQLプレビューお知らせのブログ

前回の投稿で、
Google Cloud SQLプレビューについてのブログ記事へのリンクを
掲載しましたが、
今回からその翻訳を試みます。

元記事はこちら。(10月17日、リンク先アドレスを訂正しました)


Google Cloud SQL:Your database in the cloud
(Google Cloud SQL:あなたのデータベースをクラウドで)

App Engineで最も要望の多い機能の一つとして、伝統的なデータベース駆動アプリケーション開発のシンプルな方法が挙げられます。フィードバックへの回答として、私たちはGoogle Cloud SQLの限定プレビュー(limited preview)をお知らせすることができることを喜んでいます。App Engineアプリケーションに、完全にクラウド環境で管理される慣れ親しんだリレーショナルデータベースを利用することを選択できます。これはアプリケーションやサービスの開発に集中して、管理の雑用や保守、リレーショナルデータベースの保守の仕事から解放されることを可能にします。Google Cloud SQLはApp Engine コミュニティーに多くのメリットをもたらします。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月7日金曜日

Google Cloud SQLがプレビューに

Google App Engineでデータを保存・取り出しを行うには、
Datastoreを利用する必要があります。

APIとしては、
・JPA
・JDO
・低レベルAPI
を利用します。

JPAやJDOを利用すると、App Engineのインスタンスがスピンアップするたびに
長い待ち時間が発生するという欠点があり、
低レベルAPIは既存のSQLとは全く違います。

そこで、新たにGoogle Cloud SQLというAPIが登場して、
JDBC(Java向け)、DB-API(Python向け)によってアクセスできる
データベースのインターフェイスを提供するようです。

Google Codeブログでの紹介はこちら

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月3日月曜日

Google App Engine for Java の非同期データストアAPIの呼び出し(その6)

Google App Engineのデータストアは、
非同期に呼び出して結果を取得することも出来ます。

英語版ドキュメントはこちら
その1,その2,その3,その4,その5も参照してみてください。


When To Use Async Datastore Calls 非同期データストア呼び出しの使用タイミング

DatastoreServiceインターフェイスによって提示される操作は同期呼び出しをします。例えば、コードは、DatastoreService.get()を呼び出すした時にデータストアへのコールが完了するまでブロックします。アプリケーションが行う必要のある1つだけの動作がHTML内でget()の結果をレンダリングすることの場合、呼び出しが完了するまでブロックすることは完全に合理的なことです。
しかしながら、アプリケーションがget()の結果にプラスしてクエリの結果をレスポンスにレンダリングする場合、またはget()とクエリがデータ依存関係を持たない場合、get()が完了するまで待ってからクエリを開始するのは時間の無駄です。ここでは、非同期APIを用いて改善されたコードの例を示します。

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key empKey = KeyFactory.createKey("Employee", "Max");

// Read employee data from the Datastore
Entity employee = datastore.get(empKey); // Blocking for no good reason!

// Fetch payment history
Query query = new Query("PaymentHistory");
PreparedQuery pq = datastore.prepare(query);
List<Entity> result = pq.asList(FetchOptions.Builder.withLimit(10));
renderHtml(employee, result);

get()が完了するまで待つかわりに、非同期にメソッド呼び出しを実行するためにAsyncDatastoreServiceのインスタンスを使用します。

AsyncDatastoreService datastore = DatastoreServiceFactory.getAsyncDatastoreService();
Key empKey = KeyFactory.createKey("Employee", "Max");

// Read employee data from the Datastore
Future<Entity> employeeFuture = datastore.get(empKey); // Returns immediately!

// Fetch payment history for the employee
Query query = new Query("PaymentHistory", empKey);
PreparedQuery pq = datastore.prepare(query);

// Run the query while the employee is being fetched
List<Entity> result = pq.asList(FetchOptions.Builder.withLimit(10));
// Implicitly performs query asynchronously
Entity employee = employeeFuture.get(); // Blocking!
renderHtml(employee, result); 

このコードの同期バージョンと非同期バージョンは、同様な量のCPUを使用します(結局のところ、どちらも同じ計算量を示します)が、非同期バージョンは平行動作のために2つのデータストア操作を行うので、非同期バージョンの方が待ち時間がより少なくなります。一般的に、データ依存関係のない複数のデータストア操作を行う必要がある場合は、AsyncDatastoreServiceは大幅に待ち時間を改善します。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年10月2日日曜日

Google App Engine for Java の非同期データストアAPIの呼び出し(その5)

Google App Engineのデータストアは、
非同期に呼び出して結果を取得することも出来ます。

英語版ドキュメントはこちら
その1,その2,その3,その4も参照してみてください。



Async Queries (非同期クエリ)

現時点では、明示的にクエリ向けの非同期APIを提示してはいません。しかしながら、PreparedQuery.asIterable(),PreparedQuery.asIterator(),PreparedQuery.asList(FetchOptions fetchOptions)メソッドを呼び出すと、DatastoreServiceまたはAsyncDatastoreServiceのどちらも、直ちに値を返し、非同期に結果を先取りします。これによってアプリケーションの動作がクエリの結果が取得される間に平行して行われます。

// ...

Query q1 = new Query("Salesperson");
q1.addFilter("dateOfHire", FilterOperator.LESS_THAN, oneMonthAgo);

// Returns instantly, query is executing in the background.
Iterable recentHires = datastore.prepare(q1).asIterable();

Query q2 = new Query("Customer");
q2.addFilter("lastContact", FilterOperator.GREATER_THAN, oneYearAgo);

// Also returns instantly, query is executing in the background.
Iterable needsFollowup = datastore.prepare(q2).asIterable();

schedulePhoneCall(recentHires, needsFollowUp);



インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月30日金曜日

Google App Engine for Java の非同期データストアAPIの呼び出し(その4)

Google App Engineのデータストアは、
非同期に呼び出して結果を取得することも出来ます。

英語版ドキュメントはこちら
その1,その2,その3も参照してみてください。

Working with Futures (Futureの使用)

Future のJavadocは、非同期データストアAPIから返されたFutureを上手く使用する上で知る必要のあることのほとんどを説明していますが、App Engine固有の注意点があります。
Future.get(long timeout, TimeUnit unit)メソッドを呼び出した時に、timeoutはAsyncDatastoreServiceを生成した時点のRPCデッドラインのセットから切り離されています。詳しくは、datastore RPC deadlinesのドキュメントを参照してください。
Future.cancel(boolean mayInterruptIfRunning)メソッドを呼び出し、trueが返された場合、データストアの状態が変更されていないことを必ずしも意味するものではありません。言い換えると、Futureをキャンセルすることは、トランザクションをロールバックすることと同じではありません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月26日月曜日

Google App Engine for Java の非同期データストアAPIの呼び出し(その3)

Google App Engineのデータストアは、
非同期に呼び出して結果を取得することも出来ます。

英語版ドキュメントはこちら
その1はこちら,その2はこちら


Workind with Async Transactions 非同期トランザクションの使用

非同期データストアAPI呼び出しは、同期呼び出しと同じようにトランザクションに参加することができます。ここで挙げるのは、従業員の給料の額を調整し、Employeeと同じエンティティグループにSalaryAdjustmentエンティティを1つのトランザクション内で追加して書き込みます。

void giveRaise(AsyncDatastoreService datastore, Key employeeKey, long raiseAmount)
        throws Exception {
    Future txn = datastore.beginTransaction();

    // Async call to lookup the Employee entity
    Future employeeEntityFuture = datastore.get(employeeKey);

    // Create and put a SalaryAdjustment entity in parallel with the lookup
    Entity adjustmentEntity = new Entity("SalaryAdjustment", employeeKey);
    adjustmentEntity.setProperty("adjustment", raiseAmount);
    adjustmentEntity.setProperty("adjustmentDate", new Date());
    datastore.put(adjustmentEntity);

    // Fetch the result of our lookup to make the salary adjustment
    Entity employeeEntity = employeeEntityFuture.get();
    long salary = (Long) employeeEntity.getProperty("salary");
    employeeEntity.setProperty("salary", salary + raiseAmount);

    // Re-put the Employee entity with the adjusted salary.
    datastore.put(employeeEntity);
    txn.commit(); // could also call txn.commitAsync() here
}

このサンプルは、トランザクション無しの非同期呼び出しとトランザクション内での非同期呼び出しの違いを示しています。トランザクションを利用していない場合、独立した非同期呼び出しの官僚を確認する唯一の方法は、呼び出しが行われた時に戻されたFutureの値を取得するということになります。トランザクションを利用すると、Transaction.commit()の呼び出しが、トランザクション開始からコミットされる前までの全ての非同期呼び出しの結果をブロックします。

そのため、上記の例では、SalaryAdjustmentエンティティの挿入を行う非同期呼び出しがtxn.commit()を呼び出された時点では未解決の可能性があるにもかかわらず、挿入が完了するまでにコミットは起こりません。同様に、txn.commit()の代りにtxn.commitAsync()の呼び出しを選択すると、commitAsync()から返されたFutureのget()メソッド呼び出しが全ての未解決の非同期呼び出しが干渉するまでブロックします。

ノート:トランザクションは特定のスレッドに関連付けられますが、DatastoreServiceやAsyncDfatastoreServiceの特定のインスタンスには関連付けられません。これの意味するところは、あるDatastoreServiceからトランザクションを開始して、
あるAsyncDatastoreServiceから非同期呼び出しを行うと、非同期呼び出しはトランザクションに参加する、ということです。または、もっと簡潔に言えば、
DatastoreService.getCurrentTransaction()とAsyncDatastoreService.getCurrentTransaction()は常に同じトランザクションを返すということです。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月25日日曜日

Google App Engine for Java の非同期データストアAPIの呼び出し(その2)

Google App Engineのデータストアは、
非同期に呼び出して結果を取得することも出来ます。

英語版ドキュメントはこちら
その1はこちら

Working with the Async Datastore Service (非同期データストアサービスの使用)

非同期データストアAPIでは、AsyncDatastoreServiceインターフェイスのメソッドを使ってデータストア呼び出しを行います。このオブジェクトはDatastoreServiceFactoryクラスのgetAsyncDatastoreService()クラスメソッドを呼び出して
取得します。

import com.google.appengine.api.datastore.AsyncDatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;

// ...
AsyncDatastoreService datastore = DatastoreServiceFactory.getAsyncDatastoreService();

AsyncDatastoreServiceは、結果の取得を後の時点でブロックすることが出来るFutureを直ちに返すメソッドを除いて、DatastoreServiceと同じ操作をサポートしています。例として、DatastoreService.get()は1つのエンティティを返しますが、AsyncDataStoreService.get()はFuture<Entity>を返します。

// ...

Key key = KeyFactory.createKey("Employee", "Max");
// Async call returns immediately
Future<entity> entityFuture = datastore.get(key);

// Do other stuff while the get operation runs in the background...

// Blocks if the get operation has not finished, otherwise returns instantly
Entity entity = entityFuture.get();

ノート:get()メソッドを呼び出すまでは例外はスローされません。このメソッドの呼び出しは非同期操作の成功/不成功の検査に利用できます。

AsyncDatastoreServiceを取得しているけれども同期した操作の実行を必要とする場合、適切なAsyncDatastoreServiceのメソッドを呼び出してからすぐにresultのブロックをかけます。

// ...

Entity entity = new Employee("Employee", "Alfred");
// ... populate entity properties

// Make a sync call via the async interface
Key key = datastore.put(key).get();

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月22日木曜日

Google App Engine for Java の非同期データストア呼び出し

Google App Engineのデータストアは、
非同期に呼び出して結果を取得することも出来ます。

英語版ドキュメントはこちら


Async Datastore API (非同期データストアAPI)

非同期データストアAPIは、リクエストのハンドリングよりも後の時点で、並列にブロッキングされないデータストア呼び出しから結果を取得することを可能にします。このドキュメントは非同期データストア呼び出しの以下の側面を記述しています。
・Working with the Async Datastore Service 非同期データストアサービスの動作
・Working with Async Transactions 非同期トランザクションの動作
・Working with Futures Futureの動作
・Async Queries 非同期クエリ
・When To Use Async Datastore Calls 非同期データストア呼び出しの使用タイミング


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月19日月曜日

Google App Engine のHigh Replication Datastoreの利用(その5)

前回まででGoogle App Engine の
High Replication Datastoreの使用についてのドキュメントを翻訳しました。
(原文はこちら)

データストアには2種類あり、
・High Replication Datastore
・Master/Slave Datastore
です。

GAEのデータストアは、データを複数のデータストアに
保存しますが、データストアへのアクセスの仕方に違いがあります。

マスター/スレーブデータストアは、
プログラムからアクセスされるデータストアは1つで
保存・読み出しをする先は複数になります。
マスターデータストアに障害が発生すると、
データストアの読み書きが出来なくなるという欠点があります。

High Replication Datastore(HRD)は、
アクセスするデータストアを1つに限定しないので
可用性が上がります。有料版は99.95%の保障をしています。
(これまでのところ、実運用上で99.99%以上のようです)
しかし、書き込みを開始してから全体の更新が完了する
までに読み出しが行われると、
読み出されたデータが最新のものであるとは限りません。
そのため、アプリケーションの性質によっては
レスポンスに最新の更新が反映されるような工夫が必要となる、
ということのようです(それが、前回の内容)。

マスター/スレーブを使用すればいい…のですが、
今後廃止となる予定だそうです。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月15日木曜日

Google App Engine for Java のHigh Replication Datastoreの使用(その4)

Google App Engine for Javaのデータストアには2種類あり、
そのうちの1つを選択して使用します。

9月9日の記事から、2種類のデータストアのうちの
High Replication Datastore(高レプリケーションデータストア、HRD)の
使用方法についてのドキュメントの翻訳です。

原文はこちらです。
前回の翻訳はこちら

使用上の注意

上記の高レプリケーションデータストアのサンプルコードは1つのゲストブックあたりに単一のエンティティグループとなるように書かれています。これは単一のゲストブック上のクエリには強い一貫性を与えますが、1秒当たり1回の書き込み(エンティティグループへのサポートの制限)を行うようにゲストブックを制限するようになります。従って、1つのゲストブックあたりに単一のエンティティグループに書き込みを行うのは高い頻度での利用が
見込まれる場合には最適ではありません。アプリケーションが高い書き込み要求に遭遇する可能性が高い場合、別の手段を使用することを検証してください。例として、最近の投稿を有効期限付きでmemcacheにputして、その後、データストアから取得した投稿とmemcacheからの最近の投稿を合わせた結果を表示する方法があります。
最終的な一貫性として、数秒内に実行されるクエリに対しては書き込みの99.9%以上に対して利用できます。アプリケーションに投稿するのにかかる時間の間に、現在のユーザーへデータを提供するための解決方法を見つけることが目標となります。解決方法として、memcacheを使用したり、クッキーに保存したり、URLに状態を付け加えたり、その他全く別の方法があるかもしれません。ポイントは、投稿のコンテキストにある現在のユーザーにデータを提供する方法が、高レプリケーションデータストアが完全に許容する最終的な一貫性を作り出すために十分となるようにすることです。get(),put()やトランザクションを行うと、常に直前に書き込まれたデータを参照するということを忘れないで下さい。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月12日月曜日

Google App Engine for Java のHigh Replication Datastoreの使用(その3)

Google App Engine for Javaのデータストアには2種類あり、
そのうちの1つを選択して使用します。

前々回から、2種類のデータストアのうちの
High Replication Datastore(高レプリケーションデータストア、HRD)の
使用方法についてのドキュメントの翻訳です。

原文はこちらです。
前回の翻訳はこちら


In the High Replication Datastore (高レプリケーションデータストア)

高レプリケーションデータストアでは、サンプルのゲストブックアプリケーションはキー名guestbookNameと共にGuestbookカインドの親キーを使い、その後のあいさつ文を親キーによって判別されるエンティティグループ内に保存します。
String guestbookName = req.getParameter("guestbookName");
        Key guestbookKey = KeyFactory.createKey("Guestbook", guestbookName);
        String content = req.getParameter("content");
        Date date = new Date();
        // Places the greeting in the same entity group as the guestbook
        Entity greeting = new Entity("Greeting", guestbookKey);
        greeting.setProperty("user", user);
        greeting.setProperty("date", date);
        greeting.setProperty("content", content);
あいさつ文用クエリは、特定のguestbookに追加された挨拶のみを見つける祖先クエリを実行するために親であるGuestbookキーを使います。:
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Key guestbookKey = KeyFactory.createKey("Guestbook", guestbookName);
    Query query = new Query("Greeting", guestbookKey).addSort("date", Query.SortDirection.DESCENDING);
    query.setAncestor(guestbookKey);
    List<Entity> greetings = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(10));

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月10日土曜日

Google App Engine for Java の High Replication Datastoreの使用(その2)

Google App Engine for Javaのデータストアには2種類あり、
そのうちの1つを選択して使用します。

前回から、2種類のデータストアのうちの
High Replication Datastore(高レプリケーションデータストア、HRD)の
使用方法についてのドキュメントの翻訳です。

原文はこちらです。
前回の翻訳はこちら

In the Master/Slave Datastore (マスター/スレーブデータストア)

マスター/スレーブデータストアでは、それぞれの挨拶に対して新しいルートエンティティを生成します(/google/apphosting/demos/guestbook/src/guestbook/で利用できます)。
Entity greeting = new Entity("Greeting");
// No parent key specified, so the Entity is a root.
greeting.setProperty("user", user);
greeting.setProperty("date", date);
greeting.setProperty("content", content);
10個の最新の挨拶を取得するクエリ:
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Query query = new Query("Greeting").addSort("date", Query.SortDirection.DESCENDING);
List<entity> greetings = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(10));
マスター/スレーブデータストアは全てのクエリに対して強い一貫性を持つ結果を提供するため、このスキーマはうまく機能します。デフォルトではデータストアの読み書きを1つのマスターレプリカからのみ行うため、マスター/スレーブデータストアは強い一貫性を持つ結果を提供します。
このクエリを高レプリケーションデータストアで試すと、クエリを実行するために使用されるデータセンターはクエリ実行時に新しいあいさつ文を見つけられないかも知れません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月9日金曜日

Google App Engine for JavaのHigh Replication Datastoreの使用

前回までの翻訳で述べられている通り、
Google App Engine for Javaのデータストアには2種類あり、
そのうちの1つを選択して使用します。

今回から、2種類のデータストアのうちの
High Replication Datastore(高レプリケーションデータストア、HRD)の
使用方法についてのドキュメントの翻訳です。

原文はこちらです。

Using the High Replication Datastore (高レプリケーションデータストアの使用)

高レプリケーションデータストアは、データを複数のデータセンターに同期して保存することにより、読み書きについてのより高い可用性を提供します。バックエンドが変更されていますが、データストアAPIには全く変更はありません。使用しているデータストアがどちらであるかに関わらず、同じプログラミングインターフェイスを使用します。
高レプリケーションデータストアはより高いレプリケーションのためにより多くのコストがかかります(billing page for pricing detailsを参照)。高いコストのため、主に高い可用性を必要とするクリティカルなApp Engineアプリケーションを作成している開発者向けに高レプリケーションデータストアをお勧めしています。
しかしながら、高レプリケーションデータストアでは、エンティティグループに跨るクエリ(言い換えると、非エンシェスタクエリ)は古い結果を返す場合があります。高レプリケーション環境で一貫性の強いクエリの結果を返すために、単一のエンティティグループ上でクエリを発行する必要があります。このクエリのタイプは、エンシェスタ(祖先)クエリと呼ばれています。
エンシェスタクエリは、全ての操作はグループ全体に適用されることにより、エンティティグループが一貫性の単位であるために機能します。エンシェスタクエリはエンティティグループ全体が更新されるまでデータを返しません。このように、エンティティグループ上のエンシェスタクエリから返されるデータは強い一貫性を持ちます。
アプリケーションが強い一貫性を持つ結果に依存している場合、アプリケーションがエンティティを保存する方法を変更する必要がある場合があります。このページでは、高レプリケーションデータストアに保存されたデータを使用するためのベストプラクティスについて論じています。サンプルゲストブックアプリケーションを使って、マスター/スレーブと高レプリケーションデータストアがそれぞれどう機能する見てみましょう。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月5日月曜日

Google App Engine のデータストアの選択(その5)

Google App Engineで使用するデータストアの種類の選択についての
翻訳の5回目です。


前回は、 HRDとマスター/スレーブの違いについての比較でした。
今回は、2種類のデータストアの選択の方法についてです。

データストアの選択
HRDは全ての新しいアプリケーションのデフォルトとなっています。既存のアプリケーションは新しいアプリケーションへのエンティティのコピーによってHRDに移行しなければなりません。マスター/スレーブデータストアの使用を望む場合、以下の方法で選択できます。

新しいアプリケーション向け
appengine.google.comで新しいアプリケーションを作成する時には、アプリケーションはHRDをデフォルトとして使用します。マスター/スレーブオプションを選択するには、Create an Application画面で選択します。
マスター/スレーブを選択するには、「編集」をクリックして「マスター/スレーブ」ラジオボタンを選択します。「アプリケーションの生成」をクリックすると、マスター/スレーブデータストアにデータを保存するようにアプリケーションを設定します。
注意!:このオプションは不可逆です。マスター/スレーブを選択してからHRDへの移行を望む場合、新しいアプリケーションの生成と現在のデータストアの内容を新しいアプリケーションにコピーしなければなりません。

既存のアプリケーション向け
HRDのアプリケーションをマスター/スレーブデータストアに移行したい場合、上記の方法で新しいアプリケーションを生成して、新しいアプリケーションに現在のデータストアのコピーが必要となります。
注意!:データストアのコピーは、現時点ではPythonのアプリケーションでのみ利用可能です。Java開発者は追加の構成手順を踏む必要があります。詳しくはJava開発者向けノートを参照してください。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月4日日曜日

Google App Engineのデータストアの選択(その4)

Google App Engineで使用するデータストアの種類の選択についての
翻訳の4回目です。


前回は、マスター/スレーブデータストアについての説明でした。
以下は、HRDとマスター/スレーブの違いについての比較です。

以下の表ではHRDとマスター/スレーブデータストアの違いを示しています。
高レプリケーション(HRD) マスター/スレーブ
コスト
ストレージ 1x 1/3x
PutおよびDeleteのCPU 1x 5/8x
GetのCPU 1x 1x
QueryのCPU 1x 1x
パフォーマンス
Put/Deleteの待ち時間 1/2x - 1x 1x
Getの待ち時間 1x 1x
Queryの待ち時間 1x 1x
一貫性
Get/Put/Delete
多くのクエリ 結果による
Ancestor Query
時折発生する計画的
読み取り専用期間
不可
予期されないダウン時 非常にまれ。データ消失は無し まれ。ダウンタイム近辺で発生した書き込みに小さいパーセンテージで消失の可能性(イベントの後でリカバー可能)

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年9月1日木曜日

Google App Engine のデータストアの選択(その3)

Google App Engineで使用するデータストアの種類の選択についての
翻訳の3回目です。

前回は高レプリケーションデータストア(HRD)についての説明でしたが、
今回はもう一つの選択肢である
マスター/スレーブデータストアについてです。

マスター/スレーブデータストア
非同期に書き込んだデータを他のデータセンターに複製する、マスター/スレーブレプリケーションシステムを選択することも可能です。どの時点でも書き込み用に一つだけのデータセンターがマスターとなるので、このオプション(マスター/スレーブ)は全ての読み出しとクエリに強い一貫性を提供しますが、データセンターに問題が発生したり、計画的ダウンタイムの時に一時的にデータが利用不可能となります。

マスター/スレーブデータストアは以下のようなアプリケーションの限られたクラスにのみ適しています。
・データの高い可用性が求められない
・データストアの待ち時間の急増を許容することができる
・最低限のサービスのコストを負担する必要がある

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月29日月曜日

Google App Engine のデータストアの選択(その2)

日本語のドキュメントでは掲載されていないのですが、
Google App Engineのデータストアには、
機能の違うオプションが2つあるようです。



今回はそのドキュメントの翻訳2回目です。

リンクはこちら

データストレージのオプションの比較(Comparing the Data Storage Options)
アプリケーションの作成時には、2つのデータストレージの選択肢から1つを選びます。
高レプリケーションデータストア(The High Replication Datastore)
高レプリケーションデータストア(HRD)は、新しいアプリケーションのデフォルトとなります。HRDは、高い可用性、高い信頼性を持ったストレージソリューションです。計画的ダウンタイムの間も読み書きの可用性を保ち、突発的な故障に直面しても非常に弾力性がありますが、マスター/スレーブオプションよりも多くのコストがかかります。
HRD内のデータはPaxos algorithmを基にしたシステムを使用してデータセンターを横断して複製されます。読み書きに関する最高レベルの可用性を提供し、マスター/スレーブオプションよりもストレージとCPUのコストが約3倍かかります。
エンティティグループは、HRDにおいて、はるかに重要となります。現在のところ、一貫性だけでなくトランザクション性を単位としています。言い換えると、強い一貫性を持つ結果を要求するクエリは、単一のエンティティグループ内に結果を制限する祖先フィルター(ancestor filter)を含まなければならない、ということです。複数のエンティティグループに跨るクエリ群は、最新の結果を返すことを補償されません。この内容における祖先クエリ(ancestor queries)の利用についてはUsing the High Replication Datastoreのページを参照してください。
追記:HRDでは、全ての強い一貫性のある操作(例えば、キーによるgetやput)はトランザクション内で実行されます。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月28日日曜日

Google App Engineのデータストアの選択

日本語のドキュメントでは掲載されていないのですが、
Google App Engineのデータストアには、
機能の違うオプションが2つあるようです。

リンクはこちら

データストアの選択 (Java) Choosing a Datastore
App Engineは、異なる信頼性と一貫性を補償する2つのデータストレージのオプションを提供しています。このページでは、2つのオプションを比較し、アプリケーションにどちらのデータストアを適用する方法を説明します。
・データストレージのオプションの比較(Comparing the Data Storage Options)
・データストアの選択(Selecting a Datastore)

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月25日木曜日

Google Translate APIの有料版の提供

(2011年11月14日追記:料金のドキュメントの翻訳開発者ガイド)

今日(2011年8月25日、現地時間で24日)、
Google Translate APIの有償版の提供が発表されています。

リンクはこちら

以下は、日本語への翻訳(私の訳です)。


2011年8月24日水曜日
Google Translate API有料版がビジネス向けにオープン

by Jeff Chin, プロダクトマネージャ

5月に、Translate API v1を廃止することを発表しました。
今日、ビジネス向けと商用ソフトウェア開発者向けにGoogle Translate API有料版をご紹介します。Google Translate APIは、Googleの機械翻訳テクノロジの最新版にアクセスするプログラムインターフェイスを提供します。APIは50以上の言語(2500以上の言語の組み合わせ)の翻訳への対応を、Googleのクラウドインフラストラクチャと巨大な機械学習アルゴリズムによって可能としています。

Translate APIの有料版は以前のバージョンの多くの利用制限を撤廃され、商用製品で使用することが出来ます。翻訳のコストは、翻訳されるテキスト100万文字あたり20ドル(1ページあたり500語と仮定して、1ページあたり約0.05ドル)となります。月あたり最大5000万文字まで利用するために、APIコンソール上でオンラインサインアップできます。

今日よりも前にAPIコンソールでプロジェクトを作成してTranslate API V2の利用を開始していた開発者は、プロジェクトに対する課金を可能にするまでは、2011年12月1日までは1日あたり10万文字の制限を受け続けます。

アカデミックユーザー向けには、University Research Program for Google Tranalateを通してGoogle Translate Research APIへの無料アクセスを提供し続けます。ウェブサイトの翻訳については、全てのウェブサイトに無料で提供し続けるGoogle Website Translator gadgetの利用をお勧めしています。それに加えて、Google TranslateTranslator ToolkitiPhoneおよびAndroid向けのモバイル翻訳アプリ、ChromeおよびGmail内の翻訳機能などは全てのユーザーが無料で利用し続けられます。

Jeff Chinは、Google Translateのプロダクトマネージャーです。移動のたびに、Jeffは現地の言語の学習と会話にトライし、素敵な地元のレストランや食べ物の発見を楽しんでいます。

投稿者:Scott Knaster,エディター

at 2011/8/24 PM04:36:00


有料版Google Translate APIの利用には、
APIコンソールからのサインイン
・テキスト100万文字あたり20ドルの利用料金
が必要ということです。
月あたりの制限は5000万文字です。

既にAPIを利用しているプロジェクトについては、
課金を有効にするまでは
・1日あたり10万文字
の制限を受けます。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月23日火曜日

Google Translate APIの廃止の注意書き


Google Translate APIのページの冒頭には、
Important: The Google Translate API has been officially deprecated as of May 26, 2011. Due to the substantial economic burden caused by extensive abuse, the number of requests you may make per day will be limited and the API will be shut off completely on December 1, 2011. For website translations, we encourage you to use the Google Translate Element.
と書かれています。
重要:Google Translate APIは、2011年5月26日に公式に廃止となりました。大規模な乱用によって引き起こされる実質的な経済的負担により、一日あたりに可能なリクエストの数が制限され、APIは2011年12月1日に完全に停止されます。ウェブサイトの翻訳にはGoogle Translate Element(http://www.google.com/webelements/translate)をお勧めします。

大体こんな意味です。
2011年の12月以降は停止されて利用不可能になる、ということです。

有料版の提供が行われるという話ですが、実際にはどのようになるのか分かりません。
かわりに推奨されているGoogle Translate Elementは、
Google Chromeで他言語のウェブページを開いたときに表示される
「翻訳しますか?」という翻訳ツールと似たようなもののようです。
ページ全体の翻訳を行うわけです。


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月20日土曜日

Google APIsの一部廃止(続き)

前回に引き続き、Google APIの一部廃止についてのリリースです。


標準的な廃止の期間(大体、3年前後)に続いて、幾つかの廃止されるAPIは、提供を終了します。残りについては停止のスケジュールは定められていませんが、新しい機能を追加されることはありません。それぞれの廃止されるAPIのポリシーは、以下のドキュメントに記述されています。
 ・これらのAPIは現在廃止されていますが、停止期日のスケジュールはありません:Code Search API,Diacritize API,Feedburner APIs,Finance API,Power Meter API,Sidewiki API,Wave API
 ・これらのAPIは各廃止ポリシーに従って停止されます:Blog Search API,Books Data APIとBooks JavaScript API(新しいAPIではありません), Image Search API,News Search API,Patent Search API,Safe Browsing API(v1のみ)、Translate API,Transliterate API,Video Search API,Virtual Keyboard API

可能な限り、ドキュメントで同じ機能を実現するための代替となるような提案を行うか、新しいバージョンや関連する製品の提供を行います。長期の廃止期間と共に、これらの代替物が影響を最小限にして、私達が素晴らしい製品を提供することの両方の助けとなることを希望します。

Adam Feldmanは全てのGoogleのAPIに注視し、開発者の利用可能なベストのプラットフォームをGoogleが提供することを確実にするためのプロダクトマネージャーです。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月15日月曜日

Google APIsの一部廃止

今年(2011年)の春、Google APIの一部が廃止されるという
発表がありました。

その中には、Google Translate API、VirtualKeyboad APIも含まれます。


リンクはこちらです。


2011年6月3日(金曜日)
APIの一部の整理(春季)
Adam Feldman(APIs プロダクトマネージャ)

6月3日:Translate APIの廃止をアナウンスしてから数日の間に、このページのコメントその他を通して、とても沢山の方からの関心と情熱を拝見しました(全てを読みました。信用してください)。私達はあなた方の懸念に対処するための努力をご理解いただき喜ぶと共に、Translate APIの有料版を提供するためにアップデートの計画を発表する予定です。可能な限り早く、完全なアップデートを提供する予定ですので、ご期待下さい。

Google I/O は、常に開発者にむけて素晴らしい時間を提供します。今年は、7つの新しいAPIを含む34の個別の発表を行いました。
・Discovery Service
・Tasks API
・Books API
・Pagespeed Online API
・Places API(現在一般に利用可能)
・Prediction API(現在一般に利用可能)
・Fusion Tables API(追加のフィード)
最近のAPIの発表の全てと共に、APIディレクトリはとても大きくなりました。
しかしながら、幾つかの古いAPIは、より大きいかより良いものによって取って代わられたり、必要性を受けられなくなりました。

ウェブの進化と優先順位の変化を受けて、私たちは時々APIを廃止(進行中の開発から外すことです)して、資源を解放して前進するために集中します。今日、APIの幾つかの除去を発表します。

圧倒的多数のGoogle APIは、この発表によって影響を受けないことにご注意下さい。
(続く)


インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月9日火曜日

Goole App Engine for Java のデータストアAPIを利用するクラスをテスト駆動開発する(その13)

それでは、ここで今までの内容を反映した
サンプルコードを掲載します。



import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.FetchOptions;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.PreparedQuery;
import com.google.appengine.api.datastore.Query;
import com.google.appengine.api.datastore.Query.FilterOperator;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;

/**
 * Google App Engine for Javaにおけるユニットテストのサンプルコード。
 */
public class LocalUnitTestSample {

	private static final String DATA_KIND = "sampleDataKind";

	private LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());

	private String propertyName = "propertyName";

	private String[] propertyValues = {"pValue1","pValue2","pValue3","pValue4","pValue5"};

	private DatastoreService ds;

	private List keyList;

	/**
	 * @throws java.lang.Exception
	 */
	@Before
	public void setUp() throws Exception {
		helper.setUp();

		//サンプルデータをデータストアに保存する
		putSampleData();
	}

	/**
	 * サンプルデータをデータストアに保存するメソッド。
	 */
	private void putSampleData() {
		keyList = new ArrayList();
		ds = DatastoreServiceFactory.getDatastoreService();
		for (int i = 0; i < propertyValues.length; i++) {
			Entity entity = new Entity(DATA_KIND);
			entity.setProperty(propertyName, propertyValues[i]);
			Key key = ds.put(entity);
			keyList.add(key);
		}
	}

	/**
	 * @throws java.lang.Exception
	 */
	@After
	public void tearDown() throws Exception {
		//サンプルデータをデータストアから削除する
		deleteSampleData();

		helper.tearDown();
	}

	/**
	 * サンプルデータをデータストアから削除するメソッド。
	 */
	private void deleteSampleData() {
		Iterator iter = keyList.iterator();
		while (iter.hasNext()){
			ds.delete(iter.next());
		}
	}

	@Test
	public void doTest(){
		//サンプルデータをデータストアから検索する
		for (int i = 0;i < propertyValues.length;i++){
			EntitySearch search = new EntitySearch(ds,DATA_KIND,propertyName);
			List entitiesList = search.getEntity(propertyValues[i]);
			assertEquals(1,entitiesList.size());
			Iterator iter = entitiesList.iterator();
			while (iter.hasNext()){
				Entity entity = iter.next();
				assertTrue(propertyValues[i].equals(entity.getProperty(propertyName)));
			}
		}
	}

	/**
	 * データストアから、設定された名前のプロパティが該当する
	 * エンティティを取得する機能を提供するクラス。
	 */
	public class EntitySearch {

		/**
		 * データストアサービス
		 */
		private DatastoreService ds;

		/**
		 * 探索するエンティティのカインド名を表す文字列フィールド
		 */
		private String kindName;

		/**
		 * 探索するプロパティの名前を表す文字列フィールド
		 */
		private String propertyName;

		/**
		 * データストアサービスと、探索するプロパティの名前を引数とするコンストラクタ。
		 * @param ds データストアサービスオブジェクト
		 * @param kindName 取得するエンティティのカインド名文字列
		 * @param propertyName 探索するプロパティ名を表す文字列
		 */
		public EntitySearch(DatastoreService ds, String kindName, String propertyName) {
			this.ds = ds;
			this.kindName = kindName;
			this.propertyName = propertyName;
		}

		/**
		 * データストアからエンティティを検索するメソッド。
		 * コンストラクタで設定したカインド、プロパティ名の値が
		 * 引数propertyValueと同一のエンティティを格納したリストを返します。
		 * @param propertyValue 検索条件となるプロパティの値オブジェクト
		 * @return コンストラクタで設定したプロパティが引数propertyValueと同一の値のエンティティのリスト
		 */
		public List getEntity(Object propertyValue) {
			Query query = new Query(kindName);
			query.addFilter(propertyName, FilterOperator.EQUAL, propertyValue);
			PreparedQuery prepare = ds.prepare(query);
			List entitiesList = prepare.asList(FetchOptions.Builder.withDefaults());
			return entitiesList;
		}

	}

} 

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月7日日曜日

Google App Engine for Java のデータストアAPIを利用するクラスをテスト駆動開発する(その12)

前回に引き続き、EntitySearchクラスの修正を行います。


メソッドgetEntity()内で、
クエリを生成する部分に修正する点があります。

コンパイル時に警告が出るのですが、
フィールドkindNameが参照されていないのです。

getEntity()内では、
エンティティ探索のためにクエリを生成しています。
クエリを生成するためにはコンストラクタで
new Query(String kind)
とするのですが、
引数の部分が
DATA_KIND
となっていて、LocalUnitTestSampleクラスの定数を参照しています。
(もし、EntitySearchクラスを内部クラスとしていなければ、
コンパイルエラーになります)

そこで、探索するエンティティのカインド名を
DATA_KINDから、kindNameに変更します。
そうすることで、EntitySearchクラスの内部から
LocalUnitTestSampleクラスのメンバを直接参照することは
なくなります。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/

2011年8月4日木曜日

Google App Engine for Java のデータストアAPIを利用するクラスをテスト駆動開発する(その11)

前回の投稿で、テスト駆動開発の利点として、
回帰テストが容易に出来る、ということを挙げました。

その実践・・・というわけでもないですが、
サンプルコードを修正してみましょう。
修正、といいますが、つまり、忘れていた点があったんです。

作成したEntitySearchクラスのコンストラクタが
実装されていませんでした。
引数が何も使われないままになっていたんですね。

引数が使われないまま放置されていたのに、
テストを実行してみると成功します。
この理由は、
EntitySearchクラスがLocalUnitTestSampleクラスの
内部クラスであることが原因です。

もし、EntitySearchクラスを内部クラスではなく、
別の独立したクラスとすると
コンパイルエラーとなります。

メソッドgetEntity()の内部で、
変数ds,kindName,propertyNameを解決できないはずです。

そこで、コンストラクタで渡された引数を
フィールドとして保持することにします。
private DatastoreService ds;

private String kindName;

private String propertyName;

public EntitySearch(DatastoreService ds, String kindName, String propertyName) {
 this.ds = ds;
 this.kindName = kindName;
 this.propertyName = propertyName;
}
フィールドds,kindName,propertyNameを宣言して、
コンストラクタで引数の値を代入します。

これで、メソッドgetEntity()でのコンパイルエラーが解消されます。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/