<?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>kumama &#187; app engine</title>
	<atom:link href="http://kumama.org/category/app-engine/feed/" rel="self" type="application/rss+xml" />
	<link>http://kumama.org</link>
	<description>go言語とかgolangとかGAEとかネットサービスとかその他色々・・・</description>
	<lastBuildDate>Thu, 28 Apr 2011 09:39:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Python simple_server tuning</title>
		<link>http://kumama.org/2011/02/python_simple_server_tuinig/</link>
		<comments>http://kumama.org/2011/02/python_simple_server_tuinig/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 08:03:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=223</guid>
		<description><![CDATA[　GAE/PythonでごそごそやってますがたまーにGAEじゃ出来ない事をしたくなるときが有ります。ローカルのデバイス操作したりファイルごにょごにょしたり。そんな時は…Apache入れてmod_wsgi入れて…って言うのが王道にも思いますが結構大変。いっそのことdev_appserverで逃げようかとか思ったりもするもののライセンスも良く解からん上、シングルスレッド動作のwebサーバなので気が引けます。 　で、Pythonに漏れなく付いてくるwsgiref.simple_serverとbottle+sqlalchemy/sqlite+flaskで落ち着いてたんですがやっぱりパフォーマンスが…。って事でちょっとぐぐる先生に聞いてみるとこんなページを紹介されるのでした。 Nicholas Piël » Benchmark of Python Web Servers すげー、その調査力に感服。って違うｒｙ 　gevent/libeventが良いですね～。wsgiref.simple_serverだと 2.6TPS エラー有りまくりだったアプリを試しにgevent.wsgi.WSGIServerにするとそれだけで13.7TPS！エラーも無しといい感じ。なんですが個人的なホーム鯖でgevent/libeventは流石にやり杉な雰囲気です。お試しはLinuxでやってますが諸事情からホーム鯖はWindowsです（ドライバがWindowsしかない…）。Internet公開もしないしってことでもうちょっとwsgiref.simple_serverで頑張ってみることにします。 そもそもシングルスレッドを何とかします。 from SocketServer import ThreadingMixIn class ThreadingWsgiServer(ThreadingMixIn, WSGIServer): pass class ThreadingWSGIRefServer(ServerAdapter): def run(self, handler): # pragma: no cover from wsgiref.simple_server import make_server, WSGIRequestHandler if self.quiet: class QuietHandler(WSGIRequestHandler): def log_request(*args, **kw): pass self.options['handler_class'] = QuietHandler self.options['server_class'] = ThreadingWsgiServer srv = make_server(self.host, self.port, [...]]]></description>
			<content:encoded><![CDATA[<p>　GAE/PythonでごそごそやってますがたまーにGAEじゃ出来ない事をしたくなるときが有ります。ローカルのデバイス操作したりファイルごにょごにょしたり。そんな時は…Apache入れてmod_wsgi入れて…って言うのが王道にも思いますが結構大変。いっそのことdev_appserverで逃げようかとか思ったりもするもののライセンスも良く解からん上、シングルスレッド動作のwebサーバなので気が引けます。<br />
　で、Pythonに漏れなく付いてくるwsgiref.simple_serverとbottle+sqlalchemy/sqlite+flaskで落ち着いてたんですがやっぱりパフォーマンスが…。って事でちょっとぐぐる先生に聞いてみるとこんなページを紹介されるのでした。</p>
<p><a href="http://nichol.as/benchmark-of-python-web-servers" >Nicholas Piël » Benchmark of Python Web Servers</a></p>
<p>すげー、その調査力に感服。って違うｒｙ</p>
<p>　gevent/libeventが良いですね～。wsgiref.simple_serverだと 2.6TPS エラー有りまくりだったアプリを試しにgevent.wsgi.WSGIServerにするとそれだけで13.7TPS！エラーも無しといい感じ。なんですが個人的なホーム鯖でgevent/libeventは流石にやり杉な雰囲気です。お試しはLinuxでやってますが諸事情からホーム鯖はWindowsです（ドライバがWindowsしかない…）。Internet公開もしないしってことでもうちょっとwsgiref.simple_serverで頑張ってみることにします。</p>
<p>そもそもシングルスレッドを何とかします。</p>
<blockquote><p>from SocketServer import ThreadingMixIn</p>
<p>class ThreadingWsgiServer(ThreadingMixIn, WSGIServer):<br />
    pass</p>
<p>class ThreadingWSGIRefServer(ServerAdapter):<br />
  def run(self, handler): # pragma: no cover<br />
    from wsgiref.simple_server import make_server, WSGIRequestHandler<br />
    if self.quiet:<br />
      class QuietHandler(WSGIRequestHandler):<br />
        def log_request(*args, **kw): pass<br />
      self.options['handler_class'] = QuietHandler<br />
    self.options['server_class'] = ThreadingWsgiServer<br />
    srv = make_server(self.host, self.port, handler, **self.options)<br />
    srv.serve_forever()</p>
<p>bottle.run( server=ThreadingWSGIRefServer, host='0.0.0.0', port=8080,<br />
    interval=1, reloader=False, quiet=True )</p></blockquote>
<p>ついでにログ抑制もやってみたり。後、Windowsだと特に遅くなるクライアントIPアドレスのDNSリバースlookupを<a href="http://bugs.python.org/issue6085">http://bugs.python.org/issue6085</a>を参考に外します。まー、ログ出さないなら外す必要も無いんですが、出す出さないでパフォーマンスの変化を見るために一応。</p>
<blockquote><p>def _bare_address_string(self):<br />
  host, port = self.client_address[:2]<br />
  return '%s' % host</p>
<p>import BaseHTTPServer<br />
BaseHTTPServer.BaseHTTPRequestHandler.address_string = \<br />
        _bare_address_string</p></blockquote>
<p>ぐぐる先生はこんなの↓も教えてくれましたがこれはちょっとやり杉。</p>
<blockquote><p>def getfqdn(name=''):<br />
    return name<br />
import socket<br />
socket.getfqdn=getfqdn</p></blockquote>
<p>quiet=Falseで8.4TPS、quiet=Trueで 10.9TPSって所まで改善。5倍差があると流石にgeventしかないなと思うものの2倍差も無いところまでくるとまーgevent使うことも無いなに変わるから不思議。ログ出すとパフォーマンスは悪くなりますがまぁ良いかと思えなくも無いのでとりあえず出す感じで。<br />
<span id="more-223"></span></p>
<p>ちなみにgevent/bottleだとこんな感じのコードに。</p>
<blockquote><p>
  from gevent import wsgi<br />
  application = bottle.default_app()<br />
  wsgi.WSGIServer(('', 8088), application).serve_forever()
</p></blockquote>
<p>と、頑張ったところでSQLAlchemyがちょい重ということに気づいてorzなのですが…。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2011/02/python_simple_server_tuinig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>英語で読もう</title>
		<link>http://kumama.org/2011/02/read-in-english/</link>
		<comments>http://kumama.org/2011/02/read-in-english/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 06:44:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=217</guid>
		<description><![CDATA[GAE(Google App Engine)上のTwitterクライアント、一つ放置してた問題に対応。それはsearch apiの回数制限。他のAPIはユーザベースでrate limitされているのでログインしていればAPI制限に引っかかる事はまずないんだけど、search apiだけはTwitter側でリクエスト元のIPアドレスベースでrate limitしている・・・のでGAEのインスタンス共有している他ユーザーがsearch api叩きまくってるとすぐにlimitにひかっかる。ちょっとネットを彷徨った感じsearch apiだけは別鯖へproxyしろっていうのがgoogle様のお告げの様でその様に。 とはいえ別鯖ってOpenProxy使うって訳にも行かないのでVPSに飛ばしてと思ってたら…という所で本題。 　VPS上（つまりこのサーバ）ではapacheが上がってます。apacheのmod_proxy辺りでGAEから受けてsearch.twitter.comへ転送しても良いんだけどmod_proxyは一般的かつ便利なだけにまじめに設定しないと穴になることも多く…と避けて単純にstoneで転送させる方針で＝つまりapacheの80番ポートとは別ポートで。と思ったらGAEのurlfetchのドキュメントに以下書かれてます。 URL は、HTTP（80）および HTTPS（443）の標準ポートを使用しなければなりません。ポートはスキーマによって決まりますが、ポートがスキーマの標準である限り、URL で指定することもできます（https://...:443/）。アプリケーションはリモート ホストの任意のポートに接続することはできません。また、スキーマの非標準ポートを使用することもできません。 うーん、と思って早半年（笑）ふと思い立って英語のドキュメントを見ると。 An app can fetch a URL using HTTP (normal) or HTTPS (secure). The URL specifies the scheme to use: http://... or https://... The URL to be fetched can use any port number in the following ranges: 80-90, 440-450, [...]]]></description>
			<content:encoded><![CDATA[<p> GAE(Google App Engine)上のTwitterクライアント、一つ放置してた問題に対応。それはsearch apiの回数制限。他のAPIはユーザベースでrate limitされているのでログインしていればAPI制限に引っかかる事はまずないんだけど、search apiだけはTwitter側でリクエスト元のIPアドレスベースでrate limitしている・・・のでGAEのインスタンス共有している他ユーザーがsearch api叩きまくってるとすぐにlimitにひかっかる。ちょっとネットを彷徨った感じsearch apiだけは別鯖へproxyしろっていうのがgoogle様のお告げの様でその様に。<br />
とはいえ別鯖ってOpenProxy使うって訳にも行かないのでVPSに飛ばしてと思ってたら…という所で本題。</p>
<p>　VPS上（つまりこのサーバ）ではapacheが上がってます。apacheのmod_proxy辺りでGAEから受けてsearch.twitter.comへ転送しても良いんだけどmod_proxyは一般的かつ便利なだけにまじめに設定しないと穴になることも多く…と避けて単純にstoneで転送させる方針で＝つまりapacheの80番ポートとは別ポートで。と思ったらGAEのurlfetchのドキュメントに以下書かれてます。</p>
<blockquote><p>URL は、HTTP（80）および HTTPS（443）の標準ポートを使用しなければなりません。ポートはスキーマによって決まりますが、ポートがスキーマの標準である限り、URL で指定することもできます（https://...:443/）。アプリケーションはリモート ホストの任意のポートに接続することはできません。また、スキーマの非標準ポートを使用することもできません。</p></blockquote>
<p>うーん、と思って早半年（笑）ふと思い立って英語のドキュメントを見ると。</p>
<blockquote><p>An app can fetch a URL using HTTP (normal) or HTTPS (secure). The URL specifies the scheme to use: http://... or https://...<br />
The URL to be fetched can use any port number in the following ranges: 80-90, 440-450, 1024-65535. If the port is not mentioned in the URL, the port is implied by the scheme: http://... is port 80, https://... is port 443.</p></blockquote>
<p>なんじゃそりゃー。という事でtweepyのsearch apiの投げ先をここにしてstoneをほにゃっ※１て無事search復活。長い半年でしたｗｗｗｗｗ<br />
<span id="more-217"></span><br />
意欲的に翻訳されてて日本語ドキュメントが存在するのは良いことなんだけど旬なものは更新早いから？と思ったら英語版ドキュメントを確認すべしっていうのは個人的には鉄則なんだけどGAEのドキュメントってAccept-Languageみて自動的に日本語へリダイレクトされちゃうのが難。今は日本語ドキュメントからURL書き換えて飛んでいます。</p>
<p>日：http://code.google.com/intl/ja/appengine/docs/python/urlfetch/overview.html<br />
英：http://code.google.com/intl/en/appengine/docs/python/urlfetch/overview.html</p>
<p>※１ twitter側でHTTPヘッダのHost:フィールド参照しているのでその書換えが必要。書き換えないと301食らいます。これもGAEの制限で飛ばし先とHost:フィールドは必ず一致する仕様なので（Host:フィールドは変更できない）仕方なし。stoneは標準でヘッダ追加は対応していますが書換えは対応していないのでほにゃっとコードでっち上げて…</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2011/02/read-in-english/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>求ム：挑戦者w</title>
		<link>http://kumama.org/2010/07/need-challenger/</link>
		<comments>http://kumama.org/2010/07/need-challenger/#comments</comments>
		<pubDate>Sun, 04 Jul 2010 13:04:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=210</guid>
		<description><![CDATA[ガラケー用の twitter クライアントweb作っています。 一応DoCoMoで動いてますがAUとかSBMで試してもらえると助かります。 ま、ほかの既存の携帯向けサービスでも良いんだけど、 アイコンとか要らんから軽くしてくれというかそういう方向性で。 ほぼtwitter本家のmobile webのパクリです。 ただコメント付きRTというかQT？しやすくしてたりしゃべりやすい対応を入れてたり。 自分が使いやすいようにちょっと機能追加したかんじ。 http://t.kumama.org/　：：tw mode 自分のガラケーSO703iでのみ動作確認していますが、 たぶんAUでもSBでもほとんどの携帯で大丈夫なはず。 なんせSO703i、３年前のモデルですからwww ソース公開していて http://code.google.com/p/twmode/。 GAEってGoogle App Engine使ってるんでQuotaまではかなり行けるはず。 App Engineのwebappとかtemplateとかtemplateのcustom filterとか tweepyとかdeferred.delayとか使ってるので、 その辺のサンプルにも良いかも。 iphone 4白出たらMNPしますがそれまでの延命用ってことで。]]></description>
			<content:encoded><![CDATA[<p>ガラケー用の twitter クライアントweb作っています。<br />
一応DoCoMoで動いてますがAUとかSBMで試してもらえると助かります。</p>
<p>ま、ほかの既存の携帯向けサービスでも良いんだけど、<br />
アイコンとか要らんから軽くしてくれというかそういう方向性で。</p>
<p>ほぼtwitter本家のmobile webのパクリです。<br />
ただコメント付きRTというかQT？しやすくしてたりしゃべりやすい対応を入れてたり。<br />
自分が使いやすいようにちょっと機能追加したかんじ。</p>
<p><a href="http://t.kumama.org/">http://t.kumama.org/</a>　：：tw mode</p>
<p>自分のガラケーSO703iでのみ動作確認していますが、<br />
たぶんAUでもSBでもほとんどの携帯で大丈夫なはず。<br />
なんせSO703i、３年前のモデルですからwww</p>
<p>ソース公開していて <a href="http://code.google.com/p/twmode/">http://code.google.com/p/twmode/</a>。</p>
<p>GAEってGoogle App Engine使ってるんでQuotaまではかなり行けるはず。<br />
App Engineのwebappとかtemplateとかtemplateのcustom filterとか<br />
tweepyとかdeferred.delayとか使ってるので、<br />
その辺のサンプルにも良いかも。</p>
<p>iphone 4白出たらMNPしますがそれまでの延命用ってことで。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/07/need-challenger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAE::GoogleAppEngineLauncherのpythonパス</title>
		<link>http://kumama.org/2010/02/gaegoogleappenginelauncher%e3%81%aepython%e3%83%91%e3%82%b9/</link>
		<comments>http://kumama.org/2010/02/gaegoogleappenginelauncher%e3%81%aepython%e3%83%91%e3%82%b9/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 09:39:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=152</guid>
		<description><![CDATA[OSX SnowLeopardでGoogleAppEngineLauncher使うときはPythonを2.5系に設定し直すのは前に書いたけど、今日サブマシンの方で設定変えようとして何度入力しても設定反映のために再起動すると消えて居て反映されないという・・・。 ちょっと調べてみると Issue 1 - google-appengine-mac-launcher - Python path has no apparent effect - Project Hosting on Google Code に書いて有るとおり、Python2.5のパス入れた後にEnterキー押さないと忘れるらしい・・・。 しかもissue #1ってorz]]></description>
			<content:encoded><![CDATA[<p>OSX SnowLeopardでGoogleAppEngineLauncher使うときはPythonを2.5系に設定し直すのは前に書いたけど、今日サブマシンの方で設定変えようとして何度入力しても設定反映のために再起動すると消えて居て反映されないという・・・。</p>
<p>ちょっと調べてみると<br />
<a href="http://code.google.com/p/google-appengine-mac-launcher/issues/detail?id=1" >Issue 1 - google-appengine-mac-launcher - Python path has no apparent effect - Project Hosting on Google Code</a><br />
に書いて有るとおり、Python2.5のパス入れた後にEnterキー押さないと忘れるらしい・・・。</p>
<p>しかもissue #1ってorz</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/02/gaegoogleappenginelauncher%e3%81%aepython%e3%83%91%e3%82%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAEのdev_app_serverでURLFetchでのタイムアウト回避</title>
		<link>http://kumama.org/2010/02/gae-avoid-urlfetch-timeout/</link>
		<comments>http://kumama.org/2010/02/gae-avoid-urlfetch-timeout/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 14:54:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=146</guid>
		<description><![CDATA[GAEのproxy対応でOKなんだけど、 Proxyが遅くてタイムアウトする場合・・・ urlfetch_stub.py の _API_CALL_DEADLINE = 30.0 とかにする。 # Android2.1も試したいものの・・・]]></description>
			<content:encoded><![CDATA[<p><a href="http://kumama.org/2010/01/gaeのproxy対応/">GAEのproxy対応</a>でOKなんだけど、<br />
Proxyが遅くてタイムアウトする場合・・・</p>
<p>urlfetch_stub.py の _API_CALL_DEADLINE = 30.0 とかにする。</p>
<p># Android2.1も試したいものの・・・</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/02/gae-avoid-urlfetch-timeout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GAEのproxy対応</title>
		<link>http://kumama.org/2010/01/gae%e3%81%aeproxy%e5%af%be%e5%bf%9c/</link>
		<comments>http://kumama.org/2010/01/gae%e3%81%aeproxy%e5%af%be%e5%bf%9c/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 14:10:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=133</guid>
		<description><![CDATA[うーん。まだ不十分だった。 URL Fetchというかwebappでurllib2使う場合、dev_appserver.pyが、 Proxy対応していない。 http://code.google.com/p/googleappengine/issues/detail?id=544 この辺のパッチを参考に適当に。 TwitterのOAuth認証させるとか外部URLにアクセスする場合は必要かと。 って思ったら今度はSnowLeopardでurllibが動かなかったりorz Pythonが2.6に成ってるのが原因ぽいけどこっちはもうちょっとちゃんと見よう。]]></description>
			<content:encoded><![CDATA[<p>うーん。まだ不十分だった。</p>
<p>URL Fetchというかwebappでurllib2使う場合、dev_appserver.pyが、<br />
Proxy対応していない。<br />
<a href="http://code.google.com/p/googleappengine/issues/detail?id=544">http://code.google.com/p/googleappengine/issues/detail?id=544</a><br />
この辺のパッチを参考に適当に。</p>
<p>TwitterのOAuth認証させるとか外部URLにアクセスする場合は必要かと。</p>
<p>って思ったら今度はSnowLeopardでurllibが動かなかったりorz</p>
<p>Pythonが2.6に成ってるのが原因ぽいけどこっちはもうちょっとちゃんと見よう。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/01/gae%e3%81%aeproxy%e5%af%be%e5%bf%9c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>app engine::proxy環境でDeploy</title>
		<link>http://kumama.org/2010/01/app-engine-proxy-deploy/</link>
		<comments>http://kumama.org/2010/01/app-engine-proxy-deploy/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 11:38:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[app engine]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=125</guid>
		<description><![CDATA[proxy環境って既にもう特殊なのか知らん。golangにしてもapp engine launcherにしても、 あんまりproxy対応って重要視されてなさげ。そこそこの規模の会社だとproxyが普通だとおもうんだけどなぁ。間違ってる？！ と、app engineとかサブタイトルに入れてながら何にも書いてなかったのでエントリ。 結局の所、App Engine SDKっていうかLauncherはPythonのurllib2に依存してて、 urllib2のhttpsトンネル対応がPython 2.5でも2.6でも3.0でもリリースに乗ってなかったりして、 混乱してる風。2.6と3.0はリリースに含まれそうだけど、App Engine SDK推奨のPython2.5系だとリリースもへったくれもない。 解決策は urllib/urllib2: HTTPS over (Squid) Proxy fails に有るパッチを当てて、環境変数 http_proxy, https_proxyを適切に設定する。 OSX, Windowsで確認済み。]]></description>
			<content:encoded><![CDATA[<p>proxy環境って既にもう特殊なのか知らん。golangにしてもapp engine launcherにしても、<br />
あんまりproxy対応って重要視されてなさげ。そこそこの規模の会社だとproxyが普通だとおもうんだけどなぁ。間違ってる？！</p>
<p>と、app engineとかサブタイトルに入れてながら何にも書いてなかったのでエントリ。</p>
<p>結局の所、App Engine SDKっていうかLauncherはPythonのurllib2に依存してて、<br />
urllib2のhttpsトンネル対応がPython 2.5でも2.6でも3.0でもリリースに乗ってなかったりして、<br />
混乱してる風。2.6と3.0はリリースに含まれそうだけど、App Engine SDK推奨のPython2.5系だとリリースもへったくれもない。</p>
<p>解決策は<br />
<a href="http://bugs.python.org/issue1424152">urllib/urllib2: HTTPS over (Squid) Proxy fails</a><br />
に有るパッチを当てて、環境変数 http_proxy, https_proxyを適切に設定する。</p>
<p>OSX, Windowsで確認済み。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/01/app-engine-proxy-deploy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

