<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>akira the writings &#187; Google App Engine</title>
	<atom:link href="http://akr.tw/tag/google-app-engine/feed/" rel="self" type="application/rss+xml" />
	<link>http://akr.tw</link>
	<description>網路、網頁設計、軟體、電腦、翻譯、音樂、雜談，我的作品與隨筆筆記。</description>
	<lastBuildDate>Wed, 09 May 2012 14:20:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
	<atom:link rel='hub' href='http://akr.tw/?pushpress=hub'/>
		<item>
		<title>Google App Engine SDK 1.6.0 發布。支援 Python 2.7</title>
		<link>http://akr.tw/2011/11/google-app-engine-sdk-160/</link>
		<comments>http://akr.tw/2011/11/google-app-engine-sdk-160/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 09:34:12 +0000</pubDate>
		<dc:creator>akira</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://akr.tw/?p=53</guid>
		<description><![CDATA[Google App Engine 在前幾天（11/7）發布了 1.6.0 的 SDK。 主要的改進有： （一）新的（更貴的）收費模式（http://www.google.com/enterprise/cloud/appengine/pricing.html） （二）可以使用 Python 2.7 了。 其實在上一版就已經加入 2.7 的測試，但是 SDK 等到這次的 1.6.0 才開始支援本機端的 2.7。 要使用 Python 2.7 作為 runtime，首先要確認你的應用程式必須是 High Replication Datastore（HRD）模式才行。 現在建立新的應用程式的話，預設都是在 HRD 模式，如果是很古早前的程式，要先經過 Migration 程序轉換到 HRD 模式。（從後台「Application Settings」裡的「Migrate Application」） 接著在 app.yaml 中修改： runtime: **python27** threadsafe: **true** URL 的對應也要修改為： - url: /.* main.**app** 這樣就能在 Python 2.7 中開發你的應用程式了。（當然本機端也別忘了也要升級到 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/appengine">Google App Engine</a> 在前幾天（11/7）發布了 1.6.0 的 SDK。</p>

<p><span id="more-53"></span></p>

<p>主要的改進有：</p>

<p>（一）<strong>新的（更貴的）收費模式</strong>（<a href="http://www.google.com/enterprise/cloud/appengine/pricing.html">http://www.google.com/enterprise/cloud/appengine/pricing.html</a>）</p>

<p>（二）<strong>可以使用 Python 2.7 了</strong>。</p>

<p>其實在上一版就已經加入 2.7 的測試，但是 SDK 等到這次的 1.6.0 才開始支援本機端的 2.7。</p>

<p>要使用 Python 2.7 作為 runtime，首先要確認你的應用程式必須是 High Replication Datastore（HRD）模式才行。</p>

<p>現在建立新的應用程式的話，預設都是在 HRD 模式，如果是很古早前的程式，要先經過 Migration 程序轉換到 HRD 模式。（從後台「Application Settings」裡的「Migrate Application」）</p>

<p>接著在 app.yaml 中修改：</p>

<pre><code>runtime: **python27**
threadsafe: **true**
</code></pre>

<p>URL 的對應也要修改為：</p>

<pre><code>- url: /.*
  main.**app**
</code></pre>

<p>這樣就能在 Python 2.7 中開發你的應用程式了。（當然本機端也別忘了也要升級到 2.7。）</p>

<p>（三）<strong>支援各種 Python 2.7 的 <a href="http://docs.python.org/library/threading.html">Threading library</a></strong>。</p>

<p>（四）<strong>支援一些 C 語言的模組：</strong>&#8216;ctypes, sqlite, ssl, _ssl, fcntl, spwd, pwd, grp, syslog, select, _socket&#8217;</p>

<p>（五）<strong>支援 Python 原生的 JSON 函示庫。</strong></p>

<p>以往要在 GAE 裡使用 JSON 得靠 Django 的 simplejson，
Python 2.7 開始支援<a href="http://docs.python.org/library/json.html">原生的 JSON library</a>，速度會快上很多。</p>

<p>（六）<strong>支援許多第三方的函示庫。</strong></p>

<p>在新的 Python 2.7 runtime 可以使用 Django、lxml、jinja2、MarkupSafe、NumPy、PIL、PyCrypto、setuptools、WebOb、YAML、zipimport 這些 third-party libraries。</p>

<p>要在應用程式裡匯入這些 libraries，得先在 app.yaml 中設定好，以 lxml 來說：</p>

<pre><code>libraries:
- name: lxml
  version: "2.3"
</code></pre>

<p>其中 name 是 library 的名稱，version 是要使用的版本，也可以指定「latest」來使用伺服器上最新的版本。詳細的名稱和版本對應表可以在<a href="http://code.google.com/intl/en/appengine/docs/python/python27/using27.html#Configuring_Libraries">官方文件</a>裡找到。</p>

<p>接著就可以在程式裡直接 &#8216;import lxml&#8217; 匯入了。（當然要在本機上測試的話，也得先安裝好相對應的版本囉。）</p>

<p>（七）<strong>webapp 框架升級到 webapp2。</strong></p>

<p>簡單的「Hello, World!」範例：</p>

<pre><code>import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('Hello, WebApp World!')

app = webapp2.WSGIApplication([('/', MainPage)])
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://akr.tw/2011/11/google-app-engine-sdk-160/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>美少女生日貼紙</title>
		<link>http://akr.tw/2010/06/girls-birthday/</link>
		<comments>http://akr.tw/2010/06/girls-birthday/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 11:36:11 +0000</pubDate>
		<dc:creator>akira</dc:creator>
				<category><![CDATA[程式設計]]></category>
		<category><![CDATA[AKB48]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[早安家族]]></category>

		<guid isPermaLink="false">http://akr.tw/?p=31</guid>
		<description><![CDATA[2011/12 &#8211; 由於 Google App Engine 更改計費模式，免費的流量額度已無法負荷，因此關閉該網站。 【美少女生日貼紙】http://girls-birthday.appspot.com/ 說明 可張貼在個人部落格側欄、論壇簽名檔的圖片型小貼紙，自動顯示生日倒數天數並且每天更新。 其實之前就寫過一模一樣的東西了，只不過是放在自己的伺服器上。舊版雖然只開放在私設上面使用，但是流量對於小伺服器來說真是個沉重的負擔，只好限制每小時的 request 次數，所以常常會看到破圖的現象，那是正常的。 後來發現 Google App Engine 這東西，也有相對應的 Image API 可用，索性來研究一下如何「移植」到 GAE 上。 說是移植，但是 GAE 目前還不能跑 PHP（可以的話就不用這麼累了…），其實是整個砍掉重練用 Python 重寫過一遍，最大的難題是 GAE 上的 Image API 不支援 PIL 的 DrawString，也就是在圖上繪出文字，最後解決之道是把所有文字部分做成 PNG 圖檔再加在底圖上…（感謝 GAE 有支援全彩 PNG 的透明背景…）。 總之大致上是完工了，新版的也多做了一個入口頁面，直接複製 HTML 或 BBCode 就可以了，也可貼在任何網站上（希望流量夠用…）。 更新紀錄 2010/7/27 更新 貼紙的背景顏色按照不同的團體分色，也補上了 AKB48 研究生和 SKE48。 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>2011/12 &#8211; 由於 Google App Engine 更改計費模式，免費的流量額度已無法負荷，因此關閉該網站。</strong></p>

<p><span id="more-31"></span></p>

<p><strong>【美少女生日貼紙】http://girls-birthday.appspot.com/</strong></p>

<h1>說明</h1>

<p>可張貼在個人部落格側欄、論壇簽名檔的圖片型小貼紙，自動顯示生日倒數天數並且每天更新。</p>

<p>其實之前就寫過一模一樣的東西了，只不過是放在自己的伺服器上。舊版雖然只開放在<a href="http://www.helloproject.tw/" title="早安家族私設歌迷俱樂部">私設</a>上面使用，但是流量對於小伺服器來說真是個沉重的負擔，只好限制每小時的 request 次數，所以常常會看到破圖的現象，那是正常的。</p>

<p>後來發現 <a href="http://code.google.com/appengine">Google App Engine</a> 這東西，也有相對應的 Image API 可用，索性來研究一下如何「移植」到 GAE 上。</p>

<p>說是移植，但是 GAE 目前還不能跑 PHP（可以的話就不用這麼累了…），其實是整個砍掉重練用 Python 重寫過一遍，最大的難題是 GAE 上的 Image API 不支援 PIL 的 DrawString，也就是在圖上繪出文字，最後解決之道是把所有文字部分做成 PNG 圖檔再加在底圖上…（感謝 GAE 有支援全彩 PNG 的透明背景…）。</p>

<p>總之大致上是完工了，新版的也多做了一個入口頁面，直接複製 HTML 或 BBCode 就可以了，也可貼在任何網站上（希望流量夠用…）。</p>

<h1>更新紀錄</h1>

<h2>2010/7/27 更新</h2>

<p>貼紙的背景顏色按照不同的團體分色，也補上了 AKB48 研究生和 SKE48。</p>

<h2>2010/9/8 更新</h2>

<p>加上了意見回報功能。</p>

<h2>2010/9/20 更新</h2>

<p>應要求新增了 AKB48 研究生、SKE48 Team KII 成員。另外新增的「早安家族前成員」類別，替龜純琳的畢業預留空間。
不過流量快達到上限了…。</p>

<h2>2011/2/23 更新</h2>

<p>新增 RSS Feed。能訂閱最近的 Changelog。
另外流量吃緊，近期要來改寫了。</p>

<h2>2011/4/6</h2>

<p>大改。更新貼紙式樣和快取設定。</p>
]]></content:encoded>
			<wfw:commentRss>http://akr.tw/2010/06/girls-birthday/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

