<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9193881432123094514</id><updated>2024-09-25T10:06:06.311+09:00</updated><category term="Python"/><category term="GAE"/><category term="開発メモ"/><category term="つれづれ"/><category term="翻訳記事"/><category term="Sphinx"/><category term="携帯サイト"/><category term="テスト"/><category term="eclipse"/><category term="Mercurial"/><category term="blogger"/><title type='text'>MTG-Guild 開発日誌</title><subtitle type='html'>トレーディングカードゲーム「Magic:The Gathering」の攻略サイト&#xa;MTG-Guild の 開発日誌です。&#xa;&#xa;Google App Engine - Python で構築スタート！&#xa;・・・どうなることやら</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>79</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-3560399935834218025</id><published>2013-10-21T01:00:00.002+09:00</published><updated>2013-10-21T01:00:45.887+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.6</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.6が出てますね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.6 - October 15, 2013&lt;/h3&gt;&lt;p&gt;Python&amp;PHP&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;A memcache size chart has been added to admin console&#39;s dashboard. Access it via the drop-down above the graph. The chart graphs memcache size over time enabling customers to determine when cache flush events occurred. This is a preview feature.&lt;/span&gt;&lt;br /&gt;
memcacheのサイズのチャートがadmin consoleのダッシュボードに加わりました。グラフのドロップダウンからアクセスして下さい。この図はキャッシュのフラッシュ時に利用者がmemcacheのサイズをオーバーした時間を判別出来るように、この図は表現します。この機能はプレビュー機能です。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the dev_appserver that allows an invalid Datastore query combination of group by and filter properties.&lt;/span&gt;&lt;br /&gt;
dev_appserverでgroup byとフィルタプロパティを併用したDatastoreクエリが無効とされる問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the bulkloader that causes uploads to the dev_appserver to fail.&lt;/span&gt;&lt;br /&gt;
バルクローダーからdev_appserverへのアップロードが失敗する問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Datastore Admin not being able to backup to another app.&lt;/span&gt;&lt;br /&gt;
Datastore Adminで他アプリにバックアップできない問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue affecting validation of the size of Datastore property names.&lt;/span&gt;&lt;br /&gt;
データストアのプロパティ名の大きさのバリデーションへの影響にかんする問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with Datastore query validation for strings with exactly 500 characters.&lt;/span&gt;&lt;br /&gt;
データストアで正確に500文字の文字列のクエリのバリデーションの問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=10019&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=10019&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Python&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Django 1.5.4 is now available in the Runtime. This is a Preview feature.&lt;/span&gt;&lt;br /&gt;
Django 1.5.4 がRuntimeから利用可能になりました。これはプレビュー機能です。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;app_identity.get_access_token in the App Identity API is now a GA feature.&lt;/span&gt;&lt;br /&gt;
App Identity API で、app_identity.get_access_token が正式な Google App Engine の機能になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Geo is now a supported field type in the Search API for the dev_appserver.&lt;/span&gt;&lt;br /&gt;
Geoフィールドタイプはdev_appserverでのSearch APIでサポートされるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7486&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7486&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/3560399935834218025/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/10/google-app-engine-python-sdk-release_21.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/3560399935834218025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/3560399935834218025'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/10/google-app-engine-python-sdk-release_21.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.6'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6612411417539836709</id><published>2013-10-18T01:58:00.002+09:00</published><updated>2013-10-18T01:59:23.971+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.5</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.5が出てますね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.5 - September 25, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Search API is now a GA feature.&lt;/span&gt;&lt;br /&gt;
The Search API が Google App Engine の 正式機能になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the dev_appserver Datastore where UTF-8 validation did not occur on string values.&lt;/span&gt;&lt;br /&gt;
dev_appserver の Datastore の問題を修正しました。string値ではUTF-8のバリデーションがされていませんでした&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Admin Console Datastore Viewer throwing errors when fetching UTF-8 kinds.&lt;/span&gt;&lt;br /&gt;
Admin Console の Datastire Viewer の 問題を修正しました。 UTF-8のkindのフェッチ時に、エラーがthrowされていました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=7570&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=7570&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Datastore Admin not being able to backup to another app.&lt;/span&gt;&lt;br /&gt;
Datastore Adminで他アプリにバックアップできない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9808&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9808&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue where files that contain an &#39;@&#39; could not be deployed.&lt;/span&gt;&lt;br /&gt;
ファイル名に&#39;@&#39;を含んでいるファイルがデプロイできなかった問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/a/google.com/p/google-appengine-php-trusted-tester/issues/detail?id=6&quot;&gt;https://code.google.com/a/google.com/p/google-appengine-php-trusted-tester/issues/detail?id=6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Developers can now use pdb when debugging python applications in the dev_appserver.&lt;/span&gt;&lt;br /&gt;
開発者はdev_appserverでpythonアプリケーションのデバッグ時にpdbを使用することが可能になりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9012&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9012&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9027&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9027&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6612411417539836709/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/10/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6612411417539836709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6612411417539836709'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/10/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.5'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-7509496201222014981</id><published>2013-09-23T11:42:00.003+09:00</published><updated>2013-10-18T01:59:43.885+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.4</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.4が出てますね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
今回は細かい修正が多いですね。&lt;br /&gt;
修正の内容も、だいぶ成熟してきた感がありますね。&lt;br /&gt;
（最初の２つとか最後のやつは、訳者は何を書いているの理解できません。orz）&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.4 - September 9, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Better support is now provided for the _$folder$ magic cloud storage keyword, and the implementation of basic mkdir()/rmdir() functionality via GCS streams.&lt;/span&gt;&lt;br /&gt;
クラウドストレージのマジックキーワードの _%folder$ がより良くサポートされるようになりました。また、GCSストリームからの基本的なmkdir()/rmdir()機能が実装されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;This release adds the wrappers @transactional_async and @transactonal_tasklet to correct (a) @transactional @tasklet being synchronous despite the decorator, and (b) @tasklet @transactional not running the generator in a transaction.&lt;/span&gt;&lt;br /&gt;
このリリースから ラッパー（@transactional_async と @transactional_tasklet）が増えました。 これは、次の２つを修正することを目的としています。1.@transactional @tasklet は、デコレータにかかわらず同期されます。@tasklet @transactional はトランザクション内でジェネレーターが動きません。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed a unicode issue associated with expressions in the Search API. A search with snippeted fields was failing on documents containing unicode characters.&lt;/span&gt;&lt;br /&gt;
検索APIの式に関連付けられたUnicodeの問題を修正しました。 Unicode文字を含む文書では、snippetedフィールドの検索は失敗していました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the dev_appserver not auto-detecting the lib/ directory in the SDK.&lt;/span&gt;&lt;br /&gt;
SDKのdev_appserverの問題を修正しました。 lib/directoryの自動検索がうまく動作していませんでした。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=8459&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=8459&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9847&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9847&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue where Blobstore usage was being charged even though the actual data was being stored in Cloud Storage. All affected developers have been informed and reimbursements are underway.&lt;/span&gt;&lt;br /&gt;
実際のデータはクラウドストレージに格納されていたにもかかわらず、ブロブストアの使用量として課金されていた問題を修正しました。影響を受けるすべての開発者に通知し、払い戻しを進めています。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9659&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9659&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue that ensures all .py files in google.appengine.api that are available in the SDK are also available in the runtime.&lt;/span&gt;&lt;br /&gt;
google.appengine.api内の必要なすべてのpyファイルがSDKで確実に提供されるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9755&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9755&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue of warning messages being displayed when running appcfg update (eg. appcfg.py update . --oauth2) from the 1.8.3 Python SDK. The appengine_rpc_httplib2 will work without warnings regardless of which oauth2client library is being used.&lt;/span&gt;&lt;br /&gt;
1.8.3 Python SDKでappcfgアップデートを実行するときに表示される警告メッセージ（例：appcfg.py update . --oauth2）の問題を修正しました。oauth2client ライブラリを使っていても、 appengine_rpc_httplib2が警告を出さないようにしました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9807&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9807&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/7509496201222014981/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/09/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7509496201222014981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7509496201222014981'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/09/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.4'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6110918005494240010</id><published>2013-08-12T01:51:00.002+09:00</published><updated>2013-08-12T01:51:20.655+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.3</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.3が出てますね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
今回は、NDBのバグフィックスが多めですね。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.3 - August 6, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Published a major rewrite of the Search API documentation. Please see: https://developers.google.com/appengine/docs/python/search/&lt;/span&gt;&lt;br /&gt;
Search APIのドキュメントを大幅に修正しました。こちらを見て下さい。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/appengine/docs/python/search/&quot;&gt;https://developers.google.com/appengine/docs/python/search/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Mail API, email addresses that contain encoded newlines as specified in rfc2047 are now parsed correctly.&lt;/span&gt;&lt;br /&gt;
Mail APIの問題を修正しました。RFC2047で定められた形式でエンコードされた改行コードは、正しく解釈されるようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with channels.send_message failing when a client id has 3 or more dashes.&lt;/span&gt;&lt;br /&gt;
チャネルの問題を修正しました。クライアントIDが３以上のダッシュをもつ場合にsend_messageが失敗していました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with ndb.non_transactional correctly restoring the db library&#39;s transactional state.&lt;/span&gt;&lt;br /&gt;
ndb.non_transactionalが正しくDBライブラリのトランザクションの状態を復元する問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=232&quot;&gt;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=232&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with NDB raising the correct exception when the rollback itself has an exception.&lt;/span&gt;&lt;br /&gt;
NDBでロールバック時の例外が正しい例外を返すように修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=234&quot;&gt;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=234&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The NDB model property settings &#39;default&#39; and &#39;required&#39; are no longer mutually exclusive.&lt;/span&gt;&lt;br /&gt;
NDBモデルのプロパティは、「デフォルト」と「必須」は排他的にのみ使用できしたが、両方を設定することもでるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=236&quot;&gt;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=236&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with debugger/breakpoint not working on the dev_appserver.&lt;/span&gt;&lt;br /&gt;
dev_appserverでデバッガやブレークポイントが動作しない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=28&quot;&gt;http://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=28&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=9012&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=9012&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=9027&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=9027&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with NDB queries supporting iterate over distinct queries.&lt;/span&gt;&lt;br /&gt;
NDBのクエリがDISTINCTクエリもiterateできるように問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=9591&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=9591&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with enabling cloud integration for existing apps.&lt;/span&gt;&lt;br /&gt;
既存のアプリケーションでクラウドインテグレーションを利用できるように問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9602&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9602&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with users not being able to view the cron jobs page in the dev_appserver.&lt;/span&gt;&lt;br /&gt;
ユーザーがdev_appserverでcronジョブのページを表示することができない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9665&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9665&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Channel API send_message function not working on the dev_appserver.&lt;/span&gt;&lt;br /&gt;
Channel API の SEND_MESSAGE機能がdev_appserverで動作しない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9675&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9675&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with Modules get_current_module_name() incorrectly reporting as default when it is not.&lt;/span&gt;&lt;br /&gt;
get_current_module_name()でデフォルトが指定されていない場合の不正な応答が返される問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9687&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9687&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Datastore Admin UI failing to load due to the app having too many kinds.&lt;/span&gt;&lt;br /&gt;
データストアの管理UIが非常に多くのkindを持つアプリでロードに失敗する問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9749&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9749&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Channel API Testbed not working correctly after upgrading to SDK 1.8.2&lt;/span&gt;&lt;br /&gt;
チャンネルAPIのテストベッドが、SDK1.8.2へのアップグレード後に正しく動作しない問題を修正しました&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9757&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9757&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6110918005494240010/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/08/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6110918005494240010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6110918005494240010'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/08/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.3'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-3399952043234458216</id><published>2013-07-21T23:31:00.003+09:00</published><updated>2013-08-12T01:48:43.995+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.2</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.2が出てますね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
インタープリンタが2.7.5になったのが目を引きました。っていうか、2.7.5がリリースされていたんですね。&lt;br /&gt;
最近、仕事が非常に忙しくて、自宅PCにほとんど触れていないので、知りませんでした。&lt;br /&gt;
&lt;br /&gt;
あと、前回も書きましたが、Mercurialでのデプロイもサポートして欲しいです。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.2 - July 16, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Dedicated memcache is now available to all developers. With dedicated memcache you can purchase in-memory data caching capacity exclusively for your application, cache more data and drive up cache hit rates. This is a Preview feature. For more information please see:&lt;/span&gt;&lt;br /&gt;
専用memcacheが使えるようになりました。専用memcacheとは、あたなのアプリ専用にインメモリのキャッシュ容量を購入することです。これにより、あなたのアプリケーションはより多くのキャッシュ容量を持ち、ヒット率が向上します。これはプレビュー機能です。より多くの情報は、以下を参照してください。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/appengine/docs/adminconsole/memcache&quot;&gt;https://developers.google.com/appengine/docs/adminconsole/memcache&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;App Engine Modules is now available to all developers. App Engine Modules allow developers to segment their applications into logical subcomponents. This is a Preview feature. More information on this feature can be found here:&lt;/span&gt;&lt;br /&gt;
App Engine Modulesが利用できるようになりました。App Engine Modulesにより、アプリケーションを論理的なサブコンポーネントに分割することができます。これはプレビュー機能です。より多くの情報は、以下を参照してください。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/appengine/docs/python/modules/&quot;&gt;https://developers.google.com/appengine/docs/python/modules/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Python Interpreter has been upgraded to 2.7.5.&lt;/span&gt;&lt;br /&gt;
Pythonのインタープリンタは、2.7.5にアップグレードされました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;lxml 2.3.5 is now available.&lt;/span&gt;&lt;br /&gt;
lxml 2.3.5 が利用できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Datastore bulkloader syntax when using the Python 2.5 interpreter.&lt;/span&gt;&lt;br /&gt;
データストアのバルクローダー構文をPython2.5で利用した際の問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Channel API&#39;s Javascript library; a memory leak occurred when closing channels.&lt;/span&gt;&lt;br /&gt;
チャネルAPIのJavascriptライブラリの問題（チャネルをクローズする際にメモリリークが発生していました）を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9283&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9283&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with App Engine receiving erroneous XMPP presence from Google Hangouts.&lt;/span&gt;&lt;br /&gt;
Google ハングアウトから誤ったXMPPプレゼンスを受信してしまうApp Engineの問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9498&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9498&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/3399952043234458216/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/07/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/3399952043234458216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/3399952043234458216'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/07/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.2'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6378852660599843208</id><published>2013-06-23T02:51:00.001+09:00</published><updated>2013-06-23T12:02:51.458+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.1</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.1が少し前に出てますね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
前回の反動なのか、今回は少し多めですね。&lt;br /&gt;
細々と目を引く修正はありますが、Blobstore関連を使っていなければ、あんまり影響はなさそう。&lt;br /&gt;
&lt;br /&gt;
個人的にはgitでデプロイ出来るようになったのが気になりました。&lt;br /&gt;
私はMercurial派なので、今後そちらでのデプロイもサポートして欲しいです。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.1 - June 11, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Task Queue async API is now a GA feature. The asynchronous methods improve utilization by allowing your app to add, lease and delete multiple tasks in parallel.&lt;/span&gt;&lt;br /&gt;
非同期のタスクキューAPIは、GoogleAppEngineの正式機能になりました。非同期メソッドは、 パラレルに複数のタスクを追加・リース・削除することを可能にし、アプリケーションの利用率を向上させます。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Cloud Console projects are now created by default whenever a new App Engine app is created. This is a Preview feature.&lt;/span&gt;&lt;br /&gt;
クラウドのコンソールプロジェクトは、アプリケーション作成時のデフォルトになりました。これはプレビュー機能です。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;In an upcoming release the Experimental Google Cloud Storage API and Files API within the Blobstore service will be decommissioned. These APIs and their Experimental status are documented at the following links:&lt;/span&gt;&lt;br /&gt;
今後のリリースで、Blobstoreサービスの中の いくつかの実験的なAPI（Google CloudStorage API,Files API）は、廃止されます。それらのAPIの実験状況は、以下のリンクに記載されています。&lt;ul&gt;&lt;li&gt;(Python) Google Cloud Storage API: &lt;a href=&quot;https://developers.google.com/appengine/docs/python/googlestorage&quot;&gt;https://developers.google.com/appengine/docs/python/googlestorage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(Python) Blobstore Files API: &lt;a href=&quot;https://developers.google.com/appengine/docs/python/blobstore/blobstorefiles&quot;&gt;https://developers.google.com/appengine/docs/python/blobstore/blobstorefiles&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Google Cloud Storage library will replace Google Cloud Storage API and is now available as a Preview feature. More information can be found at https://code.google.com/p/appengine-gcs-client/&lt;/span&gt;&lt;br /&gt;
Google Cloud Storage ライブラリは、Google Cloud Storage APIを置換し、プレビュー機能として提供されています。詳細な情報は、&lt;a href=&quot;https://code.google.com/p/appengine-gcs-client/&quot;&gt;https://code.google.com/p/appengine-gcs-client/&lt;/a&gt;を参照してください。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Bandwidth between App Engine and Google Cloud Storage is currently free of charge (this may change in the future for certain levels of service).&lt;/span&gt;&lt;br /&gt;
App Engine と Google Cloud Storageの帯域は、現在は無料です（特定のレベルのサービスの為に、これは変更になるかもしれません）。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Search API has graduated from Experimental to Preview. Apps that have billing enabled can exceed the free quota levels and will be charged for usage above these levels.&lt;/span&gt;&lt;br /&gt;
サーチAPIは実験的機能からプレビュー機能に格上げされました。課金が有効なアプリでは、課金することで、無料分のクォータを超えることができます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Estimated number of search results will only be accurate if it is less than or equal to the number of results requested. By default this can be overridden by setting number_found_accuracy QueryOption in the Search API.&lt;/span&gt;&lt;br /&gt;
検索結果の推定数は、リクエストされた結果の件数以下の場合のみ正確です。デフォルトは、検索APIでnumber_found_accuracyのQueryOptionを設定することでオーバーライドすることができます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Dates, atoms, and number fields can now be found by searching without a field restriction in the Search API.&lt;/span&gt;&lt;br /&gt;
日付・アトム・数値のフィールドは、検索APIのフィールド制限なしで検索できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;A quoted empty string now returns atom fields with empty values for the Search API.&lt;/span&gt;&lt;br /&gt;
SearchAPI用に、引用符で囲まれた空の文字列は、空の値のアトムフィールドを返します。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Snippet and count functions are no longer allowed in sort expressions for the Search API.&lt;/span&gt;&lt;br /&gt;
スニペットとカウント機能は、検索API用の並べ替え式では許可されなくなりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Search API now has improved error messages for user errors and internal errors.&lt;/span&gt;&lt;br /&gt;
検索APIはエラーメッセージ（ユーザー·エラー、内部エラー）を改善しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;App Engine now supports deployment of applications via the Git tool. Once you complete the initial setup steps, you will be ready to deploy apps with the same ease you push code to a git repository using % git push appengine master. This is a Limited Preview feature. You may request access via the following link: https://docs.google.com/a/google.com/forms/d/1aLaAOZb_cXFiVqzLAMvPV9kh0FmvlLRUbwD-LBbLuUI/viewform&lt;/span&gt;&lt;br /&gt;
App EngineはGitツールからのアプリケーションのデプロイメントをサポートするようになりました。一度セットアップを完了させてしまえば、gitのリポジトリを&quot;% git push&quot; でプッシュするのと同じくらい簡単に、アプリケーションのデプロイができるようになります。これは限定されたプレビュー機能です。次のリンクから詳細にアクセスできます： &lt;a href=&quot;https://docs.google.com/a/google.com/forms/d/1aLaAOZb_cXFiVqzLAMvPV9kh0FmvlLRUbwD-LBbLuUI/viewform&quot;&gt;https://docs.google.com/a/google.com/forms/d/1aLaAOZb_cXFiVqzLAMvPV9kh0FmvlLRUbwD-LBbLuUI/viewform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Datastore now assigns scattered auto ids by default. Legacy auto ids are still available via the auto_id_policy option in app.yaml.&lt;/span&gt;&lt;br /&gt;
データストアは、デフォルトで散乱したオートIDを割り当てます。以前のオートIDはapp.yamlでauto_id_policyオプションで引き続き利用できます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Sockets API now allows client code to call get/set options against sockets. Previously, calls raised Not Implemented exceptions. For supported options, calls to getsockopt will return a mock value and calls to setsockopt will be silently ignored. Errors will continue to be raised for unsupported options. The currently supported options are: SO_KEEPALIVE, SO_DEBUG, TCP_NODELAY, SO_LINGER, SO_OOBINLINE, SO_SNDBUF, SO_RCVBUF, and SO_REUSEADDR.&lt;/span&gt;&lt;br /&gt;
ソケットAPIでは、ソケットのオプションの取得/設定の呼び出しをクライアントコードで出来るようにようになりました。以前は呼び出してもNot Implemented例外が起きていました。サポートされているオプションに対して、getsockoptではモック値を返し、setsockoptは何もせずに無視します。サポートされていないオプションに対しては、引き続きエラーが発生します。現在サポートされているオプションは次の通りです：SO_KEEPALIVE, SO_DEBUG, TCP_NODELAY, SO_LINGER, SO_OOBINLINE, SO_SNDBUF, SO_RCVBUF, and SO_REUSEADDR&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Updated skip_files documentation to reflect the new default.&lt;/span&gt;&lt;br /&gt;
新しいデフォルトを反映させる為に、skip_filesのドキュメンテーションが更新されました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/appengine/docs/python/config/appconfig#Skipping_Files
&quot;&gt;https://developers.google.com/appengine/docs/python/config/appconfig#Skipping_Files&lt;br /&gt;
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The ndb library now supports distinct queries. This is a Preview feature.&lt;/span&gt;&lt;br /&gt;
ndbライブラリは、distinctクエリをサポートしました。これはプレビュー機能です。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=229&quot;&gt;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=229&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with Google Cloud Storage objects not being compatible across various APIs on the dev_appserver.&lt;/span&gt;&lt;br /&gt;
Google Cloud Storage オブジェクトがdev_appserverのさまざまなAPI間で互換性がないという問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the namespace not being displayed when a user attempts to select a namespace in the Admin Console.&lt;/span&gt;&lt;br /&gt;
ユーザが管理コンソールでネームスペースを選択しようとしたときに名前空間が表示されない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=8164&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=8164&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue in the Admin Console Logs page to correctly display Until instead of Since for logs search criteria.&lt;/span&gt;&lt;br /&gt;
管理コンソールのログページの検索条件が正しくない問題（SinceになるべきところがUntilになっていた問題）を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=8659&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=8659&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6378852660599843208/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/06/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6378852660599843208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6378852660599843208'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/06/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.1'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-5933033475661602442</id><published>2013-05-22T22:25:00.001+09:00</published><updated>2013-05-22T22:25:48.094+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.8.0</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.8.0が出てますよね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
今回のリリースでは、Pythonの修正は少なめですね。&lt;br /&gt;
PHPの追加にリソース使っているのかな？&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.8.0 - May 8, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Mail API now allows attachments with .zip and .gzip extensions as long as the archives do not contain entries with blacklisted extensions.&lt;/span&gt;&lt;br /&gt;
Mail APIは （拡張子のブラックリストに含めていない限り）.zip と .gzipの拡張子のファイルを添付できるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5933&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5933&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;New Billing Enabled apps will no longer default to an email quota of 20,000 per day. Instead, apps will need to file a request through the admin console to get email quotas increased.&lt;/span&gt;&lt;br /&gt;
新しい課金有効アプリは、メールクォータは20,000通/日がデフォルトで設定されるようになりました。その代わりに、アプリケーションは電子メールクォータの増加を取得するために、管理コンソールから要求を提出する必要があるでしょう。&lt;br /&gt;
（訳注： &lt;a href=&quot;https://developers.google.com/appengine/docs/quotas#up_mail_quota&quot;&gt;より詳しく書いてある記事&lt;/a&gt;によると、最初の課金がうまくいくまでは、通常の100通/日のままらしいです ）&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Admin console dashboard charts and reports for all users have been fully migrated to the new, more reliable backend announced in 1.7.6.&lt;/span&gt;&lt;br /&gt;
管理コンソールのダッシュボードチャートとすべてのユーザーのレポートが、1.7.6でアナウンスされている 新しくより信頼性の高いバックエンドに完全に移行されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The maximum size of POST requests made through URLfetch has been increased from 5MB to 10MB.&lt;/span&gt;&lt;br /&gt;
URLフェッチのPOSTリクエストの最大サイズは5メガバイトから10メガバイトに増加されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Mail API to prevent sending mail from a Google Apps mail account that has been suspended.&lt;/span&gt;&lt;br /&gt;
中断されているGoogle Appsのメールアカウントからのメール送信を防いでいたメールAPIについての問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=6181&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=6181&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the admin handler of the new dev_appserver failing to import appengine_config automatically.&lt;/span&gt;&lt;br /&gt;
appengine_configの自動インポートに失敗していた新しいdev_appserverのadminハンドラの問題を修正しました。&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/5933033475661602442/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/05/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/5933033475661602442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/5933033475661602442'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/05/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.8.0'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-1753814674647548505</id><published>2013-04-28T12:00:00.001+09:00</published><updated>2013-04-28T12:00:03.607+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.7</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.7が出てますよね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.7 - April 9, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Sockets API, which allows applications to make outgoing TCP connections and send/receive UDP packets to the Internet using both IPv4 and IPv6, is now available as an experimental feature for billed apps.&lt;/span&gt;&lt;br /&gt;
課金しているアプリケーションの実験的機能として、ソケットAPIは TCPコネクション接続の発信やUDPパケットの送受信をIPv4とIPv6の両方を用いることができます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Billing enabled apps will no longer be subject to a $2.10 minimum weekly spend. Instead, apps will only be charged for their actual usage.&lt;/span&gt;&lt;br /&gt;
課金が有効になっているアプリケーションの最低利用金額（2.10$/週）は、なくなりました。かわりにアプリケーションが実際に使った分だけ請求されるようになります。 &lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Matplotlib 1.1.1, an experimental feature, is being deprecated and will be removed in 1.7.8. Please switch to matplotlib 1.2.0.&lt;/span&gt;&lt;br /&gt;
実験的機能のMatplotlib 1.1.1は、非推奨となり、1.7.8では撤廃されます。今後はMatplotlib 1.2.0に切り替えて下さい。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue where the dev_appserver Datastore auto ids assigned by the scattered id policy were too large to be represented as floating point numbers.&lt;/span&gt;&lt;br /&gt;
散乱IDポリシーによって割り当てられる自動IDが浮動小数点数として表現するにはあまりにも大きかったというdev_appserver上の問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue where the dev_appserver threw an exception on any Search API call that used an index that was originally created as GLOBALLY consistent.&lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with NDB not serializing projection entities correctly.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=215&quot;&gt;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=215&lt;/a&gt;&lt;/li&gt;
投影エンティティが正しくシリアライズ化されないというNDBの課題を修正しました。&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with NDB not projecting structured properties correctly.&lt;/span&gt;&lt;br /&gt;
structuredプロパティが正しく投影されないというNDBの課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=227&quot;&gt;https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=227&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with task queues failing to resolve backend addresses in the new dev_appserver.&lt;/span&gt;&lt;br /&gt;
新しいdev_appserverで、バックエンドのアドレスの解決に失敗してしまうタスクキューの課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=5105&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=5105&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Search API allowing multiple documents with no IDs to be in one put request.&lt;/span&gt;&lt;br /&gt;
IDを持っていない複数のドキュメントを１回のputリクエストで処理する際のSearchAPIの課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=8553&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=8553&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with sort by doc_id not translating correctly causing InvalidRequest errors on the Search API.&lt;/span&gt;&lt;br /&gt;
InvalidRequestエラーによって、正しく変換されないdoc_IDによるソートの課題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=8958&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=8958&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the Search admin UI where an Internal Server Error was served.&lt;/span&gt;&lt;br /&gt;
Internal Server Errorが発生していた Search管理者UIの課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9005&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9005&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with Prospective Search failing in the new dev_appserver.&lt;/span&gt;&lt;br /&gt;
Prospective Searchが失敗する新しいdev_appserverの課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9003&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9003&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the new dev_appserver failing with ImportError.&lt;/span&gt;&lt;br /&gt;
Import Errorによって新しいdev_appserverが失敗する課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9008&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9008&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with Sqlite3 being unable to open a database file in the new dev_appserver.新しいdev_appserverで、Sqlite3のデータベースファイルを開けない課題を修正しました。&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9031&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9031&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with serving urls that contain unicode characters in the new dev_appserver.&lt;/span&gt;&lt;br /&gt;
新しいdev_appserverで、unicode文字列を含むurlを出力してしまう課題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=9040&quot;&gt;https://code.google.com/p/googleappengine/issues/detail?id=9040&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/1753814674647548505/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/04/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1753814674647548505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1753814674647548505'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/04/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.7'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-8037399858923474849</id><published>2013-03-22T12:27:00.000+09:00</published><updated>2013-03-22T12:27:48.624+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.6</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.6が出ましたね。&lt;br /&gt;
&lt;br /&gt;
練習の為に訳してみましたので公開します。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.6 - March 19, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The new and improved development appserver, which was previewed last release, now becomes the default. The old development appserver has been renamed to old_appserver.py and will remain available until the first release after 1 July 2013 when it will be removed from the SDK. For more information, please visit &lt;a href=&quot;http://developers.google.com/appengine/docs/python/tools/devserver&quot;&gt;http://developers.google.com/appengine/docs/python/tools/devserver&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
新しく改良された開発appserver（プレビュー版としては最後のリリースとなります）は、デフォルトとなりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;A Go runtime has been added to the new and improved development appserver.&lt;/span&gt;&lt;br /&gt;
Goランタイムが、新しいappserverに追加されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Debug log level for the runtime has been enabled.&lt;/span&gt;&lt;br /&gt;
ランタイムのデバッグログレベルが有効になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Improvements to the App Engine billing system will be rolled out gradually to all apps. Fore more information, please visit http://developers.google.com/appengine/docs/billing&lt;/span&gt;&lt;br /&gt;
App Engineの課金システムの改善は、すべてのアプリに徐々にロールアウトされます。詳しい情報は、&lt;a href=&quot;http://developers.google.com/appengine/docs/billing&quot;&gt;http://developers.google.com/appengine/docs/billing&lt;/a&gt;をご覧ください。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The application summary no longer displays the default version of a running application, instead it lists the application as &#39;RUNNING&#39;. In an upcoming release applications will have multiple logical sub components, each of which will have a default version. This UI update is meant to align with this functionality.&lt;/span&gt;&lt;br /&gt;
アプリケーションの概要には、実行中のアプリケーションのデフォルトのバージョンが表示されず、代わりに、アプリケーション一覧に&quot;実行中&quot;などが表示されます。近日リリース予定のアプリケーションでは、デフォルトのバージョンを持つことになり、それぞれが、複数の論理サブコンポーネントを持つことになります。このUIの更新は、この機能に合わせることになっています。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Projection queries are now a fully supported GA feature.&lt;/span&gt;&lt;br /&gt;
プロジェクション クエリは、GoogleAppEngineの正式な機能としてフルサポートされるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The XMPP API now has multi-JID get_presence. This provides the ability to get the availability of multiple users.&lt;/span&gt;&lt;br /&gt;
XMPP APIはmulti-JIDのget_presenceを持つようになりました。これは、複数のユーザーの空き時間を取得する機能を提供します。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Django 1.4 and Webob 1.2.3 are now promoted to GA.&lt;/span&gt;&lt;br /&gt;
Django 1.4 と Webob 1.2.3が Google App Engineの 正式機能に昇格されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Apps now have the ability to fopen() files that are declared as static files in app.yaml using the application_readable flag.&lt;/span&gt;&lt;br /&gt;
アプリからfopen()を使ってファイルを開けるようになりました。app.yamlにて、application_readableフラグを使用して静的ファイルを指定しておく必要があります。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The dev_appserver now allocates automatic ids using the &#39;scattered&#39; id allocation policy by default. For more information, please see &quot;Specifying the Automatic ID Allocation Policy&quot;: https://developers.google.com/appengine/docs/python/tools/devserver#Using_the_Datastore&lt;/span&gt;&lt;br /&gt;
dev_appserverは現在、デフォルトで &#39;散乱&#39; IDの割り当てポリシーを使用して、自動IDを割り当てます。詳細については、以下を参照してください。&quot;自動番号割り当てのポリシーの指定&quot;：&lt;a href=&quot;https://developers.google.com/appengine/docs/python/tools/devserver＃Using_the_Datastore&quot;&gt;https://developers.google.com/appengine/docs/python/tools/devserver＃Using_the_Datastore&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Admin console dashboard charts and current load/errors reports will be moving to a new, more reliable backend. The change will be gradually rolling to users of admin console over the next few weeks.&lt;/span&gt;&lt;br /&gt;
管理コンソールのダッシュボード·チャートとload/errorのレポートには、新しくより信頼性の高いバックエンドが使われます。この変更は数週間で管理コンソールのユーザーに徐々にローリングされます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The experimental Search API&#39;s ability to explicitly sort search results by SortExpression.RANK_FIELD_NAME (i.e. order_id) field in ascending order has been removed.&lt;/span&gt;&lt;br /&gt;
検索結果をSortExpression.RANK_FIELD_NAME（すなわちorder_id）はフィールドで明示的に昇順にソートするための実験的検索APIの機能は削除されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Globally consistent indexes in the experimental Search API are now deprecated and will be removed in the next release.&lt;/span&gt;&lt;br /&gt;
SearchAPIの実験的機能、グローバルに一貫性のあるインデックスは廃止され、次のリリースで削除されます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Task Queue tasks may now be added and deleted asynchronously. This allows applications to perform common task queue operations without blocking. This is an experimental feature.&lt;/span&gt;&lt;br /&gt;
タスクキューのタスクを非同期に追加・削除することができるようになりました。これにより、アプリケーションはブロックせずに一般的なタスクのキュー操作を実行することができます。これは実験的な機能です。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;In the experimental MapReduce framework, shards that encounter Files API errors will retry three times before the entire job fails.&lt;/span&gt;&lt;br /&gt;
実験中のMapReduceフレームワークでは、登録されたジョブが失敗する前に、シャードのFilesAPIのエラーに対して３回リトライします。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Google Protocol RPC now supports deserializing and reserializing of unexpected fields.&lt;/span&gt;&lt;br /&gt;
Google Protocol RPC は、未予定のフィールドに対するデシリアライアズと再シリアライズを サポートするよになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;A new Google Protocol RPC field type for supporting datetime values has been added. For more information, please visit https://developers.google.com/appengine/docs/python/tools/protorpc&lt;/span&gt;&lt;br /&gt;
Google Protocol RPC フィールドに、datetime値をサポートするために、新しい型が追加されました。詳細については、&lt;a href=&quot;https://developers.google.com/appengine/docs/python/tools/protorpc&quot;&gt;https://developers.google.com/appengine/docs/python/tools/protorpc&lt;/a&gt;をご覧下さい&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue which caused an incorrect server error message when setting the default version on the admin console, though the version was set correctly.&lt;/span&gt;&lt;br /&gt;
管理コンソール上でデフォルトのバージョンを設定する際に、バージョンが正しく設定されていたにもかかわらず、誤ってサーバー·エラー·メッセージの原因となった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue where get_indexes() didn&#39;t correctly populate the namespace when run from the new dev_appserver.&lt;/span&gt;&lt;br /&gt;
新しいdev_appserverで実行する際に、GET_INDEXES（）が正しく名前空間を使っていなかった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the new dev_appserver failing on invalid login cookies. It now uses type=&quot;email&quot; for email in the login form.&lt;/span&gt;&lt;br /&gt;
新しいdev_appserverが無効なログインクッキーで失敗する問題を修正しました。今ではログインフォームで電子メールのための=型 &quot;email&quot;を使用しています。&lt;br /&gt;
（訳注：@を含まないクッキーが残っているとエラーが発生していたらしいです）&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=36&quot;&gt;https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=36&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with the new dev_appserver to have fix_sys_path add the necessary libraries to sys.path making it now compatible with the testbed.&lt;/span&gt;&lt;br /&gt;
新しいdev_appserverの問題を修正しました。fix_sys_path（）で追加するsys.pathに必要なライブラリを加え、テストベッドが動作するようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=45&quot;&gt;https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=45&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/8037399858923474849/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/03/google-app-engine-python-sdk-release_22.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/8037399858923474849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/8037399858923474849'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/03/google-app-engine-python-sdk-release_22.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.6'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-9212210504182568640</id><published>2013-03-04T12:58:00.000+09:00</published><updated>2013-03-04T13:03:49.539+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.5</title><content type='html'>毎回亀ですが、&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.5が出てますよね。&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://gae-p.blogspot.jp/2013/02/google-app-engine-sdk-175.html&quot;&gt;すでにわかりやすく訳していらっしゃる方もいますが&lt;/a&gt;、&lt;br /&gt;
練習の為に訳してみましたので公開します。&lt;br /&gt;
&lt;br /&gt;
例によって訳の正確性は保証できません。&lt;br /&gt;
まだexperimentalですが、dev_appserver2に期待ですね。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.5 - February 13, 2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;New instance classes F4_1G and B4_1G are now available. These instances have compute capacity equal to F4/B4 but with a maximum of 1G RAM instead of 512MB.&lt;/span&gt;&lt;br /&gt;
新しいインスタンスのクラス「F4_1G」と「B4_1G」が利用可能になりました。これらの処理能力は F4/B4と同じですが、メモリが512MBから1GBになっています。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Logs API stub now uses sqlite in the dev_appserver. Please note that the --persist_logs flag is still needed in order for logs to be saved.&lt;/span&gt;&lt;br /&gt;
Logs APIのdev_appserverのスタブがsqliteを使うようになりました。いまだに、ログを保存するためには、--persist_logs フラグが必要なことに注意してください。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The deprecated classes and functions AddError, AddResult, ListIndexesResponse, ListResponse, RemoveError, RemoveResult, and list_indexes were removed from the Search API in the SDK. If your app references any of these classes or functions, you must deploy a new version without these references before the next release of App Engine. If you do not do this, your app may stop working in production.&lt;/span&gt;&lt;br /&gt;
Search APIの廃止されたクラスや関数のAddError, AddResult, ListIndexesResponse, ListResponse, RemoveError, RemoveResult, list_indexes は、削除されました。あなたのアプリがこれらを参照している場合は、参照しないように修正したアプリをデプロイする必要があります。もしもそうしなかった場合、あなたのアプリは本番環境で動作しなくなります。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Conversion API, which was decommissioned last release, has been removed from the SDK. In a future release, the API will be removed from the runtime and any attempt to import the library will raise an exception. Applications in production that import the library should be fixed as soon as possible.&lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Matplotlib v1.2.0 is now available as an experimental feature.&lt;/span&gt;&lt;br /&gt;
Matplotlib v1.2.0が実験的機能として利用できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Django 1.4 has been upgraded to 1.4.3. This is an experimental feature.&lt;/span&gt;&lt;br /&gt;
Django 1.4は、Django 1.4.3にアップグレードされました。これは実験的な機能です。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;We are including a preview of a new and improved version of our development server. The new version is faster, provides more faithful support for complex multi-threaded applications, has better support for Datastore and supports more libraries. Try dev_appserver2.py in the SDK. This is an experimental feature. For more information, please visit http://code.google.com/p/appengine-devappserver2-experiment/&lt;/span&gt;&lt;br /&gt;
新しくて改良された開発サーバのプレビュー版を含めました。このサーバは、より速く、複雑なマルチスレッドアプリケーションのより忠実なサポートし、データストアをより良くサポートし、多くのライブラリのより良いサポートします。SDKの dev_appserver2.pyを試してください。これは実験的な機能です。もっと情報が欲しい方は、&lt;a href=&quot;http://code.google.com/p/appengine-devappserver2-experiment/&quot;&gt;http://code.google.com/p/appengine-devappserver2-experiment/&lt;/a&gt;を見て下さい。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Channel API now has the ability to send channel messages from any app version or backend regardless of where the channel was created.&lt;/span&gt;&lt;br /&gt;
チャネルAPIは、チャネルが作成された場所（アプリケーションのバージョン、バックエンドかどうか）に関わらず、チャネルメッセージを送ることが出来るようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5123&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5123&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The URL Fetch service now supports PATCH method requests.&lt;/span&gt;&lt;br /&gt;
URLフェッチサービスは、PATHメソッドをサポートするようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6316&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6316&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Mail API can now send mail bounce notifications to the app. The notification will be delivered to /_ah/bounce if mail_bounce inbound services are enabled.&lt;/span&gt;&lt;br /&gt;
メールAPIは、メールのバウンスをアプリケーションに通知できるようになりました。app.yamlでinbound servicesとしてメールのバウンスを有効にしていると、通知が /_ah/bounce に届きます。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7451&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7451&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;The Blobstore service now returns the created filename instead of the blobKey when using Cloud Storage&lt;/span&gt;&lt;br /&gt;
Blobstoreサービスは、クラウドストレージサービスが使われている際にblobKeyの代わりに作成されたファイル名を返すようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8337&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8337&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with os.urandom throwing an exception in dev_appserver2 when using OS X.&lt;/span&gt;&lt;br /&gt;
dev_appserver2でos.urandomを使用時に、OS Xで例外が発生していた問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=23&quot;&gt;http://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=23&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #666666; font-size: x-small;&quot;&gt;Fixed an issue with time.tzset not existing in dev_appserver2 for Windows.&lt;/span&gt;&lt;br /&gt;
time.tzsetがWindowsのdev_appserver2に存在していない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=26&quot;&gt;https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=26&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/9212210504182568640/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/03/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/9212210504182568640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/9212210504182568640'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/03/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.5'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6206196040460939806</id><published>2013-02-13T13:00:00.001+09:00</published><updated>2013-03-23T16:55:30.192+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Sphinx"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><title type='text'>Sphinx：検索結果が文字化ける場合の対策</title><content type='html'>仕事でSphinx使っていて、趣味でSphinxのテーマを作ってます。&lt;br /&gt;
&lt;br /&gt;
Sphinx1.1からは、日本語もちゃんと検索出来るようになったので、&lt;br /&gt;
隠していた検索ボックスを表示するようにしました。&lt;br /&gt;
&lt;br /&gt;
Sphinxの検索機能では、&lt;br /&gt;
&lt;br /&gt;
conf.pyでhtml_copy_source = Trueを指定していると、&lt;br /&gt;
検索時に検索結果を表示してくれます。&lt;br /&gt;
&lt;br /&gt;
この結果表示は、ソースファイルのコピーを参照して、&lt;br /&gt;
そのままhtmlに表示しているので、&lt;br /&gt;
ソースとhtmlの文字コードを変えていると、文字化けが発生します。&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
その対策方法を書きます。&lt;/div&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;&lt;u&gt;対策方法（その１）searchtools.jsを書き換える&lt;/u&gt;&lt;/h3&gt;IE6～9を無視すれば以外と簡単です。&lt;br /&gt;
以下の２つの記事を参照して、searchtools.jsの処理を一部変えてみたところ、Firefoxで動作するところまで確認しました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://d.hatena.ne.jp/IkeT/20080910/1221021169&quot;&gt;UbiquityでHTMLコンテンツとマッシュアップ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://lostlinksearch.net/blog/2012/03/ajax%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E3%81%A8%E3%81%9D%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%B3%95/&quot;&gt;ajaxの文字化けとその解決法&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
しかし、職場で使っているのは主にIE8なので、上記の対策では無理でした。&lt;br /&gt;
頑張って、以下の記事に書いてある内容を取り込めばうまくいきそうなのですが、ブラウザの場合分けとか書くのは美しくないと思ったので試してないです。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://gurimmer.lolipop.jp/daihakken/2012/05/22/javascriptajaxxmlhttprequest%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9Fajax%E3%81%AE%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89/&quot;&gt;XMLHttpRequestを使ったAjaxのエンコード&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h3&gt;&lt;u&gt;対策案（その2）ソースファイルコピー時に文字コードを変換させる&lt;/u&gt;&lt;/h3&gt;Sphinxがソースファイルをコピーする処理を改造して、htmlの文字コードに合わせて文字コードを変換するようにれば良いはずです。&lt;br /&gt;
でもガリガリ書く気力が対策案１の途中で尽きてしまったので試せてません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;&lt;u&gt;対策案（その3）ソースとhtmlのエンコーディングをあわせる&lt;/u&gt;&lt;/h3&gt;これが一番簡単だと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;私の場合、もともと以下のような設定だったのですが、&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot; title=&quot;conf.py（抜粋）&quot;&gt;source_encoding = &#39;mbcs&#39;
html_output_encoding = &#39;utf-8&#39;
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;これをこう変えました。&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot;&gt;source_encoding = &#39;utf-8&#39;
html_output_encoding = &#39;utf-8&#39;&lt;/pre&gt;文字コードを変換するpythonスクリプトとかいるので、結構めんどかったです。&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;本当は、こんな感じにしたいのですが、&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot;&gt;source_encoding = &#39;mbcs&#39;
html_output_encoding = &#39;mbcs&#39;
&lt;/pre&gt;いろいろ問題が見つかったので、諦めました。&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6206196040460939806/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/02/sphinx.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6206196040460939806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6206196040460939806'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/02/sphinx.html' title='Sphinx：検索結果が文字化ける場合の対策'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6921738193070100997</id><published>2013-01-14T22:31:00.000+09:00</published><updated>2013-01-14T22:32:07.260+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.4</title><content type='html'>亀な話題ですが、&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.4が出てますよね。&lt;br /&gt;
いまさらですが、訳を公開します。&lt;br /&gt;
例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.4 - December 13, 2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Background threads is now a GA feature.&lt;/span&gt;&lt;br /&gt;
バックグラウンド スレッドはGoogle App Engine の機能になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Traffic Splitting is now a GA feature.&lt;/span&gt;&lt;br /&gt;
トラフィック分割はGoogleAppEngineの機能になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Task Queue Statistics is now a GA feature.&lt;/span&gt;&lt;br /&gt;
タスクキューの統計はGoogleAppEngineの機能になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Logs API now has the ability to fetch requests based on a list of request_ids. Currently, this only works in production and is not supported in dev_appserver.&lt;/span&gt;&lt;br /&gt;
ログAPIは、リクエストIDのリストからリクエストをフェッチする機能を持ちました。今のところ、この機能はプロダクション環境のみで動作し、dev_appserverではサポートされません。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Python Interpreter has been upgraded to 2.7.3.&lt;/span&gt;&lt;br /&gt;
Python2.7のインタープリターは、Python2.7.3にアップグレードされました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;WebOb 1.2.3 is now available for Python 2.7. Users using the undocumented 1.2.2 should update their app, since that version will be removed in the next release.&lt;/span&gt;&lt;br /&gt;
Python2.7では、WebObの1.2.3を利用できるようになりました。1.2.2は次のバージョンで削除されますので、1.2.2を利用しているユーザは、アプリを更新するべきです。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;DISTINCT for Datastore queries is now available as an experimental feature.&lt;/span&gt;&lt;br /&gt;
データストアのクエリでDISTINCTは、実験的機能として利用できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Matplotlib v1.1.1 is now available as an experimental feature.&lt;/span&gt;&lt;br /&gt;
Matplotlib v1.1.1は実験的機能として利用できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The decommissioned Conversion API has been removed.&lt;/span&gt;&lt;br /&gt;
The decommissioned Conversion APIは廃止されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added a warning that the interactive console will be disabled if a user runs dev_appserver with the --address flag.&lt;/span&gt;--addressフラグをつけてdev_appserverを起動した場合に、インタラクティブコンソールが無効になることが警告されるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;JSON properties are now restrictable to list or dictionaries in NDB.&lt;/span&gt;&lt;br /&gt;
NDBのJSONプロパティは、リストや辞書に変換されるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=223&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=223&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Users can now set how many columns can be viewed in the Datastore Viewer via a drop-down menu which customizes the number of columns displayed.&lt;/span&gt;&lt;br /&gt;
ドロップダウンメニューでデータストアビューアーに表示される列の数をカスタマイズできるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8158&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8158&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with expandos throwing an error when containing nested expandos in NDB.&lt;/span&gt;&lt;br /&gt;
NDBにおけるexpandoを入れ子にした際のエラーを修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=216&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=216&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with properties not being added to structured properties in NDB.&lt;/span&gt;&lt;br /&gt;
Structuredプロパティに追加されていないプロパティがあるNDBの問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=220&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=220&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with PyCrypto raising an ImportError when installing globally into site-packages.&lt;/span&gt;&lt;br /&gt;
PyCryptoをsite-packagesにインストールしている際に、ImportErrorが発生する問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=1627&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=1627&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with PyCrypto not working with OSX 10.8 or Ubuntu Precise.&lt;/span&gt;&lt;br /&gt;
OSX 10.8 or Ubuntu PreciseでPyCryptoが動作していなかった問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7925&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7925&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with backends.get_instance returning thread ID instead of integer instance ID in production.&lt;/span&gt;&lt;br /&gt;
backends.get_instanceが、整数のインスタンスIDの代わりに、スレッドIDを返していた問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8338&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8338&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with Datastore Backup failing when a schema has a very large number of properties.&lt;/span&gt;&lt;br /&gt;
とても大きな数のプロパティを持つスキーマは、データストアのバックアップに、失敗する問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8363&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8363&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with dev_appserver not reloading changed code.&lt;/span&gt;&lt;br /&gt;
コードが変更された際にリロードされないdev_appserverの問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8383&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8383&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with custom ordered queries not working using sqlite on the dev_appserver.&lt;/span&gt;&lt;br /&gt;
custom orderedクエリがdev_appserverのsqliteで動作していなかった問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8390&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8390&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with users being unable to change Authentication Type after app creation in the Admin Console.&lt;/span&gt;&lt;br /&gt;
アプリを作成した後で、Admin Consoleで認証設定を変更できなかった問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8394&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8394&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6921738193070100997/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2013/01/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6921738193070100997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6921738193070100997'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2013/01/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.4'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-1287194858352759922</id><published>2012-11-19T01:08:00.004+09:00</published><updated>2012-11-19T01:08:38.560+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Sphinx"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><title type='text'>Solarized化してみました</title><content type='html'>&lt;a href=&quot;http://docs.btnb.jp/solarized_theme/&quot;&gt;Solarized Sphinx Theme&lt;/a&gt;というSphinxのテーマを見て感化されました。&lt;br /&gt;
&lt;br /&gt;
長く見るのに適した配色のほうがいいよな、ってことで職場のSphinxのテーマの配色も、このブログの配色も、みんな&lt;a href=&quot;http://ethanschoonover.com/solarized&quot;&gt;Solarized&lt;/a&gt;っぽくしてみました。&lt;br /&gt;
&lt;br /&gt;
・・・JINS PCと一緒で、そのうち飽きる気がしないでもないです。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/1287194858352759922/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/11/solarized.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1287194858352759922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1287194858352759922'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/11/solarized.html' title='Solarized化してみました'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6881395908992557687</id><published>2012-11-12T19:02:00.004+09:00</published><updated>2012-11-13T00:27:40.798+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><category scheme="http://www.blogger.com/atom/ns#" term="開発メモ"/><title type='text'>WELL512a, WELL1024a を Pythonで実装</title><content type='html'>&lt;a href=&quot;http://mtg-guilds.blogspot.jp/2012/11/well512python.html&quot;&gt;前回&lt;/a&gt;の続きです。&lt;br /&gt;
&lt;br /&gt;
前回のコードは、元にしたプログラムがゲーム用に最適化されちゃっていて、もとの論文と比較しにくかったので、乱数生成部分を書き直しました。&lt;br /&gt;
&lt;br /&gt;
WELL512a と WELL1024a, はC版と同じ結果が返ることを確認しています。&lt;br /&gt;
それ以外は、たぶん動くけど未検証なので、コメントアウトしてあります。&lt;br /&gt;
（誰か検証してください！）&lt;br /&gt;
&lt;br /&gt;
あと、jumpahead()は、未実装にしました。seed()使って下さい。&lt;br /&gt;
本来の意味だと、数学的に離れた位置にジャンプするべきなのですが、&lt;br /&gt;
やり方がわからないんで、前はseed()を使ってお茶を濁してました。&lt;br /&gt;
これは、かえって混乱のもとなのでやめました。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot;&gt;# -*- coding: utf-8  -*-
# ---------------------------------------------------------------------------
# WELL(512a, 1024a)のPython実装
#
# 元の論文との対応付けのし易さを最重視して実装しています。
# 状態の初期化にSHA512を使うのがオリジナルのアイディアです。
# 512より多い状態を初期化する際を考慮して、
# SHA512の繰り返しとXorShiftのXORで状態を初期化しています。
#
# パフォーマンスを求める方は、CやC++版を使って下さい。
#
# このコードを作成するにあたり、参考にしたのは、以下です
#
#   - http://d.hatena.ne.jp/fgshun/20090724/1248446400
#   - http://www.iro.umontreal.ca/~panneton/WELLRNG.html
#   - http://www3.ocn.ne.jp/~harase/megenerators.html
#   - http://bitbucket.org/sergiu/random/src/tip/well.hpp
#   - http://en.wikipedia.org/wiki/Well_Equidistributed_Long-period_Linear
#
# このコードのライセンスは、MITでお願いします。
#
# ---------------------------------------------------------------------------

from random import Random as _Random
from os import urandom as _urandom
from binascii import hexlify as _hexlify
from hashlib import sha512 as _sha512
from itertools import cycle as _cycle, izip as _izip

# ---------------------------------------------------------------------------
# 各WELLのベースクラス定義
#
# random_int32()が未実装なので、単独では使用できません。
# init_subclassと_M1～_M6を使用して、random_int32()を初期化して使って下さい。
# ---------------------------------------------------------------------------

def _xor128(x=123456789, y=362436069, z=521288629, w=88675123):
    while True:
        t = x^((x &amp;lt;&amp;lt; 11) &amp;amp; 0xffffffff)
        x = y
        y = z
        z = w
        w = (w ^ (w &amp;gt;&amp;gt; 19)) ^ (t ^ (t &amp;gt;&amp;gt; 8))
        yield w


class _WELLBase(_Random):

    _W = 32
    _MASK = 2 ** _W - 1

    def __init__(self, seed=None):

        self.state = self._gen_seed(seed)
        self._check_zerostate()

        self.gauss_next = None
        self.index = 0

    def _check_zerostate(self):
        if self.state == [0] * self._R: 
            self.state = self._gen_seed(self.VERSION)

    @classmethod
    def _gen_seed(cls, a=None):
        if a is None:
            try:
                a = int(_hexlify(_urandom(16)), 16)
            except NotImplementedError:
                import time
                a = int(time.time() * 256)

        if not isinstance(a, basestring):
            a = str(a)

        hashed_states = _sha512(a).hexdigest()
        states = [int(hashed_states[i: i+8], 16) for i in range(0, 128, 8)]
        return [xor128 ^ sha512 for (i, xor128, sha512) in _izip(range(cls._R), _xor128(), _cycle(states))]

    def seed(self, a=None):
        self.__init__(a)

    def random_int32(self):
        raise NotImplementedError

    def random(self): 
        return self.random_int32() * 2.3283064365386963e-10

    def random53(self): 
        return self.getrandbits(53) * (1.0 / 9007199254740992.0)

    def getstate(self): 
        return (self.VERSION, tuple(self.state),
                self.gauss_next, self.index) 

    def setstate(self, state): 
        version = state[0] 
        if version == self.VERSION: 
            self.state = list(state[1])
            self.gauss_next = state[2]
            self.index = state[3] 
        else: 
            raise ValueError(&quot;state with version %s passed to &quot;
                             &quot;setstate() of version %s&quot; %
                             (version, self.VERSION)) 

    def jumpahead(self, n):
        raise NotImplementedError

    def getrandbits(self, k=32):
        ret = self.random_int32()
        for _ in range((k - 1) // 32): 
            ret = (ret &amp;lt;&amp;lt; 32) ^ self.random_int32()
        return ret &amp;gt;&amp;gt; ((- k) % 32)

    @classmethod
    def init_random_int32(cls, T0, T1, T2, T3, T4, T5, T6, T7, m1, m2, m3, me_mask=0):

        MASKU = cls._MASK &amp;gt;&amp;gt; (cls._W - cls._P)
        MASKL = cls._MASK &amp;lt;&amp;lt; cls._P
        r = cls._R

        def random_int32(self):

            s = self.state
            newV1 = i = self.index
            newV0 = i_VRm1 = (i - 1) % r
            i_VRm2 = (i - 2) % r
            vm2 = s[(i + m2) % r]

            z0 = (s[i_VRm1] &amp;amp; MASKL) | (s[i_VRm2] &amp;amp; MASKU);
            z1 = T0(s[i]) ^ T1(s[(i + m1) % r])
            z2 = T2(vm2 ) ^ T3(s[(i + m3) % r])
            s[newV1] = z3 = z1 ^ z2
            s[newV0] = z4 = T4(z0) ^ T5(z1) ^ T6(z2) ^ T7(z3)
            self.index = i_VRm1

            return z4 ^ (vm2 &amp;amp; me_mask)

        cls.random_int32 = random_int32

    @classmethod
    def _output_after_tempering(cls, b, c):
        random_int32 = cls.random_int32
        def random_int32_after_tempering(self):
            y = random_int32(self)
            y = y ^ ((y &amp;lt;&amp;lt; 7) &amp;amp; b)
            y = y ^ ((y &amp;lt;&amp;lt; 15) &amp;amp; c)
            return y
        cls.random_int32 = random_int32_after_tempering

    @classmethod
    def _shift(cls, k):
        MASK = cls._MASK
        if k &amp;gt;= 0:
            return lambda v: (v &amp;gt;&amp;gt; k)
        else:
            k_abs = abs(k)
            return lambda v: (v &amp;lt;&amp;lt; k_abs) &amp;amp; MASK

    @classmethod
    def _M0(cls):
        return lambda v: 0

    @classmethod
    def _M1(cls):
        return lambda v: v

    @classmethod
    def _M2(cls, t):
        return cls._shift(t)

    @classmethod
    def _M3(cls, t):
        t_shift = cls._shift(t)
        return lambda v: v ^ t_shift(v)

    @classmethod
    def _M4(cls, a):
        w1 = cls._W - 1
        return lambda x: (x &amp;gt;&amp;gt; 1) ^ ((x &amp;amp; 1) * a)

    @classmethod
    def _M5(cls, t, b):
        t_shift = cls._shift(t)
        return lambda v: v ^ (t_shift(v) &amp;amp; b)

    @classmethod
    def _M6(cls, r, a, ds, dt):
        q_shift = cls._shift( - r)
        wq_shift = cls._shift(cls._W - r)
        return lambda x: ((q_shift(x) ^ wq_shift(x)) &amp;amp; ds) ^ (a if (x &amp;amp; dt) != 0 else 0)

# ------------------------------------------------------
# 個別のWELLの定義
# ------------------------------------------------------



class WELL512a(_WELLBase):
    VERSION = u&quot;WELL512a ver0&quot;
    _K = 512  # not use
    _R = 16
    _P = 0

WELL512a.init_random_int32(
    m1=13, m2=9, m3=5,
    T0=WELL512a._M3(-16), T4=WELL512a._M3(-2),
    T1=WELL512a._M3(-15), T5=WELL512a._M3(-18),
    T2=WELL512a._M3(11),  T6=WELL512a._M2(-28),
    T3=WELL512a._M0(),    T7=WELL512a._M5(-5, 0xda442d24))



class WELL1024a(_WELLBase):
    VERSION = u&quot;WELL1024a ver0&quot;
    _K = 1024  # not use
    _R = 32
    _P = 0

WELL1024a.init_random_int32(
  m1=3, m2=24, m3=10,
  T0=WELL1024a._M1(),    T4=WELL1024a._M3(-11),
  T1=WELL1024a._M3(8),   T5=WELL1024a._M3(-7),
  T2=WELL1024a._M3(-19), T6=WELL1024a._M3(-13),
  T3=WELL1024a._M3(-14), T7=WELL1024a._M0())


# 以下、未検証のためコメントアウト
#
#class WELL1024b(_WELLBase):
#    VERSION = u&quot;WELL1024b ver0&quot;
#    _K = 1024  # not use
#    _R = 32
#    _P = 0
#
#WELL1024b.init_random_int32(
#  m1=22, m2=25, m3=26,
#  T0=WELL1024b._M3(-21),        T4=WELL1024b._M3(-14),
#  T1=WELL1024b._M3(17),         T5=WELL1024b._M3(-21),
#  T2=WELL1024b._M4(0x8bdcb91e), T6=WELL1024b._M1(),
#  T3=WELL1024b._M3(15),         T7=WELL1024b._M0())
#
#class WELL19937a(_WELLBase):
#    VERSION = u&quot;WELL19937a ver0&quot;
#    _K = 19937  # not use
#    _R = 624
#    _P = 31
#
#WELL19937a.init_random_int32(
#  m1=70, m2=170, m3=449,
#  T0=WELL19937a._M3(-25), T4=WELL19937a._M1(),
#  T1=WELL19937a._M3(27),  T5=WELL19937a._M3(-9),
#  T2=WELL19937a._M2(9),   T6=WELL19937a._M3(-21),
#  T3=WELL19937a._M3(1),   T7=WELL19937a._M3(21))
#
#class WELL19937b(_WELLBase):
#    VERSION = u&quot;WELL19937b ver0&quot;
#    _K = 19937  # not use
#    _R = 624
#    _P = 31
#
#WELL19937b.init_random_int32(
#  m1=203, m2=613, m3=123,
#  T0=WELL19937b._M3(7),   T4=WELL19937b._M3(-19),
#  T1=WELL19937b._M1(),    T5=WELL19937b._M2(-11),
#  T2=WELL19937b._M3(12),  T6=WELL19937b._M3(4),
#  T3=WELL19937b._M3(-10), T7=WELL19937b._M3(-10))
#
#class WELL19937c(WELL19937a):
#    VERSION = u&quot;WELL19937c ver0&quot;
#
#WELL19937c._output_after_tempering(0xe46e1700, 0x9b868000)
#
#class WELL44497a(_WELLBase):
#    VERSION = u&quot;WELL44497a ver0&quot;
#    _K = 44497  # not use
#    _R = 1391
#    _P = 15
#
#WELL44497a.init_random_int32(
#  m1=23, m2=481, m3=229,
#  T0=WELL44497a._M3(-24), T4=WELL44497a._M1(),
#  T1=WELL44497a._M3(30),  T5=WELL44497a._M3(20),
#  T2=WELL44497a._M3(-10), T6=WELL44497a._M6(9, 0xb729fcec,
#                                            0xfbffffff, 0x00020000),
#  T3=WELL44497a._M2(-26), T7=WELL44497a._M1())
#
#class WELL44497b(WELL44497a):
#    VERSION = u&quot;WELL44497b ver0&quot;
#
#WELL44497b._output_after_tempering(0x93dd1400, 0xfa118000)
#
# EOF
&lt;/pre&gt;&lt;br /&gt;
イッシーの利用目的だと、WELL512aでおそらく十分ですので、&lt;br /&gt;
要望や助力がない限りは、これ以上の実装例は増やさない予定です。&lt;br /&gt;
&lt;br /&gt;
英語読めなくても、論文とソースを見比べていけば、なんとななるはずです。&lt;br /&gt;
（イッシーがそうです）&lt;br /&gt;
&lt;br /&gt;
あと、init_random_int32()の、me_maskは、高次最適化の為のオプションです。&lt;br /&gt;
これはそのうち対応したいなぁ。&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6881395908992557687/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/11/well512a-well1024a-python.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6881395908992557687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6881395908992557687'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/11/well512a-well1024a-python.html' title='WELL512a, WELL1024a を Pythonで実装'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-7367057630990872824</id><published>2012-11-08T02:18:00.004+09:00</published><updated>2012-11-12T19:08:03.904+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="開発メモ"/><title type='text'>WELL512aをPythonで実装してみる</title><content type='html'>擬似乱数生成法「WELL」の512ビット版をPythonで実装してみました！&lt;br /&gt;
&lt;br /&gt;
このアルゴリズムは、まだマイナーのようですが、&lt;br /&gt;
有名なメルセンヌ・ツイスタ（Pythonの標準の乱数生成アルゴリズムでもあります）より新しく、より乱数の性質が良いとされているアルゴリズムです。&lt;br /&gt;
&lt;br /&gt;
WELLについては、以下のサイトのメモがまとまっています。&lt;br /&gt;
&lt;a href=&quot;http://lt140.blogspot.jp/2010/05/well.html&quot;&gt;http://lt140.blogspot.jp/2010/05/well.html&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Well_equidistributed_long-period_linear&quot;&gt;http://en.wikipedia.org/wiki/Well_equidistributed_long-period_linear&lt;/a&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
何気にまだちゃんと動作検証できていないのですが、勢い（だけ）でソースをのっけます。&lt;br /&gt;
jumpheadの動きが適当すぎるんで、もうちょっと変えます。&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;brush: python&quot;&gt;# -*- coding: utf-8  -*-
# WELL512aのPython実装
#
# 初期化にSHA512を使うのが特徴
#
# 参考にしたのは、以下です
#   - http://www.lomont.org/Math/Papers/2008/Lomont_PRNG_2008.pdf
#   - http://d.hatena.ne.jp/fgshun/20090724/1248446400
#
# このコードのライセンスは、MITでお願いします。
#

import random
from os import urandom as _urandom
from binascii import hexlify as _hexlify
from hashlib import sha512

_ALL_ZERO_LIST = [0] * 16


class WELL512(random.Random):

    VERSION = u&quot;WELL512 ver0&quot;

    def __init__(self, seed=None):
        _state = self._gen_seed(seed)

        if _state == _ALL_ZERO_LIST:
            self._state = self._gen_seed(self.VERSION)
        else:
            self._state = _state

        self.gauss_next = None
        self._index = 0

    @classmethod
    def _gen_seed(cls, a=None):
        if a is None:
            try:
                a = long(_hexlify(_urandom(16)), 16)
            except NotImplementedError:
                import time
                a = long(time.time() * 256) # use fractional seconds

        if not isinstance(a, basestring):
            a = str(a)

        seedhash = sha512(a)
        hashed_states = seedhash.hexdigest()
        return [long(hashed_states[i: i+8], 16) for i in range(0, 128, 8)]

    def seed(self, a=None):
        self.__init__(a)

    def _genrand_int32(self):
        index = self._index
        state = self._state

        a = state[index]
        c = state[(index + 13) &amp;amp; 15]
        b = (a ^ c ^ (a &amp;lt;&amp;lt; 16) ^ (c &amp;lt;&amp;lt; 15)) &amp;amp; 0xffffffff
        c = state[(index + 9) &amp;amp; 15]
        c ^= c &amp;gt;&amp;gt; 11
        a = state[index] = b ^ c
        d = a ^ ((a &amp;lt;&amp;lt; 5) &amp;amp; 3661901092L)
        index = (index + 15) &amp;amp; 15
        a = state[index]
        a ^= (b ^ d ^ (a &amp;lt;&amp;lt; 2) ^ (b &amp;lt;&amp;lt; 18) ^ (c &amp;lt;&amp;lt; 28)) &amp;amp; 0xffffffff
        state[index] = a
        self._index = index
        return a

    def random(self):
        #return self.getrandbits(53) * (1.0 / 9007199254740992.0)
        return self._genrand_int32() * 2.3283064365386963e-10

    def getstate(self):
        return (self.VERSION, tuple(self._state),
                self.gauss_next, self._index)

    def setstate(self, state):
        version = state[0]
        if version == self.VERSION:
            self._state = list(state[1])
            self.gauss_next = state[2]
            self._index = state[3]
        else:
            raise ValueError(&quot;state with version %s passed to &quot;
                             &quot;setstate() of version %s&quot; %
                             (version, self.VERSION))

    def jumpahead(self, n):
        self.__init__(n)

    def getrandbits(self, k=32):
        ret = self._genrand_int32()
        for _ in range((k - 1) // 32):
            ret = (ret &amp;lt;&amp;lt; 32) ^ self._genrand_int32()
        return ret &amp;gt;&amp;gt; ((- k) % 32)

# EOF
&lt;/pre&gt;&lt;br /&gt;
メルセンヌ・ツイスタ（以下MTと略します）は、とても優秀なアルゴリズムです。&lt;br /&gt;
ただ、一般に出回っている初期化アルゴリズムは、seedが32ビットで設計されているため、その周期を生かし切れないケースが稀にあります。&lt;br /&gt;
&lt;br /&gt;
例えばトランプのシャッフルです。52枚のカードをシャッフルするのに必要なパターンは、52の階乗（52×51×・・・×2×1)です。これは だいたい8.0×10の52乗になり、32ビットで表現できるパターン数をはるかに上回ります。&lt;br /&gt;
&lt;br /&gt;
ちなみにPythonのrandomモジュールも初期化の種は32ビットの整数なので、同様の問題点があります。&lt;br /&gt;
&lt;br /&gt;
乱数の周期は問題ないのですが、seedの桁数が不足しているんですよね。&lt;br /&gt;
かといってseedの桁数を増やしていくと、そのseedの生成にハッシュが必要になってしまいます。&lt;br /&gt;
&lt;br /&gt;
・・・まてよハッシュ？&lt;br /&gt;
SHA512の出力を、そのまま内部状態の初期化に使えば良いんじゃないだろうか？&lt;br /&gt;
&lt;br /&gt;
ただし、MTは、もっとも内部状態がすくないもので、521ビットの内部状態を持ちます。&lt;br /&gt;
&lt;br /&gt;
・・・むむ、9ビット足りない。なんかすっきりしないなー。&lt;br /&gt;
&lt;br /&gt;
そんなもやもやを抱えてWebを放浪していたところ、WELLにたどり着きました。&lt;br /&gt;
&lt;br /&gt;
WELLとは？&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;MTの開発者も関わっているMTより新しいアルゴリズム&lt;/li&gt;
&lt;li&gt;MTより少し計算コストがかかる&lt;/li&gt;
&lt;li&gt;MTより乱数の品質（高次の均等分布や零超過状態の回復）がより良い。&lt;/li&gt;
&lt;li&gt;サポートしている内部状態は512～444972ビット&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
・・・512ビット！ちょうどSHA512で初期化できるぞ！&lt;br /&gt;
&lt;br /&gt;
ということで、WELL512＋SHA512でシャッフルすることにしました。&lt;br /&gt;
&lt;br /&gt;
でも、バベルみたいにデッキが250枚くらいになると、512ビットでも不足するんですね。&lt;br /&gt;
そこまで考慮すると、WELL1024 + SHA512×2になりますね。でも、これはちょっと美しくない感じがするので、バベルは無視することにしました！まぁ人間のシャッフルよりはずっと良いですしね！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/7367057630990872824/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/11/well512python.html#comment-form' title='5 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7367057630990872824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7367057630990872824'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/11/well512python.html' title='WELL512aをPythonで実装してみる'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-6553702570753595038</id><published>2012-10-30T12:34:00.005+09:00</published><updated>2012-10-30T18:32:16.559+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.3</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.3が出てますね。&lt;br /&gt;
まだ、1.7.2が翻訳しきれていないのですが、公開します。&lt;br /&gt;
例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
今回は、SearchAPIまわりの整理が多いですね。&lt;br /&gt;
後は、Django 1.4 が Pytho2.7でフルサポートされたのが大きめのところですかね。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.3 - October 23, 2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Django 1.4 is now supported in Python 2.7&lt;/span&gt;&lt;br /&gt;
Django 1.4 が Pytho2.7でサポートされました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The file-based implementation of the Datastore stub will be deprecated soon. A warning message informing users that SQLLite stub will be the default stub soon is now displayed.&lt;/span&gt;&lt;br /&gt;
Datastoreのスタブのファイルベースの​​実装はもうすぐ非推奨になる予定です。もうすぐSQLLiteのスタブがデフォルトになる旨が、警告メッセージで表示されるようになっています。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Datastore Index stats now report type instead of representation-type.&lt;/span&gt;&lt;br /&gt;
DatastoreのIndexの統計情報は、表現形での型ではなく、型そのものをレポートするようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Rich sort expressions beyond single field names are now supported in the Search API for dev_appserver.&lt;/span&gt;&lt;br /&gt;
単一フィールドだけでないリッチなソート条件が、dev_appserverのSearchAPIでサポートされました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;search.MIN_NUMBER_VALUE and search.MAX_NUMBER_VALUE are now public in the Search API.&lt;/span&gt;&lt;br /&gt;
search.MIN_NUMBER_VALUE と search.MAX_NUMBER_VALUEが、Search APIで公式にサポートされました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Globally Consistent Indexes are now deprecated in the Search API.&lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;search.list_indexes() has been deprecated and replaced with search.get_indexes() in the Search API.&lt;/span&gt;&lt;br /&gt;
search.list_indexes（）は非推奨となり、SearchAPIのsearch.get_indexes（）に置き換えられました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Index.list_documents() has been deprecated and replaced with Index.get_range() in the Search API.&lt;/span&gt;&lt;br /&gt;
Index.list_documents（）がSearchAPIで非推奨となっており、Index.get_range（）に置き換えられました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added method Index.get(doc_id) to get a document by its ID in the Search API&lt;/span&gt;&lt;br /&gt;
ドキュメントをそのIDで取得するためのIndex.get(doc_id)メソッドがSearchAPIに加えられました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Index.add() has been deprecated and renamed to Index.put() in the Search API.&lt;/span&gt;&lt;br /&gt;
SearchAPIのIndex.add（）は非推奨となり、Index.put()に改名されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Index.remove() has been deprecated and renamed to Index.delete() in the Search API.&lt;/span&gt;&lt;br /&gt;
SearchAPIのIndex.remove()は非推奨となり、Index.delete()に改名されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The AddDocumentError and RemoveDocumentError classes, which were already deprecated, have been removed from the Search API.&lt;/span&gt;&lt;br /&gt;
非推奨となっていたAddDocumentErrorとRemoveDocumentErrorクラスは、SearchAPIから削除されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;OperationCode.object_id and OperationCode.document_id, which were already deprecated, have been removed from the Search API.&lt;/span&gt;&lt;br /&gt;
非推奨となっていたOperationCode.object_idとOperationCode.document_idクラスは、SearchAPIから削除されました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Users can now change authentication options after app creation&lt;/span&gt;&lt;br /&gt;
アプリを作成した後に認証オプションを変更することができるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=483&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=483&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with Datastore backup/restore finalization steps only looking at the default queue in Admin Console.&lt;/span&gt;&lt;br /&gt;
バックアップ/リストアの最終ステップでのみAdminConsoleのデフォルトキューを見ていた問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an NDB issue with Structured Properties not converting dict properly.&lt;/span&gt;&lt;br /&gt;
Structuredプロパティが辞書プロパティにコンバートされていなかったNDBの問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail id=207&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail id=207&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an NDB issue where multiple async transactions corrupt old Datastore connections.&lt;/span&gt;&lt;br /&gt;
複数の非同期トランザクションが、古いデータストア接続を壊していたNDBの問題を修正しました&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail id=209&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail id=209&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an NDB issue with fetch() with offset &gt; 1000 returning an empty list.&lt;/span&gt;&lt;br /&gt;
offsetが1000を超えるfetch()が空のリストを返していたNDBの問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail id=210&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail id=210&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with 2 factor authentication not giving useful error messages.&lt;/span&gt;&lt;br /&gt;
ファクタ認証が有用なエラーメッセージを与えていない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8020&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8020&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue in the Search API snippeting breaking if the field contains a single word in dev_appserver.&lt;/span&gt;&lt;br /&gt;
dev_appserverでフィールドが単一のワードを含むときにSearchAPIのスニペットが壊れていた問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=8171&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8171&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with PyCrypto AES cipher not running on dev_appserver.&lt;/span&gt;&lt;br /&gt;
PyCrypto AES暗号がdev_appserver上で実行されていない問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=81881&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=8188&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/6553702570753595038/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/10/google-app-engine-python-sdk-release_30.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6553702570753595038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/6553702570753595038'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/10/google-app-engine-python-sdk-release_30.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.3'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-1149461750243032576</id><published>2012-10-12T00:34:00.001+09:00</published><updated>2012-10-12T09:41:13.044+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.2</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.2が出てますね。&lt;br /&gt;
分量が多くて訳しきれていませんが、公開します（随時更新していきます）。&lt;br /&gt;
例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
今回も、細かい修正が多い感じですね。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.2 - September 18, 2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Paid applications can now upload Static files and Code &amp;gt; 1GB. Additional storage will be billed at $0.13/GB per month. Free applications will continue to be provided 1GB of storage at no charge. Free quota will apply per application.&lt;/span&gt;&lt;br /&gt;
課金を有効にしているアプリケーションでは、1GB以上の静的ファイルとコードをアップロードできるようになりました。追加のストレージは、月額$0.13/GBで請求されます。無料のアプリケーションは無償で1GBのストレージを提供し続けます。無料クォータは、アプリケーションごとに適用されます。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;PyCrypto 2.6 is now a GA feature for Python 2.7&lt;/span&gt;&lt;br /&gt;
PyCrypto 2.6はPython2.7のGoogleAppengineのfeatureです。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Conversion API will be decommissioned soon. Developers using this API will receive a warning message. Please find an alternative document conversion/OCR service.&lt;/span&gt;&lt;br /&gt;
Conversion APIは、まもなく廃止になります。このAPIを使用する開発者は、警告メッセージが表示されます。代替の文書変換/ OCRのサービスを見つけてください。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now fetch Task Queue Statistics. This allows you to fetch statistics and information about your task queue from within your application. Statistics include information such as the number of tasks in a queue, how many tasks were executed in the last minute and enforced rate. This is an experimental feature.&lt;/span&gt;&lt;br /&gt;
タスクキューの統計情報を取得できるようになりました。これにより、アプリケーションから、タスクキューの統計情報を取得できます。この情報には、キューの数、1分間で実行されたタスク、実行疎度についての情報、などが含まれます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added Timezone selection widget in Admin Console Admin Logs.&lt;/span&gt;&lt;br /&gt;
アドミンコンソールで、ログについてのタイムゾーンを選べるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added a warning message about caching when modifying or deleting datastore entities.&lt;/span&gt;&lt;br /&gt;
データストアのエンティティの削除や更新の際のキャッシングについての警告メッセージが加わりました（？）&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added a flush cache button to dev_appserver and Admin Console.&lt;/span&gt;&lt;br /&gt;
キャッシュの初期化のボタンがdev_appserver と アドミンコンソールに加わりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Attempting to update multiple entity groups in a single transaction in Datastore now throws an error suggesting to use XG transactions.&lt;/span&gt;&lt;br /&gt;
データストア内の単一のトランザクションで複数のエンティティグループを更新しようとすると、XGのトランザクションを使用するように示唆しているエラーを投げるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Search API now has a string maximum length limit of 2000 characters.&lt;/span&gt;&lt;br /&gt;
Search API の 最大長 が 2000文字になりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;We now allow a user with multiple google accounts the ability to create an app if they are an SMS verified user.&lt;/span&gt;&lt;br /&gt;
複数アカウントを持つユーザに対して、それらがSMSによって確認されたユーザであれば、アプリケーションを作成することを許可するようにしました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=1419&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=1419&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;A more useful error message now displays when a deployment fails due to local date/time settings being improperly set. &lt;/span&gt;&lt;br /&gt;
不適切に設定されたローカルの日時が原因のデプロイメントの失敗の際に、より有益なメッセージを表示するようにしました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2033&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2033&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Cron Descriptions may now include non-ASCII characters.&lt;/span&gt;&lt;br /&gt;
Cronの表題に非アスキー文字を利用できるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2641&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2641&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;App Config Service Delete App Version Call Count quota raised to 10,000/day.&lt;/span&gt;&lt;br /&gt;
App Config Service Delete App Version Call Countのクォータが10,000/日に引き上げられました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2808&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2808&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Queries with transactions are now supported in Remote API.&lt;/span&gt;&lt;br /&gt;
トランザクションを伴ったクエリがRemoteAPIでサポートされるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3643&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3643&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;There are now more descriptive error messages for Datastore Admin deadline exceeded errors in stack trace.&lt;/span&gt;&lt;br /&gt;
Detastore Adminのスタックとレースに収まらないエラーがわかりやすく表示されるようになりました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5413&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5413&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Replaced error code “Administrators cannot be removed right now” with a more descriptive message.&lt;/span&gt;&lt;br /&gt;
エラーコード“Administrators cannot be removed right now”（管理者は、たった今削除することができません） は、よりわかりやすいメッセージに置き換えられました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7080&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7080&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with namespace dropdown in Admin Console appearing blank even though the URL specified namespace is correct.&lt;/span&gt;&lt;br /&gt;
URLに指定された名前空間が正しくても、Admin Console にブランクのドロップダウンが表示されてしまう問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where Model.get_by_id() returns none in dev_appserver whereas this is not allowed in production.&lt;/span&gt;&lt;br /&gt;
ev_appserverでModel.get_by_id()がdNoneを返していた問題（本番環境ではNoneは返しません）を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with dev_appserver app_identity.get_default_version_hostname()&lt;/span&gt;&lt;br /&gt;
dev_appserverのapp_identity.get_default_version_hostname()の問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with mail service sendToAdmins() failing when using multi-arg message constructor.&lt;/span&gt;&lt;br /&gt;
メールサービスのsendToAdmins()で複数の値のメッセージのコンストラクタを使用すると失敗する問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with dev_appserver for mimetypes.guess_type()&lt;/span&gt;&lt;br /&gt;
dev_appserverのmimetypes.guess_type()の問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with runtime failing to use scope with OAuth under certain conditions.&lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with AppConfigNotFound error.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=686&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=686&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with static path with + in dev_appserver.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=888&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=888&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with support for models with large numbers of properties in Admin Console Dataviewer where previously the page would fail to render.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=937&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=937&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with Datastore viewer strftime not showing valid values before 1900.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=1086&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=1086&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with multi-line string property not editing correctly in Dataviewer.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=1725&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=1725&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with URLFetch mimetools.Message parsing incorrectly.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2011&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2011&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with the behavior of Expires header in dev_appserver&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2106&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2106&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with Content-Disposition header being removed if filename contains utf-8 characters.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2212&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2212&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with incoming Mail API where encoded headers failed to decode.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2288&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2288&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with non-ascii text displaying incorrect values when posted by URL created by blobstore.create_upload_url()&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2749&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2749&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with using sendmail in Mail API.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3106&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3106&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with appcfg.py cron_info giving the wrong timezone information.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3307&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3307&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with Paging link in Datastore viewer not working with # or &amp;amp;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3591&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3591&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3647&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3647&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with TypeError being incorrectly raised when attachment has Character Set and Language Information.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3836&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3836&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Mail API attachments in unicode failing in_check_attachments()&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3900&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3900&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with ereporter not reporting errors when applications use namespaces.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=4212&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=4212&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Dataviewer GQL stripping new lines after initial run and a user paginates results.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=4246&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=4246&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Python Unicode prefix in Datastore viewer.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=4275&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=4275&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with get_serving_url for images giving non-cacheable URLs in dev_appserver.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=4402&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=4402&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with fancy_urllib using squid proxy server with authentication.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=4849&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=4849&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with custom admin page not displaying when restricted to only admins.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5117&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5117&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with dev_appserver_import_hook.py handling Crypto import accounts.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=4612&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=4612&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Remote API gzip compression for transmitted data.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5298&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5298&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with remote API shell not having pwd in Python Path.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5317&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5317&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Admin Console Logs &amp;lt; 30 minutes not being available.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5494&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5494&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Apps that are using Mail API reporting “No Provider for address type rfc822” error.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5769&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5769&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with concurrent write access to Datastore stubs.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6058&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6058&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Viewers being able to prohibit code downloads.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6255&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6255&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with billing applications that are disabled.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6344&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6344&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with deploying to an existing version when an app has 10 versions.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6803&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6803&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with bulkloader “model” class not uploading correctly.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6907&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6907&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with TextProperty in Datastore viewer.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6997&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6997&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with appcfg.py request_logs failing with ~oauth2&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7011&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7011&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with editing a bytestring field in Datastore viewer.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7046&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7046&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with dev_appserver clearing after restart. This is a Windows only bug.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7244&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7244&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with Cron schedule failing on 1st day of month.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7286&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7286&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with gzip compression for application/plist content type.&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7641&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7641&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.Fixed an issue with datetime.datetime.fromtimestamp() in python 2.7&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7819&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7819&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with rounding errors in crop image transform on dev_appserver.A note about an upcoming change: starting with the 1.7.3 release of App Engine, data statistics will report statistics on propertytype usage by indexes using the documented property type names (&quot;Integer&quot;, &quot;Key&quot;, etc, see https://developers.google.com/appengine/docs/python/datastore/stats) rather than the current property representation names (&quot;INT64&quot;, &quot;REFERENCE&quot;, etc, see http://goo.gl/db5dT). This will affect the Stat_PropertyType, Stat_PropertyType_Kind, Stat_PropertyType_PropertyName_Kind and their per-namespace equivalents. This will also affect the displayed &quot;Breakdown by Property Type&quot; under the &quot;Datastore Statistics&quot; in your application&#39;s console. &lt;/span&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/1149461750243032576/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/10/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1149461750243032576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1149461750243032576'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/10/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.2'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-2004121267260752465</id><published>2012-08-30T13:03:00.000+09:00</published><updated>2012-09-06T23:28:01.307+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.1</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.1が出てますね。&lt;br /&gt;
日本語に訳してみました。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
今回は、細かい修正が多い感じですね。&lt;br /&gt;
Googleさんも夏休みモードで、大きい修正はやらなかったのかな？&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.1 - August 21, 2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The URLFetch API now supports multiple cookie headers.&lt;/span&gt;&lt;br /&gt;
URLフェッチAPIは、複数のクッキーヘッダをサポートするようになりました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=3379&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=3379&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can download 90 days worth of Usage Reports for your application from the Billing History page of the Admin Console.&lt;/span&gt;&lt;br /&gt;
アドミンコンソール画面のBilling Historyページから、90日間分の利用状況レポートをダウンロードできるようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Task Queue requests now include an X-AppEngine-TaskExecutionCount that counts the number of times a task was run by an instance.&lt;/span&gt;&lt;br /&gt;
タスクキューリクエストには X-AppEngine-TaskExecutionCountが含まれるようになりました。これは、一つのインスタンスで実行されたタスクの数をカウントしています。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added support for multiple files to be deleted using the Files API.&lt;/span&gt;&lt;br /&gt;
ファイルAPIが、複数ファイルの削除をサポートするようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added support to delete files from Google Cloud Storage using the Files API.&lt;/span&gt;&lt;br /&gt;
ファイルAPIが、Google Cloud Storageのファイル削除をサポートするようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added a REQUEST_LOG_ID to be written in the logs and as an environment variable. This can be used to later identifying that request in the application logs.&lt;/span&gt;&lt;br /&gt;
ログおよび環境変数へ書き込む為に、REQUEST_LOG_IDが加わりました。これにより後からアプリケーションログでリクエストを特定することが出来るようになります。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Memcache Viewer now supports namespaces.&lt;/span&gt;&lt;br /&gt;
Memcacheビューアがnamespaceをサポートするようになりました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7245&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7245&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Mail API now supports the following headers for outgoing mail: List-Id, List-Unsubscribe, On-Behalf-Of, Resent-Date, Resent-From, Resent-To.&lt;/span&gt;&lt;br /&gt;
メールAPIは、外部へのメールのヘッダとして、以下をサポートするようになりました。List-ID, List-Unsubscribe, On-Behalf-Of, Resent-Data, Resent-From, Resent-To.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=2559&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=2559&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7672&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7672&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;PyCrypto 2.6. is now supported in the Python 2.7 runtime.&lt;/span&gt;&lt;br /&gt;
Python2.7ランタイム環境で、PyCrypto 2.6がサポートされるようになりました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7884&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7884&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;NDB now throws a BadProjectionError when trying to perform a projection query on an unknown or unindexed property.&lt;/span&gt;&lt;br /&gt;
NDBモジュールは、未知もしくはインデックスされていないプロパティへの投影クエリが実行された際に、BadProjectionError例外を投げるようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;NDB Tasklets use the namespace from when it was called, not the namespace from when it is performed.&lt;/span&gt;&lt;br /&gt;
NDB Tasklets は 実行時ではなく呼び出された際のnamespaceを使います。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=190&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=190&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;NDB Properties&#39; string representation size is limited to the max string length for Blob and Text properties.&lt;/span&gt;&lt;br /&gt;
NDBのプロパティの文字列表現サイズは、BlobやTextプロパティの最大長に制限されるようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Appstats provides an interactive shell for observing RPC behavior of calls immediately.&lt;/span&gt;&lt;br /&gt;
Appstats はRPC呼び出しの動作を直ちに観察するためのインタラクティブシェルを提供するようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Appstats now contains information about the cost of the RPCs made during the request.&lt;/span&gt;&lt;br /&gt;
Appstatsは、リクエスト毎のRPCのコストの情報も見られるようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Images API now supports specifying the default pixel color to fill in for image types that don&#39;t support transparent images, such as JPEG.&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
Image APIは、JPEGのように透過色を指定できない画像に埋め込みできるように、デフォルト色の指定が出来るようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;We&#39;ve added full asynchronous API support in the Images API.&lt;/span&gt;&lt;br /&gt;
画像APIは、完全な非同期APIをサポートするようになりました！&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added an error to the Images API to indicate when a blob being referenced is not found or not accessible.&lt;/span&gt;&lt;br /&gt;
ImageAPIに、参照先のblobが見つからなかったりアクセスできなかったことを示すためのエラーを加えました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Made the Python search limits public in the Search API.&lt;/span&gt;&lt;br /&gt;
Search APIにおける検索の制限が公開されました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added namespace support for the Search API in the Python SDK.&lt;/span&gt;&lt;br /&gt;
Search APIのnamespaceがPython SDKでサポートされるようになりました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7670&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7670&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added support in the Search API for simple sorting in the SDK.&lt;/span&gt;&lt;br /&gt;
Search APIのシンプルなソートがPython SDKでサポートされるようになりました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7456&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7456&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Testbed testing framework now supports the Logservice API.&lt;/span&gt;&lt;br /&gt;
テストフレームワークのTestbedがLogservice APIをサポートするようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Added support in the Files API to list Google Cloud Storage files.&lt;/span&gt;&lt;br /&gt;
Files APIでGoogle Cloud Storageのファイルのリストがサポートされるようになりました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Improve the MapReduce File API Reader to support multiple files and file formats.&lt;/span&gt;&lt;br /&gt;
MapReduceFileAPIを改善し、複数ファイル・複数フォーマットをサポートさせています。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with the App Engine satisfaction survey in the Admin Console which was released in 1.6.6, which will be re-enabled in this release.&lt;/span&gt;&lt;br /&gt;
1.6.6でリリースされたAdmin Consoleの満足度調査の問題が修正されました。今回のリリースで再び有効になります。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue with Search API websafe cursors not being returned as a websafe value.&lt;/span&gt;&lt;br /&gt;
Search APIのウェブカーソルがウェブセーフな値を返さないという問題が修正されました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where SearchRequest was returning errors that weren&#39;t available as search.Error subclasses.&lt;/span&gt;&lt;br /&gt;
SearchRequestが返しているエラーが、search.Errorのサブクラスとして利用できなかった問題を修正しました。&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an NDB issue where entities over 1000000 bytes where written to memcache, causing failure.&lt;/span&gt;&lt;br /&gt;
NDBの問題（1Mbyteを超えるエンティティがmemcacheに書き込めないことに起因する障害）が修正されました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=193&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=193&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed NDB AutoBatcher error handling.&lt;/span&gt;&lt;br /&gt;
NDBのAutoBatcherのエラーハンドリングを修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=196&quot;&gt;http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=196&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where Appstats assuming all objects have a class attribute resulted in an error.&lt;/span&gt;&lt;br /&gt;
すべてのオブジェクトがclass属性を持っていると想定してしまっていたことでエラーが発生してしまう問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5668&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5668&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where there was unbalanced string quoting in Appstats formatting.&lt;/span&gt;&lt;br /&gt;
Appstatsの書式で文字列のクォーティングにアンバランスがあった問題が修正されました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=5976&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=5976&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where search indexes were not persisted in the SDK.&lt;/span&gt;&lt;br /&gt;
検索のインデックスがSDKで永続的でなかった問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6791&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6791&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where an error in formatter.py in Appstats was being thrown.&lt;/span&gt;&lt;br /&gt;
Appstatsのformatter.pyがエラーが投げられていた問題を修正しました。&lt;br /&gt;
http://code.google.com/p/googleappengine/issues/detail?id=7034&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue in the SDK where the Search API did not support boolean queries on a field.&lt;/span&gt;&lt;br /&gt;
Search APIがfield上の論理クエリーをサポートできていなかったSDKの問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7247&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7247&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where numeric and date comparators were not supported in the Search API in the Python SDK.&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
数値や日付の比較がSDKのSearch APIでサポートされていなかった問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7247&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7247&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where Appstats didn&#39;t show a detailed view of an RPC when using the Python 2.7 runtime.&lt;/span&gt;&lt;br /&gt;
Python2.7ランタイムを使用している際にAppstatsでRPCの詳細ビューが表示されないという問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7558&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7558&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed a search issue where snippets failed to highlight when a capital letter is used in a search term.&lt;/span&gt;&lt;br /&gt;
検索語に大文字が含まれていた場合にスニペットのハイライトに失敗するという問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7665&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7665&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where the SDK Admin tool couldn&#39;t browse search indexes containing unicode characters.&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
SDKのAdminツールで、Unicode文字列を含む検索インデックスを参照できないという問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7791&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7791&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where traffic splitting by cookie was not working.&lt;/span&gt;&lt;br /&gt;
クッキーによるトラフィック分割が働いていなかった問題を、&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7813&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7813&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where RequestTooLargeError was being incorrectly thrown using Python 2.7.&lt;/span&gt;&lt;br /&gt;
RequestTooLargeErrorがPython2.7で誤って投げられていた問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7820&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7820&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed a memcache race condition.&lt;/span&gt;&lt;br /&gt;
memcache の競合状態を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7864&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7864&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed a Search issue in the SDK where a query that does not match all search terms resulted in divide-by-zero.&lt;/span&gt;&lt;br /&gt;
SDKの検索の問題（0除算エラーでクエリーのすべての検索語がマッチしていなかった）&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7943&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7943&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/2004121267260752465/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/08/google-app-engine-python-sdk-release.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/2004121267260752465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/2004121267260752465'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/08/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.1'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-1587832527882443165</id><published>2012-08-11T18:26:00.002+09:00</published><updated>2012-08-18T03:28:01.264+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Sphinx"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><title type='text'>アイコン解決</title><content type='html'>&lt;br /&gt;
アイコン自作するの面倒になったので、再配布可能なアイコンを探して、利用することにしました。&lt;br /&gt;
&lt;br /&gt;
再配布可能なアイコンは、たいていクレジットの表記が必須なのですが、具体的にどう表記すれば良いかを明記している人はほとんどいないような？たぶんホームページへのリンクを付ければよいのでしょうが、正直使いづらい。&lt;br /&gt;
&lt;br /&gt;
そんな中で、ちゃんと&lt;a href=&quot;http://p.yusukekamiyamane.com/icons/attribution/&quot;&gt;クレジットの表記例&lt;/a&gt;を載せていて、かつ、&lt;a href=&quot;http://p.yusukekamiyamane.com/&quot;&gt;アイコンもいっぱいある&lt;/a&gt;のを発見。 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Footerにリンク入れれば再配布OK。お金を払ってクレジット表記を消す方法も明記されているので、いろいろ便利。とりあえずこれを使用させていただくことに決定。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
後は、CSSを直せば公開できますね！&lt;br /&gt;
&lt;br /&gt;
今は &lt;a href=&quot;http://d.hatena.ne.jp/navyfox_sh/20120527/1338045431&quot;&gt;sphinxjp.themes.bizstyle&lt;/a&gt; を適当にカスタマイズしたのを使っているのですが、もうちょっと変えたいんですよね。 &lt;br /&gt;
&lt;br /&gt;
bizstyle は、スタイルを工夫してどんな色でもだいたい大丈夫にしていて凄いと思います。&lt;br /&gt;
でも、個人的には中間色を使って、もう少し表現力を上げたい。&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
そこで、中間色を生成するJinja2のフィルタを作ってSphinxで使いたいのですが・・・。 &lt;br /&gt;
軽くググった感じでは、Sphinxで使っているJinja2のEnviromentへのアクセス方法がイマイチわからない・・・。orz。&lt;br /&gt;
&lt;br /&gt;
カスタムフィルタを追加すると、Jinja2の表現力ってかなり上がるとおもうんですけれど、&lt;br /&gt;
Sphinxでチャレンジしている人はあんまりいないみたいですね。&lt;br /&gt;
&lt;br /&gt;
仕方が無いので軽くソースを追ってみました。&lt;br /&gt;
フィルタの追加は、そんなに難しくなさそうなので、今度チャレンジしてみます！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/1587832527882443165/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/08/blog-post.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1587832527882443165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/1587832527882443165'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/08/blog-post.html' title='アイコン解決'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-94486853707938814</id><published>2012-07-12T12:55:00.000+09:00</published><updated>2012-07-12T18:10:37.266+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Sphinx"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><title type='text'>近況の記録：アイコンめー！</title><content type='html'>MTG-Guildの開発をサボって、Sphinxのテーマいじりをしています。&lt;br /&gt;
仕事の効率化になる上に、趣味も兼ねているので、こっちのほうが自然と進みます。&lt;br /&gt;
&lt;br /&gt;
職場の環境がIEメインなのですが、各所でdisられているIEも、Sphinxを使う分にはかなり良いですね。IEだとセキュリティ的に悪名高いVBSが使えます。この悪魔の言語を使うことで、htmlからファイルを直接いじったりbatファイルを起動できたりします。つまり、Sphinxをwikiっぽく使えます。&lt;br /&gt;
&lt;br /&gt;
これは便利なのでぜひ広めよう、と思い&lt;br /&gt;外部に公開する準備をしてきました。 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
以前は、一つのリポジトリで、実ドキュメントを作りながら、自作の拡張テーマも管理していました。この方が一人で作業する分には簡単で良いのですが、他の人と協調したり、拡張テーマを公開するには向かない管理方法です。&lt;br /&gt;
&lt;br /&gt;
そこで、自作の拡張テーマと業務情報を含まないサンプル例からなるリポジトリを用意して、&lt;br /&gt;
業務情報を含んだドキュメントの作成と分離させるようにしました。 こうすれば、ドキュメントの作成と並行してテーマを育てられるので、ドキュメント作成は職場で行い、テーマは自宅で、といった住み分けも出来ます。&lt;br /&gt;
&lt;br /&gt;
準備が出来てきたので、公開してフィードバックをもらうようにしようかな、と思っていました。&lt;br /&gt;
しかし、意外なところで躓きました。&lt;br /&gt;
&lt;br /&gt;
「アイコンって、原作者のクレジット表記が必要なんじゃね？」&lt;br /&gt;
&lt;br /&gt;
IconFinderとかで、見つけたアイコンをホイホイとテンプレートに取り込んでいたのですが、&lt;br /&gt;
良く調べなおすと、クレジット表記が必須だったり、再配布を禁止していたり、編集を禁止していたり。&lt;br /&gt;
&lt;br /&gt;
アイコンを使わない、という選択肢も無いわけではないのですが、アイコンを使うと省スペースになって、領域を広く使えるので、出来れば使いたいんですよね・・・。（ページのデザインとかやったことなかったので理解していなかったのですが、アイコンの力って偉大ですね）&lt;br /&gt;
&lt;br /&gt;
とりあえずテーマとして必要なのは、&lt;br /&gt;
編集・参照・？マーク・リフレッシュ・エクスプローラーのフォルダ階層っぽいやつ、ウィンドウ拡大で６つ。&lt;br /&gt;
&lt;br /&gt;
んーこれくらいなら、自作しちゃったほうが後腐れが無くていいかな？&lt;br /&gt;
都合の良い素材がどこかに転がっていれば、それが一番ですが、探すより作ってみたほうが速いかも。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/94486853707938814/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/07/blog-post.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/94486853707938814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/94486853707938814'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/07/blog-post.html' title='近況の記録：アイコンめー！'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-7424782233613890380</id><published>2012-06-29T17:27:00.000+09:00</published><updated>2012-06-29T17:29:09.772+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.7.0</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.7.0が出てますね。&lt;br /&gt;
日本語に訳してみました。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
先月お披露目になったSearchAPI関連や、Googleのサービスとの連携関連が多いですね。&lt;br /&gt;
（差別化を狙っているんでしょうけれど、みんなついていけているのかな？）&lt;br /&gt;
&lt;br /&gt;
あと、NDBの修正も多いのが気になりました。（Guido頑張り過ぎじゃないの？）&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.7.0 - June 26, 2012 &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now configure your custom domain to serve HTTPS requests with App Engine. You can choose either an SNI, VIP, or SNI and VIP configuration. SNI costs $9/month for 5 certificates. A VIP costs $99/month.&lt;/span&gt;&lt;br /&gt;
App EngineでのHTTPS要求を処理するために、カスタムドメインを設定することが出来るようになりました。SNI or VIP or SNI + VIP の 構成を選択することができます。SNIは5証明書で 9$/月 かかります。 VIPは、99$/月です。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/appengine/docs/ssl&quot;&gt;https://developers.google.com/appengine/docs/ssl&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Premier customers now have the option to create applications to be served from datacenters located in the European Union.&lt;/span&gt;&lt;br /&gt;
プレミア顧客は、アプリケーションを作成するオプションで、欧州連合（EU）に位置するデータセンターを利用できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Developers can configure their HRD app to use Google&#39;s PageSpeed Service, which automatically speeds up serving of content for your application. The PageSpeed Service costs $0.39/gigabyte in addition to the normal App Engine bandwidth charges.&lt;/span&gt;&lt;br /&gt;
HRDアプリケーションに対して、Google&#39;s PageSpeed サービス（＝自動的にアプリケーションのコンテンツの提供をスピードアップするサービスです）を利用できるようになりました。PageSpeed​サービスは、通常のApp Engineの帯域幅の費用に加えて0.39$/GB がかかります。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://developers.google.com/appengine/docs/adminconsole/performancesettings#pagespeed&quot;&gt;https://developers.google.com/appengine/docs/adminconsole/performancesettings#pagespeed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Search API now contains support for storing and searching on GeoPoints.&lt;/span&gt;&lt;br /&gt;
Serarch API は GeoPoints の 保存と検索をサポートするようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The total size of all application versions is now limited to 1 GB. In the future, you&#39;ll be able to purchase additional storage for your application code.&lt;/span&gt;&lt;br /&gt;
すべてのアプリケーションのバージョンの合計サイズは、1ギガバイトに制限されるようになりました。将来的には、アプリケーションコードの為に追加のストレージを購入できるようになります。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Logs API calls are now $.12/gigabyte for all data read from the Logs API over the first 100MB.&lt;/span&gt;&lt;br /&gt;
無料枠の100 MBを超えるログAPIによるデータ読み込みは、0.12$/GBかかるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now specify a time frame of up to 1 year for the retention of your application logs. All storage above 1 GB is billed based on the prices for logs storage.&lt;/span&gt;&lt;br /&gt;
アプリケーションログの保持期間を1年間まで指定できるようになりました。 1ギガバイト以上のすべてのストレージはログストレージの価格に基づいて請求されます。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now specify HTTP headers on static content for your application.&lt;/span&gt;&lt;br /&gt;
静的コンテンツのHTTPヘッダを指定することが出来るようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The HRD Blob Migration tool is now generally available.&lt;/span&gt;&lt;br /&gt;
HRD Blob 移行ツールは、一般に利用できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;After using the datastore backup utility, you can now restore that backup to a new app id.&lt;/span&gt;&lt;br /&gt;
データストアのバックアップユーティリティを使用した後は、新しいアプリケーションIDにそのバックアップを復元することができるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;It will not be possible to create new authorizations for M/S applications to access Cloud SQL instances.&lt;/span&gt;&lt;br /&gt;
Master/SlaveアプリケーションからCloud SQL インスタンスへのアクセス権限を新しく作ることは出来なくなりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now delete a Google Cloud Storage object using blobstore.delete().&lt;/span&gt;&lt;br /&gt;
blobstore.delete(）を使用してGoogle Cloud Storageオブジェクトを削除することができるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now fetch a Google Cloud Storage object using blobstore.fetch().&lt;/span&gt;&lt;br /&gt;
blobstore.fetch(）を使用してGoogle Cloud Storageオブジェクトをフェッチすることができるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now store keys for a Google Cloud Storage object in the datastore.&lt;/span&gt;&lt;br /&gt;
Google Cloud Storageオブジェクトへのキーをデータストアに保存できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The create_upload_url call now works for Google Cloud Storage objects.&lt;/span&gt;&lt;br /&gt;
create_upload_urlコールは、Google Cloud Storageオブジェクトに対して機能するようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now use get_serving_url() and delete_serving_url() for Google Cloud Storage buckets.&lt;/span&gt;&lt;br /&gt;
Google Cloud Storageバケットに対して、get_serving_url()とdelete_serving_url()を使えるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Projection queries are now supported in NDB.&lt;/span&gt;&lt;br /&gt;
投影クエリがNDBでサポートされるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;In NDB, app and namespace are now keyword arguments to get_by_id().&lt;/span&gt;&lt;br /&gt;
NDBのget_by_id()のキーワード引数に、アプリケーションと名前空間が加わりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Context().call_on_commit() added to NDB for adding a callback to be executed upon successful commit of a transaction.&lt;/span&gt;&lt;br /&gt;
Context().call_on_commit()がNDBに加わりました。これは、トランザクションが成功した際に実行されるコールバックを追加するためのものです。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;NDB Context.memcache_* ops now accept unicode.&lt;/span&gt;&lt;br /&gt;
NDBのContext.memcache_* オプションは、unicodeを受け付けるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;NDB has added support for storing protorpc.Message objects.&lt;/span&gt;&lt;br /&gt;
NDB は protorpc.Message objectsの格納もサポートするようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Improved error messaging for multiple repeated=True levels with StructuredProperty in NDB.&lt;/span&gt;&lt;br /&gt;
NDBのStructuredPropertyで multiple repeated=True levelのエラーメッセージを改善しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;PyAMF is now fully launched.&lt;/span&gt;&lt;br /&gt;
PyAMFが完全に動作するようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;We&#39;ve increased various Search API limits. New limits are a maximum of 1000 documents returned from search() or list_documents(),a maximum of 1000 indexes returned from list_indexes(),and a maximum offset of 1000 for search() or list_indexes()&lt;/span&gt;&lt;br /&gt;
Seaarch APIにさ制約を３つ加えました。search() or list_documents()の戻りは、1000個のドキュメントが最大です。list_indexes()の戻りは、1000個のインデックスが最大です。search() or list_indexes()のオフセットの最大は1000です。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where the Search API did not enforce limits on NumberFields.&lt;/span&gt;&lt;br /&gt;
Search APIで、NumberFieldsの制約が強制されていなかった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue in the SDK where SortExpression did not enforce the presence of a default_value set when required.&lt;/span&gt;&lt;br /&gt;
デフォルト値の設定が要求された場合にSortExpressionが強制されていなかったSDKの問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where lxml did not support unicode parsing.&lt;/span&gt;&lt;br /&gt;
lxmlがユニコードのパースをサポートしていなかった問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7158&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7158&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7158&lt;/span&gt;&lt;br /&gt;
Admin Consoleのjavascriptの構文エラーを修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7566&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7566&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue in SDK admin viewer where a TemplateDoesNotExist error was thrown when clicking on any Full-Text Search index.&lt;/span&gt;&lt;br /&gt;
Full-Text Searchのインデックスをクリックした際に TemplateDoesNotExistエラーが投げられていたSDKの管理者ビューアの問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7598&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7598&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue in the Search API tab of the Admin Console where it threw an error displaying non-ascii characters.&lt;/span&gt;&lt;br /&gt;
Admin ConsoleのSearch APIタブで非アスキー文字列を表示させる際のエラーを修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7601&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7601&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/7424782233613890380/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/06/google-app-engine-python-sdk-release.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7424782233613890380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7424782233613890380'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/06/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.7.0'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-7518542150424955044</id><published>2012-06-15T12:56:00.004+09:00</published><updated>2012-06-15T12:59:09.236+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Sphinx"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><category scheme="http://www.blogger.com/atom/ns#" term="開発メモ"/><title type='text'>Sphinxのファイルの拡張子とか</title><content type='html'>うーん。Sphinxのファイルの拡張子って、.rstと.txtのどっちが良いんだろう？&lt;br /&gt;
Sphinxを仕事で使うようになって、いろいろモヤモヤとしてきたので、整理してみます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
txtの良い点&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;デフォルト設定のままでエディタが起動する&lt;/li&gt;
&lt;li&gt;新規作成が少し楽。右クリック→新規作成→テキスト ドキュメント&lt;/li&gt;
&lt;li&gt;既存のメモ書きを移行しやすい &lt;/li&gt;
&lt;/ol&gt;
rstの良い点&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;エディタの設定をtxtファイルを分けられる&lt;/li&gt;
&lt;li&gt;ブラウザからソースファイルを開くとき、エディタが起動する&lt;/li&gt;
&lt;li&gt;.. include:: するドキュメントの拡張子を.txtにできる&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
txtは、導入コストが低いのが利点で、rstは、よりヘビーに使うときに良い。&lt;br /&gt;
&lt;br /&gt;
いろいろ迷いながら、今のところはtxtで作成中。&lt;br /&gt;
本当はrstにしたいけれど、誰かに引き継ぐときのことを想像すると、txtになっちゃうんですよね・・・。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ついでに、Sphinx関連の自分タスクを洗い出し。&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;既存のドキュメントのヘッダを、&lt;a href=&quot;http://documentation-style-guide-sphinx.readthedocs.org/en/latest/style-guide.html&quot;&gt;StleGide&lt;/a&gt; に合わせる&lt;/li&gt;
&lt;li&gt;conf.pyの標準化&lt;br /&gt;なるべく内部の記述を変えずに色々なドキュメントで使えるconf.pyを作る&lt;ul&gt;
&lt;li&gt;中間色をconf.pyで自動算出させて、テーマ変数を上書き&lt;/li&gt;
&lt;li&gt;ドキュメント名や作成者名をどこかで１度定義するだけで、htmlhelpも修正されるようにする&lt;/li&gt;
&lt;li&gt;ドキュメントの格納元がローカルドライブかネットワークドライブなのかで、テーマ変数を調整する &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;テーマの修正&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;BizStyleでサイドバー固定、サイドバー幅のテーマ変数化 →完了&lt;/li&gt;
&lt;li&gt;BizStyleと修正部分の分離 &lt;/li&gt;
&lt;li&gt;htmlから直接ソースファイルを開けるようにする → IEのみ完了。他はそのうち。&lt;/li&gt;
&lt;li&gt;make htmlhelp対応&lt;/li&gt;
&lt;li&gt;IE7でサイドバーの表示が少しおかしいのを直す&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;ドキュメントのプロトタイプの作成（業務情報を削除し、他でも使えるドキュメントを作る）&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;プロトタイプの作成&lt;/li&gt;
&lt;li&gt;作成したプロトタイプの公開&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
やれることはいっぱいあるなぁ・・・。 &lt;br /&gt;
&lt;br /&gt;
まずはプロトタイプを作ったほうが良いんだろうなぁ。&lt;br /&gt;
フィードバックもらえそうだし、テーマの修正も楽になるし。&lt;br /&gt;
（本物のドキュメントは育ちすぎていてビルドに時間がかるんですよねー）&lt;br /&gt;
&lt;br /&gt;
ただ、conf.pyにタイトルとかの業務情報があると、&lt;br /&gt;
プロトタイプでconf.pyを修正したのを、本番ドキュメントに取り込み難いんですよね・・・。&lt;br /&gt;
でも、iniファイルをpythonで読み込みとかめんどいなぁ。&lt;br /&gt;
&lt;br /&gt;
ん？&lt;br /&gt;
con.pyの中で from conf_ex import * とかやって、業務情報をconf_ex.pyに外だしとかどうだろう？&lt;br /&gt;
ちょっとやってみよう。 &lt;br /&gt;
&lt;br /&gt;
そもそも、conf.pyでテーマ変数をいろいろいじって頑張らせているのが間違いの始まりな気がしますが、拡張作るの面倒くさそうなので・・・。</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/7518542150424955044/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/06/sphinx.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7518542150424955044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/7518542150424955044'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/06/sphinx.html' title='Sphinxのファイルの拡張子とか'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-4944497922787407275</id><published>2012-06-11T20:30:00.000+09:00</published><updated>2012-06-14T12:43:00.318+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="Sphinx"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><title type='text'>Sphinxで日本語を使う時の注意点のメモ（Windows限定）</title><content type='html'>&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;自作テーマを&lt;/span&gt;&lt;/span&gt;社内展開用に&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;整理していたら、&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;文字コードの迷宮に迷い込んでしまいました。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
あまり一般的な事例ではないかもしれませんが、どこかの誰かと未来の自分の為に、対策をメモしておきます。&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


＜基本設定＞&lt;/h3&gt;
&lt;ol&gt;&lt;/ol&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;http://sphinx-users.jp/gettingstarted/install_windows_standalone.html&quot;&gt;日本語パッチのあたったSphinx&lt;/a&gt;を使う&lt;/li&gt;
&lt;li&gt;スタンドアローン版をインストールしたディレクトリ配下のpython\libに、sitecustmoize.pyを追加する。ファイルの中身は、&lt;br /&gt;import sys&lt;br /&gt;sys.setdefaultencoding(&quot;mbcs&quot;)&lt;/li&gt;
&lt;li&gt;conf.py で&lt;br /&gt;language = &#39;ja&#39;&lt;br /&gt;としておく&lt;/li&gt;
&lt;/ol&gt;
sitecustmoize.pyを設定するのは嫌いなのですが、設定しないとソースファイルの親ディレクトリに日本語が含まれている場合にうまく動かないようです。ローカルで作っていたrstをネットワークフォルダ上に配置してmake htmlした時に、ネットワークフォルダに日本語のフォルダが含まれていて、はまりました。&lt;br /&gt;
language=&#39;ja&#39;は、入れなくてもいいのですが、いれておくと色々良くなることが多いので、最初から設定しておくと良さげです。quickstartで作られるconf.pyは、微妙な感じがするので、特に自作テーマを作るときは、それに合わせて標準的なconf.pyを用意しておくとよさそうですね。&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


＜テーマをいじる場合の注意点＞&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;jinja2のテンプレートはutf-8（BOM無し）で書く&lt;/li&gt;
&lt;li&gt;theme.confもutf-8
（BOM無し）&amp;nbsp;で書く&lt;/li&gt;
&lt;li&gt;conf.pyでhtml_theme_optionsを指定する場合も、値をutf-8にエンコードする&lt;/li&gt;
&lt;/ul&gt;
※utf-8は、defaultのテーマを継承した場合です。&lt;br /&gt;
出力しているhtmlのエンコーディング指定に合わせる必要があります。&lt;br /&gt;
defaultのテーマの場合は、&lt;br /&gt;
&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;&amp;lt;&lt;span class=&quot;HTML_ELM&quot;&gt;meta&lt;/span&gt; &lt;span class=&quot;HTML_ATR&quot;&gt;http-equiv&lt;/span&gt;=&lt;span class=&quot;HTML_VAL&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt; &lt;span class=&quot;HTML_ATR&quot;&gt;content&lt;/span&gt;=&lt;span class=&quot;HTML_VAL&quot;&gt;&quot;text/html; charset=utf-8&quot;&lt;/span&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;　なので、utf-8です。&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;HTML_TXT&quot;&gt;ようは、変数の値がそのままテンプレートでレンダリングされるようです。だから、テンプレートに渡す時には、ちゃんと最終的な文字コードをあわせてエンコーディングしておきましょう。&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;デフォルト設定だと、そうそう起きない失敗だと思いますが、&lt;/span&gt;&lt;/span&gt;（社内展開を考えると、シフトJISのほうが喜ぶ人が多そうに思えたので）conf.pyにて「source_encoding = &#39;mbcs&#39;」としたのが迷宮の入り口でした。ソースがmbcsだから、設定もmbcs?って思いましたが、最終形式に合わせるんですね。 &lt;br /&gt;
&lt;br /&gt;
（結局utf-8を喜ぶ人じゃないとSphinxは使わない気がする・・・。いろいろ面倒が多いので、この機会にUTF-8(BOM付）にそろえることにしました）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


＜htmlテーマの変数をWindowsのbatファイルで使いたい場合＞&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;.bat→.bat_tとする&lt;/li&gt;
&lt;li&gt;{{&#39;\r&#39;}}を行末にいれる&lt;/li&gt;
&lt;li&gt;.bat_t&amp;nbsp;ファイルには、なるべく日本語を入れない。どうしても必要な場合はシフトjisで入れる。&lt;/li&gt;
&lt;li&gt;.bat_tの中で使うテーマの変数は、conf.pyの中でシフトjisにエンコードしておく&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
普通は、こんなことしないと思うのですが、Sphinxで出力されたhtml側でボタンをクリックすると、大元のソースディレクトリの上位のフォルダで、make htmlしてくれる仕組みを作ろうとした際に、起きました。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span class=&quot;HTML_TXT&quot;&gt;&lt;span class=&quot;HTML_TAG&quot;&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/4944497922787407275/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/05/sphinx-jp.html#comment-form' title='1 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/4944497922787407275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/4944497922787407275'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/05/sphinx-jp.html' title='Sphinxで日本語を使う時の注意点のメモ（Windows限定）'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-5571455536419494712</id><published>2012-06-09T16:15:00.003+09:00</published><updated>2012-06-30T15:21:31.917+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="つれづれ"/><category scheme="http://www.blogger.com/atom/ns#" term="携帯サイト"/><category scheme="http://www.blogger.com/atom/ns#" term="開発メモ"/><title type='text'>開発進捗（06/06）</title><content type='html'>MTG-GUILDですが、開発から１年以上たっている割には進捗悪いんです。&lt;br /&gt;
余暇を利用して開発しているので、予算０円、納期未定なので、ずるずる進行なのは想定内ではあるのですが・・・。&lt;br /&gt;
&lt;br /&gt;
もうちょっとなんとかしたいので、現状を整理してみました。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;br /&gt;
＜開発目的＞&lt;br /&gt;
[Magic:the gathering におけるデッキの構築・テストプレイを効率化して少ない時間投資でトーナメントで勝てるようにすること。&lt;br /&gt;
&lt;br /&gt;
＜必須機能＞&lt;br /&gt;
・デッキ構築支援（カード検索、デッキの記録・共有・意見交換）&lt;br /&gt;
・テストプレイ支援機能（記録されたデッキを二つ選んで一人回し（一人で二人分プレイする））&lt;br /&gt;
・（イッシーがスマホを保有していないので）携帯電話とPCでの利用をメインとする&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;＜実現方式＞&lt;br /&gt;
GAE Python2.7のアプリとして構築中。&lt;br /&gt;
&lt;br /&gt;
主な利用ライブラリ&lt;br /&gt;
ベース：Webapp2, Jinja2, NDB, wtforms&lt;br /&gt;
ローカルテスト：unittest + webtest + (Beautifulsoup)&lt;br /&gt;
&lt;br /&gt;
* ローカルテスト用のライブラリやテストケースは、app.yamlで本番環境にもっていかないようにしている。&lt;br /&gt;
&lt;br /&gt;
＜進捗＞&lt;br /&gt;
携帯サイト用のフレームワークのベースが完成。&lt;br /&gt;
初期ページと、管理者ページの元が完成。&lt;br /&gt;
&lt;br /&gt;
＜遅延理由＞&lt;br /&gt;
業務ロジックを設計する際にDB設計を同時に行うことで&lt;br /&gt;
最初から最適化されたデザインをしようと 考え始めた結果、 &lt;br /&gt;
デザインが頭に入りきらなくなり、設計で詰まってしまっている。&lt;br /&gt;
&lt;br /&gt;
＜解決策＞&lt;br /&gt;
テストコードを作りながら、ボトムアップ的に開発していく。&lt;br /&gt;
適宜リファクタリングをしていくことで、設計を美しく保つ。&lt;br /&gt;
（そんなに大規模なアプリではないので、DB設計なんて後からついてくる）&lt;br /&gt;
&lt;br /&gt;
＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝&lt;br /&gt;
&lt;br /&gt;
納期より機能が優先される特殊な開発ですけれど、&lt;br /&gt;
やっぱり、アジャイル開発の教科書どおりに開発しろ、ってことですね。 &lt;br /&gt;
（普通すぎる結論だ・・・orz）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
あんまり進捗はないのですが、この１年でベースの知識はだいぶ習得したので、&lt;br /&gt;
これはこれで、大きな収穫だったと思います。 &lt;br /&gt;
&lt;br /&gt;
当初は、関連するライブラリの使い方が、よくわかっていなかったのですが、&lt;br /&gt;
webapp2をベースにオリジナルのフレームワークを作っていく過程で、大分わかりました。&lt;br /&gt;
&lt;br /&gt;
同じような道を進む人の為に、所感をメモって見ます。 &lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Python2.7（とスレッドセーフ）は、そんなに難しくない&lt;br /&gt;
（Webapp2でセッション毎にインスタンスを作ってくれるので、スレッドセーフはあんまり意識しなくてOK）&lt;/li&gt;
&lt;li&gt;webapp2は、けっこう改造しやすくできている&lt;br /&gt;
オレオレフレームワークのベースとしては優秀&lt;/li&gt;
&lt;li&gt;Jinja2は、使わないと大分損&lt;br /&gt;
日本語のドキュメントも充実しているので楽&lt;br /&gt;
SphinxもJinja2使っているので、覚えて損はない&lt;/li&gt;
&lt;li&gt;NDBは、開発当初から使うならあり&lt;br /&gt;
日本語情報は少ないが、ベースをそのまま使うのとあまり違和感はない&lt;/li&gt;
&lt;li&gt;wtformsはいちおう使ったほうが良い&lt;br /&gt;
そんなに凄い感じはしませんが、手で書くと面倒なので無いよりはずっとまし&lt;/li&gt;
&lt;li&gt;unittest大事&lt;br /&gt;
Eclipseが用意しているテストランナーを使うと半自動的にガンガンテストしてくれる&lt;/li&gt;
&lt;li&gt;webtestかなり便利&lt;br /&gt;
画面遷移に関するテストコードがかなり楽に書ける&lt;/li&gt;
&lt;li&gt;BeautifulSoupは、単体テスト用としてはほぼ不要&lt;br /&gt;
内部的なフレームワークのテストに利用したけど、普通は使わなくても大丈夫&lt;br /&gt;
（もちろん、アプリから外部のサイトにアクセスさせる場合は使ったほうが良いと思います）&lt;/li&gt;
&lt;/ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;br /&gt;
・・・いろいろ状況を分析してみましたが、最近趣味でSphinxのオリジナルテーマを作っているのが、最近の進捗がストップしている主要な原因な気がしてきた・・・。&lt;br /&gt;
仕事でSphinxを使い始めたのですが、テーマいじり、結構面白いんですよね。&lt;br /&gt;
ま、Jinja2（とhtml）の練習にはなっているので、これはこれで良い事にしよう。&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/5571455536419494712/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/06/0606.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/5571455536419494712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/5571455536419494712'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/06/0606.html' title='開発進捗（06/06）'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9193881432123094514.post-31412922437428996</id><published>2012-05-27T00:58:00.000+09:00</published><updated>2012-05-29T12:18:57.324+09:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GAE"/><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><category scheme="http://www.blogger.com/atom/ns#" term="翻訳記事"/><title type='text'>読解練習：Google App Engine Python SDK Release Notes 1.6.6</title><content type='html'>&lt;a href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;GAE/P SDKのリリースノート&lt;/a&gt;1.6.6が出てますね。&lt;br /&gt;
日本語に訳してみました。例によって訳の正確性は保証できません。&lt;br /&gt;
&lt;br /&gt;
実験的にではありますが、かねてより噂になっていたSearch APIが使えるようになってますね。&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;────────────────────────────&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Version 1.6.6 - May 22, 2012 &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;On May 8, 2012 we released an experimental Search API.&lt;/span&gt;&lt;br /&gt;
2012年5月8日から、Search APIを実験的にリリースしました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://googleappengine.blogspot.com/2012/05/looking-for-search-find-it-on-google.html&quot;&gt;http://googleappengine.blogspot.com/2012/05/looking-for-search-find-it-on-google.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Admin Console now displays the quotas for Search API Calls and Search Stored Data.&lt;/span&gt;&lt;br /&gt;
Admin画面にSeacrh API CallsとSearchSortedDataのクォータが表示されるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Search API has deprecated the order_id attribute on Document class. It has been replaced with the rank attribute.&lt;/span&gt;&lt;br /&gt;
Search APIのDocumentクラスのorder_id属性は、非推奨になりました。この属性は、rank属性に置き換えられています。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Search API has deprecated the document attribute on ListResponse and replaced it with a result attribute. Also the document_id attribute on OperationResult class is deprecated and replaced with the id attribute.&lt;/span&gt;&lt;br /&gt;
Search APIは、ListResponseのdocument属性は、非推奨になり、result属性に置き換えられました。また、OperationResultクラスのdocument_id属性も非推奨になりid属性に置き換えられました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where unicode is not consistently handled in the Python Search API.&lt;/span&gt;&lt;br /&gt;
PythonのSearch APIでUnicode文字列を一貫してハンドルできていなかった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;App creation for apps using the Master/Slave datastore is now restricted to only those users who already own a Master/Slave app.&lt;/span&gt;&lt;br /&gt;
マスター/スレーブのデータストアを使用するapps用アプリケーションの作成は、現在すでにマスター/スレーブのアプリケーションを所有しているユーザーのみに制限されるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Apps with billing enabled are now able to configure up to 100 cron jobs.&lt;/span&gt;&lt;br /&gt;
課金が有効になっているアプリケーションは、cronジョブを100まで設定できるようになりました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Admin Console can no longer be included in an ＜iframe＞. To prevent clickjacking attacks on the Admin Console, we are now setting X-Frame-Options: SAMEORIGIN. To read more about clickjacking, please read:https://www.owasp.org/index.php/Clickjacking.&lt;/span&gt;&lt;br /&gt;
Admin画面にiframeタグがインクルードされなくなりました。clickjacking攻撃を防ぐために、X-Frame-Options: SAMEORIGINを設定するようにしました。clickjackingのしょうさいについては、こちらを読んでください：&lt;a href=&quot;https://www.owasp.org/index.php/Clickjacking.&quot;&gt;https://www.owasp.org/index.php/Clickjacking.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;The Admin Console will now periodically prompt administrators to take an optional App Engine satisfaction survey.&lt;/span&gt;&lt;br /&gt;
Admin画面では定期的に管理者の任意の満足度調査が行われるようになりました。&lt;br /&gt;
（訳注：どういうこと？）&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;You can now use the third party PyAMF library with Python 2.7. This is available as an experimental feature.&lt;/span&gt;&lt;br /&gt;
サードパーティのライブラリPyAMFが、Python2.7環境で使えるようになりました。この機能は実験的なものです。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;For NDB, Rollback has been added to the default list of flow exceptions.&lt;/span&gt;&lt;br /&gt;
NDBでは、フローの例外のデフォルトのリストに、Rollbackが追加されました。&lt;br /&gt;
（訳注：どういうこと？）&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7079&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7079&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where large datastore backups were unable to be deleted.&lt;/span&gt;&lt;br /&gt;
大きいデータストアのバックアップが削除できなかった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where datastore backups fail due to an ASCII decoding issue.&lt;/span&gt;&lt;br /&gt;
ASCIIへのデコードでの問題が原因でデータストアのバックアップが失敗する問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where the SDK did not import subpackages correctly when using import hooks.&lt;/span&gt;&lt;br /&gt;
SDKでインポートフックを使用した場合にサブパッケージがインポートされていなかった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where running a projection query on a multi-valued property with an equality filter did not return any results.&lt;/span&gt;&lt;br /&gt;
multi-valuedプロパティに対する等価フィルタを用いたクエリが、結果をすべて返せていなかった問題を修正しました。&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where unicode environment variables were dropped in Appstats when using Python 2.7.&lt;/span&gt;&lt;br /&gt;
Pythonの2.7を使用するとUnicodeの環境変数がAppstatsで廃棄された問題を修正しました。&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=6448&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=6448&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #999999; font-size: x-small;&quot;&gt;Fixed an issue where XG transactions did not work with the Remote API.&lt;/span&gt;&lt;br /&gt;
XGトランザクションがリモートAPIで動作しなかった問題を修正しました。&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/googleappengine/issues/detail?id=7238&quot;&gt;http://code.google.com/p/googleappengine/issues/detail?id=7238&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://mtg-guilds.blogspot.com/feeds/31412922437428996/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://mtg-guilds.blogspot.com/2012/05/google-app-engine-python-sdk-release.html#comment-form' title='2 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/31412922437428996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9193881432123094514/posts/default/31412922437428996'/><link rel='alternate' type='text/html' href='http://mtg-guilds.blogspot.com/2012/05/google-app-engine-python-sdk-release.html' title='読解練習：Google App Engine Python SDK Release Notes 1.6.6'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/11191531700483211494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>