<?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>krks.net/wp &#187; 開発</title>
	<atom:link href="http://krks.net/wp/category/%e9%96%8b%e7%99%ba/feed/" rel="self" type="application/rss+xml" />
	<link>http://krks.net/wp</link>
	<description></description>
	<lastBuildDate>Thu, 29 Jul 2010 13:06:01 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ニコニコ動画をevernoteにクリップしたあとに、ノートにサムネイルとかつけてちょっと豪華にしてくれるwebサービス「ＢＵＮ☆ＴＡＮ」をリリースしました。</title>
		<link>http://krks.net/wp/2010/07/29/%e3%83%8b%e3%82%b3%e3%83%8b%e3%82%b3%e5%8b%95%e7%94%bb%e3%82%92evernote%e3%81%ab%e3%82%af%e3%83%aa%e3%83%83%e3%83%97%e3%81%97%e3%81%9f%e3%81%82%e3%81%a8%e3%81%ab%e3%80%81%e3%83%8e%e3%83%bc%e3%83%88/</link>
		<comments>http://krks.net/wp/2010/07/29/%e3%83%8b%e3%82%b3%e3%83%8b%e3%82%b3%e5%8b%95%e7%94%bb%e3%82%92evernote%e3%81%ab%e3%82%af%e3%83%aa%e3%83%83%e3%83%97%e3%81%97%e3%81%9f%e3%81%82%e3%81%a8%e3%81%ab%e3%80%81%e3%83%8e%e3%83%bc%e3%83%88/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 13:06:01 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[buntan]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=327</guid>
		<description><![CDATA[タイトルで説明が終わっちゃてるのですが、ニコニコとevernoteにどっぷりはまっている一部の人向けのwebサービスとして、
evernoteにニコニコをクリップしたあとに編集するwebサービスを作成しました。
作成した目的は、ニコニコをevernoteに保存したら、単にurlと動画名だけで寂しかったので、サムネぐらい欲しいなと思ったからです。
無料で利用できますので、利用してみるといいと思うよ。
urlはこちら。
http://buntan.krks.net/
以下は、開発者向けに。

このサービスはgae/pythonと、evernoteapiを利用して作成されています。
作成途中でいろいろネットの情報にお世話になりましたが、結構苦労したところも多々あり、
もっとサンプルソースがいっぱいあってほしいなーと思いました。
そんなことや、もっとevernoteapiを利用したサービスがいっぱい出来て俺のevernote生活を便利にしてくれる
サービスを誰か作ってくれないかなぁとの淡い期待もあり、ソースをgithubにて公開してみました。
実際に動かすには、evernoteのapikeyを取得する必要があります。
]]></description>
			<content:encoded><![CDATA[<p>タイトルで説明が終わっちゃてるのですが、ニコニコとevernoteにどっぷりはまっている一部の人向けのwebサービスとして、</p>
<p>evernoteにニコニコをクリップしたあとに編集するwebサービスを作成しました。</p>
<p>作成した目的は、ニコニコをevernoteに保存したら、単にurlと動画名だけで寂しかったので、サムネぐらい欲しいなと思ったからです。</p>
<p>無料で利用できますので、利用してみるといいと思うよ。</p>
<p>urlはこちら。</p>
<p><a href="http://buntan.krks.net/">http://buntan.krks.net/</a></p>
<p>以下は、開発者向けに。</p>
<p><span id="more-327"></span></p>
<p>このサービスはgae/pythonと、evernoteapiを利用して作成されています。<br />
作成途中でいろいろネットの情報にお世話になりましたが、結構苦労したところも多々あり、<br />
もっとサンプルソースがいっぱいあってほしいなーと思いました。</p>
<p>そんなことや、もっとevernoteapiを利用したサービスがいっぱい出来て俺のevernote生活を便利にしてくれる<br />
サービスを誰か作ってくれないかなぁとの淡い期待もあり、<a href="http://github.com/kakkyz81/buntan" target="_blank">ソースをgithubにて公開してみました</a>。<br />
実際に動かすには、evernoteのapikeyを取得する必要があります。</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/07/29/%e3%83%8b%e3%82%b3%e3%83%8b%e3%82%b3%e5%8b%95%e7%94%bb%e3%82%92evernote%e3%81%ab%e3%82%af%e3%83%aa%e3%83%83%e3%83%97%e3%81%97%e3%81%9f%e3%81%82%e3%81%a8%e3%81%ab%e3%80%81%e3%83%8e%e3%83%bc%e3%83%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pythonで、スタックトレースを文字列として得る方法</title>
		<link>http://krks.net/wp/2010/07/11/python%e3%81%a7%e3%80%81%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b9%e3%82%92%e6%96%87%e5%ad%97%e5%88%97%e3%81%a8%e3%81%97%e3%81%a6%e5%be%97%e3%82%8b%e6%96%b9%e6%b3%95/</link>
		<comments>http://krks.net/wp/2010/07/11/python%e3%81%a7%e3%80%81%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b9%e3%82%92%e6%96%87%e5%ad%97%e5%88%97%e3%81%a8%e3%81%97%e3%81%a6%e5%be%97%e3%82%8b%e6%96%b9%e6%b3%95/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 00:19:07 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=318</guid>
		<description><![CDATA[GAEでの開発中に、エラーハンドリングしてExceptでエラーをcatchすることまではできたのだけど、
stacktraceをうまいこと処理する方法が見つからなかったので調べた。以下のようにすると、ログに出力できる。
logging.error(traceback.format_exc(sys.exc_info()&#91;2&#93;))
sys.exc_info()[2]で、stacktraceオブジェクトを取得して、
traceback.format_excで文字列にフォーマットしている。
ということが、リファレンスに書いてあった！
http://www.python.jp/doc/2.4/lib/module-traceback.html
]]></description>
			<content:encoded><![CDATA[<p>GAEでの開発中に、エラーハンドリングしてExceptでエラーをcatchすることまではできたのだけど、<br />
stacktraceをうまいこと処理する方法が見つからなかったので調べた。以下のようにすると、ログに出力できる。</p>
<pre class="brush:python;">logging.error(traceback.format_exc(sys.exc_info()&#91;2&#93;))</pre>
<p>sys.exc_info()[2]で、stacktraceオブジェクトを取得して、<br />
traceback.format_excで文字列にフォーマットしている。</p>
<p>ということが、リファレンスに書いてあった！</p>
<p><a href="http://www.python.jp/doc/2.4/lib/module-traceback.html">http://www.python.jp/doc/2.4/lib/module-traceback.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/07/11/python%e3%81%a7%e3%80%81%e3%82%b9%e3%82%bf%e3%83%83%e3%82%af%e3%83%88%e3%83%ac%e3%83%bc%e3%82%b9%e3%82%92%e6%96%87%e5%ad%97%e5%88%97%e3%81%a8%e3%81%97%e3%81%a6%e5%be%97%e3%82%8b%e6%96%b9%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>appengine(python)で動的にメソッドを呼び出して、urlにマッピングする</title>
		<link>http://krks.net/wp/2010/06/11/268/</link>
		<comments>http://krks.net/wp/2010/06/11/268/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 13:02:17 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=268</guid>
		<description><![CDATA[pythonの動的メソッド呼び出しの方法を使って、
python+appengineで、urlを設定するときに、各urlごとにクラスを作成せずに
クラスの中のメソッド呼び出しを変更する方法。
class OAuth(webapp.RequestHandler):
  def get(self , methodname):
    logging.info(methodname)
    try:
      method = getattr(self, methodname)
    except AttributeError:
      self.response.set_status(404)
      return
    method()

  def aaa(self):
    logging.info("aaa called")
   [...]]]></description>
			<content:encoded><![CDATA[<p>pythonの動的メソッド呼び出しの方法を使って、<br />
python+appengineで、urlを設定するときに、各urlごとにクラスを作成せずに<br />
クラスの中のメソッド呼び出しを変更する方法。</p>
<pre class="brush:python;">class OAuth(webapp.RequestHandler):
  def get(self , methodname):
    logging.info(methodname)
    try:
      method = getattr(self, methodname)
    except AttributeError:
      self.response.set_status(404)
      return
    method()

  def aaa(self):
    logging.info("aaa called")
    pass

pagemapping = &#91;('/oauth(.*)',OAuth )
    &#93;
application = webapp.WSGIApplication(pagemapping, debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()</pre>
<p>/oauthaaaの時、<br />
aaaのメソッドが呼び出される(pagemappiongのカッコで囲んだ値が、getメソッドの第２引数になる。)。<br />
メソッドが無いときは、404を返す。</p>
<p>ちょっと考えると、プライベートにしときたいから呼び出して欲しくないメソッドが呼ばれちゃうとかあるけど、<br />
そこはまぁ、うまいことやると言うことで。</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/06/11/268/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windowsでeclipseを設定し、appengine(python)の開発を行う</title>
		<link>http://krks.net/wp/2010/06/06/windows%e3%81%a7eclipse%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%97%e3%80%81appenginepython%e3%81%ae%e9%96%8b%e7%99%ba%e3%82%92%e8%a1%8c%e3%81%86/</link>
		<comments>http://krks.net/wp/2010/06/06/windows%e3%81%a7eclipse%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%97%e3%80%81appenginepython%e3%81%ae%e9%96%8b%e7%99%ba%e3%82%92%e8%a1%8c%e3%81%86/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 02:49:00 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=251</guid>
		<description><![CDATA[1.pydevのインストール
ヘルプ-&#62;新規ソフトウェアのインストールから
pydev(http://pydev.org/updates/)を追加して、インストール
 
2.ウィンドウ-&#62;設定から、pydevの設定をする
pythonを普通にインストールしていれば、auto configをクリックするだけでok

3.新規プロジェクトの作成で、google appengineプロジェクトを作成する


ここで、Browseからappengineのパスを設定する


プロジェクトエクスプローラーに作成される

4.実際に動作させる
実行の構成から、動作環境を作成する。


Projectに自分の選択したプロジェクト、MainModuleにappengineフォルダのdev_appserver.pyを設定する。
appengineフォルダは、browseから辿れないので直で打ち込む。

argumentsタブの設定をする
引数に、ダブルクォートでソースのフォルダを囲んで記述する。

実行をクリックすると、コンソールにメッセージが出るので、それを確認して
表示されたアドレスにブラウザからアクセスする。

画面が表示されればOK。
]]></description>
			<content:encoded><![CDATA[<h2>1.pydevのインストール</h2>
<p>ヘルプ-&gt;新規ソフトウェアのインストールから<br />
pydev(http://pydev.org/updates/)を追加して、インストール</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/964@952_image.png"> <img title="964@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/964@952_image-300x255.png" alt="" width="300" height="255" /></a></p>
<h2>2.ウィンドウ-&gt;設定から、pydevの設定をする</h2>
<p>pythonを普通にインストールしていれば、auto configをクリックするだけでok</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/972@952_image.png"><img class="alignnone size-medium wp-image-253" title="972@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/972@952_image-300x255.png" alt="" width="300" height="255" /></a></p>
<h2>3.新規プロジェクトの作成で、google appengineプロジェクトを作成する</h2>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1053@952_image.png"><img class="alignnone size-medium wp-image-254" title="1053@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1053@952_image-300x167.png" alt="" width="300" height="167" /></a></p>
<p><img class="alignnone size-medium wp-image-256" title="1055@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1055@952_image-300x187.png" alt="" width="300" height="187" /></p>
<p>ここで、Browseからappengineのパスを設定する</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1057@952_image.png"><img class="alignnone size-medium wp-image-255" title="1057@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1057@952_image-300x187.png" alt="" width="300" height="187" /></a></p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1059@952_image.png"><img class="alignnone size-medium wp-image-257" title="1059@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1059@952_image-300x187.png" alt="" width="300" height="187" /></a></p>
<p>プロジェクトエクスプローラーに作成される</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1061@952_image.png"><img class="alignnone size-medium wp-image-258" title="1061@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1061@952_image-300x137.png" alt="" width="300" height="137" /></a></p>
<h2>4.実際に動作させる</h2>
<p>実行の構成から、動作環境を作成する。</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1073@952_image.png"><img class="alignnone size-medium wp-image-259" title="1073@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1073@952_image-300x289.png" alt="" width="300" height="289" /></a></p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1075@952_image.png"><img class="alignnone size-medium wp-image-260" title="1075@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1075@952_image-300x262.png" alt="" width="300" height="262" /></a></p>
<p>Projectに自分の選択したプロジェクト、MainModuleにappengineフォルダのdev_appserver.pyを設定する。</p>
<p>appengineフォルダは、browseから辿れないので直で打ち込む。</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1077@952_image.png"><img class="alignnone size-medium wp-image-261" title="1077@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1077@952_image-300x262.png" alt="" width="300" height="262" /></a></p>
<p>argumentsタブの設定をする</p>
<p>引数に、ダブルクォートでソースのフォルダを囲んで記述する。</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/1079@952_image.png"><img class="alignnone size-medium wp-image-262" title="1079@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/1079@952_image-300x262.png" alt="" width="300" height="262" /></a></p>
<p>実行をクリックすると、コンソールにメッセージが出るので、それを確認して</p>
<p>表示されたアドレスにブラウザからアクセスする。</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/982@952_image.png"><img class="alignnone size-medium wp-image-264" title="982@952_image" src="http://krks.net/wp/wp-content/uploads/2010/06/982@952_image-300x211.png" alt="" width="300" height="211" /></a></p>
<p>画面が表示されればOK。</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/06/06/windows%e3%81%a7eclipse%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%97%e3%80%81appenginepython%e3%81%ae%e9%96%8b%e7%99%ba%e3%82%92%e8%a1%8c%e3%81%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>google app engine(Python-windows)のインストール</title>
		<link>http://krks.net/wp/2010/06/06/google-app-enginepython-windows%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/</link>
		<comments>http://krks.net/wp/2010/06/06/google-app-enginepython-windows%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/#comments</comments>
		<pubDate>Sun, 06 Jun 2010 01:46:41 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=239</guid>
		<description><![CDATA[前提：Pythonは既にダウンロード＆インストール済みであること。
http://www.python.org/download/

1.SDKのダウンロード(http://code.google.com/intl/ja/appengine/downloads.html)

2.ダウンロードしたmsiファイルでインストール





完了。
]]></description>
			<content:encoded><![CDATA[<p>前提：Pythonは既にダウンロード＆インストール済みであること。</p>
<p><a href="http://www.python.org/download/">http://www.python.org/download/</a></p>
<hr />
<p>1.SDKのダウンロード(<a href="http://code.google.com/intl/ja/appengine/downloads.html">http://code.google.com/intl/ja/appengine/downloads.html</a>)</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/938@936_image.png"><img class="alignnone size-medium wp-image-240" title="938@936_image" src="http://krks.net/wp/wp-content/uploads/2010/06/938@936_image-300x88.png" alt="" width="300" height="88" /></a></p>
<p>2.ダウンロードしたmsiファイルでインストール</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/940@936_image.png"><img class="alignnone size-medium wp-image-241" title="940@936_image" src="http://krks.net/wp/wp-content/uploads/2010/06/940@936_image-300x233.png" alt="" width="300" height="233" /></a></p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/942@936_image.png"><img class="alignnone size-medium wp-image-242" title="942@936_image" src="http://krks.net/wp/wp-content/uploads/2010/06/942@936_image-300x233.png" alt="" width="300" height="233" /></a></p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/942@936_image.png"></a><a href="http://krks.net/wp/wp-content/uploads/2010/06/944@936_image.png"><img class="alignnone size-medium wp-image-243" title="944@936_image" src="http://krks.net/wp/wp-content/uploads/2010/06/944@936_image-300x233.png" alt="" width="300" height="233" /></a></p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/944@936_image.png"></a><a href="http://krks.net/wp/wp-content/uploads/2010/06/946@936_image.png"><img class="alignnone size-medium wp-image-244" title="946@936_image" src="http://krks.net/wp/wp-content/uploads/2010/06/946@936_image-300x233.png" alt="" width="300" height="233" /></a></p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/06/948@936_image.png"><img class="alignnone size-medium wp-image-245" title="948@936_image" src="http://krks.net/wp/wp-content/uploads/2010/06/948@936_image-300x233.png" alt="" width="300" height="233" /></a></p>
<p>完了。</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/06/06/google-app-enginepython-windows%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>freebsdで、youtubeのファイルをダウンロードするports youtube_dlが便利</title>
		<link>http://krks.net/wp/2010/04/08/freebsd%e3%81%a7%e3%80%81youtube%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%99%e3%82%8bports-youtube_dl%e3%81%8c%e4%be%bf/</link>
		<comments>http://krks.net/wp/2010/04/08/freebsd%e3%81%a7%e3%80%81youtube%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%99%e3%82%8bports-youtube_dl%e3%81%8c%e4%be%bf/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 21:41:24 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[メモ]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[ports]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=218</guid>
		<description><![CDATA[FreeBSDのportsの

/usr/ports/www/youtube_dl

を使うと、youtubeのflvファイルをダウンロードできる。
ffmpegと組み合わせて、プレイリストのファイルをダウンロードしたり。

#!/usr/local/bin/ruby
$KCODE="u"
require 'rubygems'
require 'hpricot'
require 'open-uri'
plist = ARGV[0].scan(/p=(\w*)/).first.first
s = open &#8220;http://www.youtube.com/view_play_list?p=#{plist}&#8221;
doc = Hpricot s.read
YOUTUBE_ADDR = &#8220;http://www.youtube.com&#8221;
i = ARGV[1].to_i &#124;&#124; 1
doc.search(&#8220;a.video-thumb-120&#8243;).each do &#124;l&#124;
addr  = l.to_html.scan(/href=&#8221;([^"&#38;]*).*&#8221;/)
title = l.to_html.scan(/img title=&#8221;([^"]*).*&#8221;/).first.first.gsub(&#8221; &#8220;,&#8221;").gsub(&#8220;/&#8221;,&#8221;-&#8221;)
downaddr = YOUTUBE_ADDR + addr.first.first
filename = &#8220;#{Time.now.strftime(&#8220;%Y%m%d&#8221;) + &#8216;_&#8217; + sprintf(&#8220;%04d&#8221;,i) + &#8216;_&#8217; + title}&#8221;
`/usr/local/bin/youtube-dl -o #{filename}.flv #{downaddr}`
`/usr/local/bin/ffmpeg -i #{filename}.flv -acodec copy #{filename}.mp3`
i += 1
end
]]></description>
			<content:encoded><![CDATA[<p>FreeBSDのportsの</p>
<ul>
<li>/usr/ports/www/youtube_dl</li>
</ul>
<p>を使うと、youtubeのflvファイルをダウンロードできる。<br />
ffmpegと組み合わせて、プレイリストのファイルをダウンロードしたり。</p>
<hr />
<p><code>#!/usr/local/bin/ruby<br />
$KCODE="u"<br />
require 'rubygems'<br />
require 'hpricot'<br />
require 'open-uri'</code></p>
<p>plist = ARGV[0].scan(/p=(\w*)/).first.first<br />
s = open &#8220;http://www.youtube.com/view_play_list?p=#{plist}&#8221;</p>
<p>doc = Hpricot s.read</p>
<p>YOUTUBE_ADDR = &#8220;http://www.youtube.com&#8221;<br />
i = ARGV[1].to_i || 1</p>
<p>doc.search(&#8220;a.video-thumb-120&#8243;).each do |l|<br />
addr  = l.to_html.scan(/href=&#8221;([^"&amp;]*).*&#8221;/)<br />
title = l.to_html.scan(/img title=&#8221;([^"]*).*&#8221;/).first.first.gsub(&#8221; &#8220;,&#8221;").gsub(&#8220;/&#8221;,&#8221;-&#8221;)<br />
downaddr = YOUTUBE_ADDR + addr.first.first<br />
filename = &#8220;#{Time.now.strftime(&#8220;%Y%m%d&#8221;) + &#8216;_&#8217; + sprintf(&#8220;%04d&#8221;,i) + &#8216;_&#8217; + title}&#8221;<br />
`/usr/local/bin/youtube-dl -o #{filename}.flv #{downaddr}`<br />
`/usr/local/bin/ffmpeg -i #{filename}.flv -acodec copy #{filename}.mp3`<br />
i += 1<br />
end</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/04/08/freebsd%e3%81%a7%e3%80%81youtube%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%99%e3%82%8bports-youtube_dl%e3%81%8c%e4%be%bf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>checkstyleで特定のフォルダ以下のファイルをチェック対象外にする方法</title>
		<link>http://krks.net/wp/2010/03/29/checkstyle%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e4%bb%a5%e4%b8%8b%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e5%af%be/</link>
		<comments>http://krks.net/wp/2010/03/29/checkstyle%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e4%bb%a5%e4%b8%8b%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e5%af%be/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 08:42:51 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[checkstyle]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=225</guid>
		<description><![CDATA[eclipseでcheckstyleを使うときのメモ
いまさらながら、つい忘れてしまうので。特定のフォルダを無視する方法。
プロジェクトを選択→右クリックして出てくるメニューの設定から、checkstyleを選択して、以下の設定をする。

]]></description>
			<content:encoded><![CDATA[<p>eclipseでcheckstyleを使うときのメモ</p>
<p>いまさらながら、つい忘れてしまうので。特定のフォルダを無視する方法。</p>
<p>プロジェクトを選択→右クリックして出てくるメニューの設定から、checkstyleを選択して、以下の設定をする。<br />
<a href="http://krks.net/wp/wp-content/uploads/2010/03/WS000001.jpg"><img src="http://krks.net/wp/wp-content/uploads/2010/03/WS000001-e1269852040444.jpg" alt="" title="WS000001" width="600" height="565" class="alignnone size-full wp-image-226" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/03/29/checkstyle%e3%81%a7%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%95%e3%82%a9%e3%83%ab%e3%83%80%e4%bb%a5%e4%b8%8b%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e5%af%be/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Androidでデータの読み書きをするときに一番早いのはSQLiteを使うことだよ</title>
		<link>http://krks.net/wp/2010/02/08/android%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e8%aa%ad%e3%81%bf%e6%9b%b8%e3%81%8d%e3%82%92%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab%e4%b8%80%e7%95%aa%e6%97%a9%e3%81%84%e3%81%ae%e3%81%afsqli/</link>
		<comments>http://krks.net/wp/2010/02/08/android%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e8%aa%ad%e3%81%bf%e6%9b%b8%e3%81%8d%e3%82%92%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab%e4%b8%80%e7%95%aa%e6%97%a9%e3%81%84%e3%81%ae%e3%81%afsqli/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:02:17 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=210</guid>
		<description><![CDATA[結論はタイトルどおりです。
実際にコードを書いて
１.ObjectInputStream/ObjectOutputStreamを使う
２.BufferdReaderで読み込み，XmlPullParserで解析/XmlSerializerでXML化し、BufferedWriterで書き込み
３.SQLiteを使って読み込み/書き込み
で時間を測って見たところ、読み込み、書き込みともにSQLiteを使うのが一番早かったです。
特に、読み込み処理での早さは群を抜いてました。
以下、結果です。
   1000バイトのテキストデータを持つオブジェクトを50件処理した時間(ms)  1 2 3 4 5 平均    writeObject 510 341 353 360 451 403    writeXML 612 504 536 523 523 539.6    writeSQLite 553 290 283 304 318 349.6    readObject 423 314 317 208 309 314.2    readXML [...]]]></description>
			<content:encoded><![CDATA[<p>結論はタイトルどおりです。</p>
<p>実際にコードを書いて</p>
<p>１.ObjectInputStream/ObjectOutputStreamを使う<br />
２.BufferdReaderで読み込み，XmlPullParserで解析/XmlSerializerでXML化し、BufferedWriterで書き込み<br />
３.SQLiteを使って読み込み/書き込み</p>
<p>で時間を測って見たところ、読み込み、書き込みともにSQLiteを使うのが一番早かったです。<br />
特に、読み込み処理での早さは群を抜いてました。</p>
<p>以下、結果です。</p>
<p><TABLE FRAME=VOID CELLSPACING=0 COLS=8 RULES=NONE BORDER=0> <TBODY> <TR> <TD   ALIGN=LEFT>1000バイトのテキストデータを持つオブジェクトを50件処理した時間(ms)</TD> <TD  ALIGN=LEFT><BR></TD> <TD  ALIGN=RIGHT >1</TD> <TD  ALIGN=RIGHT >2</TD> <TD  ALIGN=RIGHT >3</TD> <TD  ALIGN=RIGHT >4</TD> <TD  ALIGN=RIGHT >5</TD> <TD  ALIGN=LEFT>平均</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>writeObject</TD> <TD ALIGN=RIGHT >510</TD> <TD ALIGN=RIGHT >341</TD> <TD ALIGN=RIGHT >353</TD> <TD ALIGN=RIGHT >360</TD> <TD ALIGN=RIGHT >451</TD> <TD ALIGN=RIGHT >403</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>writeXML</TD> <TD ALIGN=RIGHT >612</TD> <TD ALIGN=RIGHT >504</TD> <TD ALIGN=RIGHT >536</TD> <TD ALIGN=RIGHT >523</TD> <TD ALIGN=RIGHT >523</TD> <TD ALIGN=RIGHT >539.6</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>writeSQLite</TD> <TD ALIGN=RIGHT  >553</TD> <TD ALIGN=RIGHT  >290</TD> <TD ALIGN=RIGHT  >283</TD> <TD ALIGN=RIGHT  >304</TD> <TD ALIGN=RIGHT  >318</TD> <TD ALIGN=RIGHT  >349.6</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>readObject</TD> <TD ALIGN=RIGHT  >423</TD> <TD ALIGN=RIGHT  >314</TD> <TD ALIGN=RIGHT  >317</TD> <TD ALIGN=RIGHT  >208</TD> <TD ALIGN=RIGHT  >309</TD> <TD ALIGN=RIGHT >314.2</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>readXML</TD> <TD ALIGN=RIGHT  >258</TD> <TD ALIGN=RIGHT  >173</TD> <TD ALIGN=RIGHT  >269</TD> <TD ALIGN=RIGHT  >180</TD> <TD ALIGN=RIGHT  >177</TD> <TD ALIGN=RIGHT  >211.4</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>readSQLite</TD> <TD ALIGN=RIGHT  >52</TD> <TD ALIGN=RIGHT  >47</TD> <TD ALIGN=RIGHT  >51</TD> <TD ALIGN=RIGHT  >149</TD> <TD ALIGN=RIGHT  >147</TD> <TD ALIGN=RIGHT  >89.2</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT><BR></TD> </TR> <TR> <TD  ALIGN=LEFT>1000バイトのテキストデータを持つオブジェクトを500件処理した時間</TD> <TD ALIGN=LEFT><BR></TD> <TD ALIGN=RIGHT  >1</TD> <TD ALIGN=RIGHT  >2</TD> <TD ALIGN=RIGHT  >3</TD> <TD ALIGN=RIGHT  >4</TD> <TD ALIGN=RIGHT  >5</TD> <TD  ALIGN=LEFT>平均</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>writeObject</TD> <TD ALIGN=RIGHT  >3756</TD> <TD ALIGN=RIGHT  >3726</TD> <TD ALIGN=RIGHT  >3607</TD> <TD ALIGN=RIGHT  >3710</TD> <TD ALIGN=RIGHT  >3663</TD> <TD ALIGN=RIGHT >3692.4</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>writeXML</TD> <TD ALIGN=RIGHT  >6220</TD> <TD ALIGN=RIGHT  >5477</TD> <TD ALIGN=RIGHT  >6202</TD> <TD ALIGN=RIGHT  >6392</TD> <TD ALIGN=RIGHT  >8021</TD> <TD ALIGN=RIGHT >6462.4</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>writeSQLite</TD> <TD ALIGN=RIGHT  >1863</TD> <TD ALIGN=RIGHT  >2720</TD> <TD ALIGN=RIGHT  >3577</TD> <TD ALIGN=RIGHT  >2561</TD> <TD ALIGN=RIGHT  >2908</TD> <TD ALIGN=RIGHT >2725.8</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>readObject</TD> <TD ALIGN=RIGHT  >2788</TD> <TD ALIGN=RIGHT  >2574</TD> <TD ALIGN=RIGHT  >2552</TD> <TD ALIGN=RIGHT  >2542</TD> <TD ALIGN=RIGHT  >2398</TD> <TD ALIGN=RIGHT  >2570.8</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>readXML</TD> <TD ALIGN=RIGHT  >2139</TD> <TD ALIGN=RIGHT  >2092</TD> <TD ALIGN=RIGHT  >2098</TD> <TD ALIGN=RIGHT  >2038</TD> <TD ALIGN=RIGHT  >2061</TD> <TD ALIGN=RIGHT >2085.6</TD> </TR> <TR> <TD  ALIGN=LEFT><BR></TD> <TD ALIGN=LEFT>readSQLite</TD> <TD ALIGN=RIGHT  >644</TD> <TD ALIGN=RIGHT  >583</TD> <TD ALIGN=RIGHT  >585</TD> <TD ALIGN=RIGHT  >576</TD> <TD ALIGN=RIGHT  >569</TD> <TD ALIGN=RIGHT >591.4</TD> </TR> </TBODY> </TABLE></p>
<p>テストに使用したコードは，githubにあげていますので、よろしければ見てみてください.</p>
<p>http://github.com/kakkyz81/SerializePerformanceCheck</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/02/08/android%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e3%81%ae%e8%aa%ad%e3%81%bf%e6%9b%b8%e3%81%8d%e3%82%92%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d%e3%81%ab%e4%b8%80%e7%95%aa%e6%97%a9%e3%81%84%e3%81%ae%e3%81%afsqli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android用TumblrクライアントTumblryaをリリースしました</title>
		<link>http://krks.net/wp/2010/01/31/android%e7%94%a8tumblr%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88tumblrya%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/</link>
		<comments>http://krks.net/wp/2010/01/31/android%e7%94%a8tumblr%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88tumblrya%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 12:34:34 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[tumblrya]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=207</guid>
		<description><![CDATA[
ダッシュボードを見ながら、ReblogとLikeの追加ができます。
バックグラウンドである程度先読みを行いますので、快適にTumblrできます。
Android用マーケットで「Tumblrya」で検索してダウンロードできます。無料です。
ぜひぜひ、ご利用ください。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://krks.net/wp/wp-content/uploads/2010/01/tumblr01.ja_.png"><img src="http://krks.net/wp/wp-content/uploads/2010/01/tumblr01.ja_.png" alt="" title="tumblr01.ja" width="320" height="480" class="alignnone size-full wp-image-208" /></a></p>
<p>ダッシュボードを見ながら、ReblogとLikeの追加ができます。</p>
<p>バックグラウンドである程度先読みを行いますので、快適にTumblrできます。</p>
<p>Android用マーケットで「Tumblrya」で検索してダウンロードできます。無料です。</p>
<p>ぜひぜひ、ご利用ください。</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/01/31/android%e7%94%a8tumblr%e3%82%af%e3%83%a9%e3%82%a4%e3%82%a2%e3%83%b3%e3%83%88tumblrya%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%97%e3%81%be%e3%81%97%e3%81%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AndroidからTumblrのdashboardを見るためのアプリ、Tumblryaをリリースしました</title>
		<link>http://krks.net/wp/2010/01/23/android%e3%81%8b%e3%82%89tumblr%e3%81%aedashboard%e3%82%92%e8%a6%8b%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e3%82%a2%e3%83%97%e3%83%aa%e3%80%81tumblrya%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/</link>
		<comments>http://krks.net/wp/2010/01/23/android%e3%81%8b%e3%82%89tumblr%e3%81%aedashboard%e3%82%92%e8%a6%8b%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e3%82%a2%e3%83%97%e3%83%aa%e3%80%81tumblrya%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 01:17:12 +0000</pubDate>
		<dc:creator>kakkyz</dc:creator>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[tumblrya]]></category>

		<guid isPermaLink="false">http://krks.net/wp/?p=173</guid>
		<description><![CDATA[Android端末からTumblrを利用することができます。

AndroLibの紹介ページはこちら
まだまだ粗削りですが、
どんどんバージョンアップ予定なので、よろしくおねがいします。
]]></description>
			<content:encoded><![CDATA[<p>Android端末からTumblrを利用することができます。</p>
<p><a href="http://krks.net/wp/wp-content/uploads/2010/01/tumblr021.png"><img src="http://krks.net/wp/wp-content/uploads/2010/01/tumblr021.png" alt="" title="tumblr02" width="320" height="480" class="size-full wp-image-172" /></a></p>
<p><a href="http://jp.androlib.com/android.application.net-krks-android-tumblrya-pEBD.aspx">AndroLibの紹介ページはこちら</a></p>
<p>まだまだ粗削りですが、<br />
どんどんバージョンアップ予定なので、よろしくおねがいします。</p>
]]></content:encoded>
			<wfw:commentRss>http://krks.net/wp/2010/01/23/android%e3%81%8b%e3%82%89tumblr%e3%81%aedashboard%e3%82%92%e8%a6%8b%e3%82%8b%e3%81%9f%e3%82%81%e3%81%ae%e3%82%a2%e3%83%97%e3%83%aa%e3%80%81tumblrya%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
