<?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; Uncategorized</title>
	<atom:link href="http://kumama.org/category/uncategorized/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>Jolicloud on vaio p インスタントモード入替</title>
		<link>http://kumama.org/2010/04/jolicloud-on-vaio-p-instanton/</link>
		<comments>http://kumama.org/2010/04/jolicloud-on-vaio-p-instanton/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 15:11:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=167</guid>
		<description><![CDATA[ガジェット系の話は別 Blog でやろうと思ってたけどあまりにもこっちの Blog の更新ねたが無いので。 とりあえずこれを。 使ったのは jolicloud の PreFinal。 GMA500 というか poulsbo のドライバは標準で入ってるものの微妙にエラーで X が vesa でしか起動しないので ubuntu 9.10(Karmic) 用のスクリプトでpsb関連を再導入。 HardwareSupportComponentsVideoCardsPoulsbo - Ubuntu Wiki 導入前は非常に遅い。使えない。アイコンのエフェクトとか駄目駄目。画面狭いといい事なしですがドライバ導入でいい感じに。アプリ起動時にアイコンがクルって回るのが可愛くてお気に入り。Firefox, chrome が普通に使えるしインストール後のサイズが2G程度、日本語入力も簡単に設定できる。 Ubuntu notebook rimix とか moblin とか chromeos とか android も色々試したんだけど今ひとつ気に入らず。jolicloud は気に入っています。XMB捨ててでも入れ替える価値あり。 XMBボタンで起動出来るインスタントモードは巷で言われているように kernel.pam と initrd.pam で kernel と initrd が指定されてます。って事でそれを書き換えればOK…。とは行かないのが悩みの種。 インスタントモードの構成ファイル中、 rootfs とか menu が ext2 でマウントできるのに対し [...]]]></description>
			<content:encoded><![CDATA[<p>ガジェット系の話は別 Blog でやろうと思ってたけどあまりにもこっちの Blog の更新ねたが無いので。</p>
<p>とりあえずこれを。</p>
<p><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/W6y7vVshzhk&#038;hl=ja_JP&#038;fs=1&#038;rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/W6y7vVshzhk&#038;hl=ja_JP&#038;fs=1&#038;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p>使ったのは jolicloud の PreFinal。 GMA500 というか poulsbo のドライバは標準で入ってるものの微妙にエラーで X が vesa でしか起動しないので ubuntu 9.10(Karmic) 用のスクリプトでpsb関連を再導入。</p>
<p><a href="http://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo/">HardwareSupportComponentsVideoCardsPoulsbo - Ubuntu Wiki</a></p>
<p>導入前は非常に遅い。使えない。アイコンのエフェクトとか駄目駄目。画面狭いといい事なしですがドライバ導入でいい感じに。アプリ起動時にアイコンがクルって回るのが可愛くてお気に入り。Firefox, chrome が普通に使えるしインストール後のサイズが2G程度、日本語入力も簡単に設定できる。</p>
<p>Ubuntu notebook rimix とか moblin とか chromeos とか android も色々試したんだけど今ひとつ気に入らず。jolicloud は気に入っています。XMB捨ててでも入れ替える価値あり。</p>
<p>XMBボタンで起動出来るインスタントモードは巷で言われているように kernel.pam と initrd.pam で kernel と initrd が指定されてます。って事でそれを書き換えればOK…。とは行かないのが悩みの種。</p>
<p>インスタントモードの構成ファイル中、 rootfs とか menu が ext2 でマウントできるのに対し initrd だけはフォーマット不明。 tar とか gzip とか bzip2 とか cpio とか lzma とか lzo とか cramfs とか色々試したけど不明。 kernel.pam って corel の Instant on の機能のように言われてるけど本家Instant on自体は grub2 使ってるみたいでこの kernel.pam を利用するブートローダーは EFI の InsydeH2O の機能の様な気がします。</p>
<p>それはさておき windows パーティションに rootfs のファイルを置いて loop マウントしたかったのでどうしても initrd が必要…でも上の通り inited のフォーマットがわからず、試しにcpio+gzなinitrdを置いても読んでくれない。Instantモードでxterm起動して見てみると device ram0 で minixfs なので initrdなのは間違いないんだけど…。</p>
<p>って事で逃げ手で、Linux の 2.6 から使える initramfs を使って kernel に initrd を抱き合わせました。昔ってinitrd.gzを単純に連結したらOKだった気がするんだけどARMだったかな。うろ覚え。initramfs は kernel を再構築する必要が有ります。</p>
<p>kernel再構築時、.configのCONFIG_INITRAMFS_SOURCEにinitrdのディレクトリを指定するだけ。インストールした jolicluod から /initrd.gz を持ってきて展開。後、loopbackマウント用にchroot周りシェル書かないと駄目かもと思ってたんだけどjolicloudの(ubuntuの)/initが優秀でオプションだけでいけました。bzImageサイズが10M超で駄目かとも思ってたけどこれも無事読み込んでるみたいで危惧に終わりました。駄目だったらkernel.pamからgrub起動して(realmodeに戻る必要が有るけど)そこからkernel起動かとかも思ってたもののそこまでせずに済んで一安心。</p>
<p>起動時間短縮のために不要kmod削除しようかと思ったもののまぁ我慢できるレベルって事で。今後の改善点。</p>
<p>ここ一年弱Pがメインマシンです。AndroidとかLinuxとかビルドしたり画像系の作業する時は流石にデスクトップでやってますがpythonのGAEぐらいならPで十分。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/04/jolicloud-on-vaio-p-instanton/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>HTML5とflashとIE6</title>
		<link>http://kumama.org/2010/02/html5-ie6-flash/</link>
		<comments>http://kumama.org/2010/02/html5-ie6-flash/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 14:12:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=148</guid>
		<description><![CDATA[正直、chromeでHTML５がサポートされつつ有るし、 websocketsすげーって思ってる自分としては、 何となくFlashが嫌いでHTML5頑張れー、 Adobe製品に負けないようなオーサリングソフト出てこいー、 って思ってたけど。 未だに２割ぐらいのシェアを占めるIE6対応（pngのalpha対応とか、Aタグ以外での:hoverとかmin-widthとか）とか、クロスブラウザでのテストとかしてるととっても面倒。 HTML５が出たからといってIE6でcanvasが動く訳じゃないし、 ブザウザによって実装が違う部分はどうしても出てくるだろうし、 こりゃ正直、一般向けで少しでも多くの人に見てもらいたいと思っている、 ブラウザを強制できないサイトでのHTML5使用は難しいかなぁと感じた。 GoogleのIE6サポート終了もGMailに限っての事で、 検索に関しては対象じゃない。 GMailを使うならIE6は駄目よっていうブラウザを強制出来るサイトと、 検索エンジンから飛んできてもらうサイトでは立場が違う。 個人的には業務ではブラウザの強制も出来るけど、 一般サイトではブラウザの強制は難しいかなと思ってる。 業務でcanvas使うようなアプリなんて限られてるし、 canvasとか使わない、それならHTML5じゃなくてajaxで十分だし。 FlashPlayerの様にHTML5 Playerが有れば良いんだろうけど、 何処が作るかが微妙。 自社の事よりもグローバルに考えられるHTML5推進派が居れば可能だろうけど、 それはそれで無い気がする。 Flashの便利さとかリキッドレイアウトがWeb制作のワークフローになじまない感じとか、 ちょっと理解出来た気がする。]]></description>
			<content:encoded><![CDATA[<p>正直、chromeでHTML５がサポートされつつ有るし、<br />
websocketsすげーって思ってる自分としては、<br />
何となくFlashが嫌いでHTML5頑張れー、<br />
Adobe製品に負けないようなオーサリングソフト出てこいー、<br />
って思ってたけど。<br />
<span id="more-148"></span><br />
未だに２割ぐらいのシェアを占めるIE6対応（pngのalpha対応とか、Aタグ以外での:hoverとかmin-widthとか）とか、クロスブラウザでのテストとかしてるととっても面倒。<br />
HTML５が出たからといってIE6でcanvasが動く訳じゃないし、<br />
ブザウザによって実装が違う部分はどうしても出てくるだろうし、<br />
こりゃ正直、一般向けで少しでも多くの人に見てもらいたいと思っている、<br />
ブラウザを強制できないサイトでのHTML5使用は難しいかなぁと感じた。<br />
GoogleのIE6サポート終了もGMailに限っての事で、<br />
検索に関しては対象じゃない。</p>
<p>GMailを使うならIE6は駄目よっていうブラウザを強制出来るサイトと、<br />
検索エンジンから飛んできてもらうサイトでは立場が違う。</p>
<p>個人的には業務ではブラウザの強制も出来るけど、<br />
一般サイトではブラウザの強制は難しいかなと思ってる。</p>
<p>業務でcanvas使うようなアプリなんて限られてるし、<br />
canvasとか使わない、それならHTML5じゃなくてajaxで十分だし。</p>
<p>FlashPlayerの様にHTML5 Playerが有れば良いんだろうけど、<br />
何処が作るかが微妙。</p>
<p>自社の事よりもグローバルに考えられるHTML5推進派が居れば可能だろうけど、<br />
それはそれで無い気がする。</p>
<p>Flashの便利さとかリキッドレイアウトがWeb制作のワークフローになじまない感じとか、<br />
ちょっと理解出来た気がする。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/02/html5-ie6-flash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Chrome 4.0がリリースされた</title>
		<link>http://kumama.org/2010/01/chrome-4_0-released/</link>
		<comments>http://kumama.org/2010/01/chrome-4_0-released/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 12:55:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=138</guid>
		<description><![CDATA[Chrome 4.0がリリースされた。ということはWebSocketが普通に使えるようになったということ。 HTML5は勧告が2012年だから・・・って言われたりもするけど、 Chromeとsafariで使えればそれでいいやと言う感じ。 golangはリリース多すぎ。 多すぎてプロダクションにはちょっとねーと言われたりもするけど、 ま、それはそれ。 Python、Rubyですらちょっとねーと言われるようなIT業界も有るから適材適所使われるところでは使われるでしょう。]]></description>
			<content:encoded><![CDATA[<p>Chrome 4.0がリリースされた。ということはWebSocketが普通に使えるようになったということ。<br />
HTML5は勧告が2012年だから・・・って言われたりもするけど、<br />
Chromeとsafariで使えればそれでいいやと言う感じ。</p>
<p>golangはリリース多すぎ。<br />
多すぎてプロダクションにはちょっとねーと言われたりもするけど、<br />
ま、それはそれ。</p>
<p>Python、Rubyですらちょっとねーと言われるようなIT業界も有るから適材適所使われるところでは使われるでしょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2010/01/chrome-4_0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>はじめましてはじめました</title>
		<link>http://kumama.org/2009/07/%e5%87%8d%e7%b5%90%e4%b8%ad%e3%83%bb%e3%83%bb%e3%83%bb/</link>
		<comments>http://kumama.org/2009/07/%e5%87%8d%e7%b5%90%e4%b8%ad%e3%83%bb%e3%83%bb%e3%83%bb/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 15:19:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=7</guid>
		<description><![CDATA[くまぞうとくまきちです。 自己紹介はのちほど…]]></description>
			<content:encoded><![CDATA[<p>くまぞうとくまきちです。</p>
<p>自己紹介はのちほど…</p>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2009/07/%e5%87%8d%e7%b5%90%e4%b8%ad%e3%83%bb%e3%83%bb%e3%83%bb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>under construction</title>
		<link>http://kumama.org/2009/07/hello-world/</link>
		<comments>http://kumama.org/2009/07/hello-world/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 06:47:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kumama.org/?p=1</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_3" class="wp-caption alignnone" style="width: 330px">Still under construction.</p>
<p><img class="size-full wp-image-3" title="kumama" src="http://kumama.org/wp-content/uploads/2009/07/kumama.jpg" alt="kumama" width="320" height="199" /></p>
<p><p class="wp-caption-text">kumama</p></div>
]]></content:encoded>
			<wfw:commentRss>http://kumama.org/2009/07/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

