吉原祇園祭は楽しかった。太鼓いいね。

娘は義母に綿菓子買ってもらったり落書きせんべいとか、ヨーヨーとかウィンナーとかやりたい放題だった。

12062010 Python
参考
paste
def app(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']
if __name__ == '__main__':
from paste import httpserver
httpserver.serve(app, host='127.0.0.1', port='8080')
wsgiref
def app(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']
if __name__ == '__main__':
from wsgiref import simple_server
server = simple_server.make_server('', 8080, app)
server.serve_forever()
app関数は同じ。
11062010 sake
11062010 Python
Eggがよくわからんと少し調べてたら、Python plugins egg cooking mini-howto ってのがわかりやすかったので、デコレーターっぽいことをしてみた。
まず環境汚すのがいやだったのでvirtualenvでテスト環境をつくる。pylonsだとスクリプトでよろしくやってくれるのだけど、自分で作る場合にはvirtualenvwrapperを使うとよいらしい。
というか使ってみると便利すぎ。これは手放せん。
続いて実際に書いてみる。ディレクトリ構造はこんな感じ
$ ls -R deco
minus/ mydeco.py plus/
deco/minus:
minus_plugin/ setup.py
deco/minus/minus_plugin:
minus.py
deco/plus:
plus_plugin/ setup.py
deco/plus/plus_plugin:
plus.py
ポイントはsetup.pyのentry_pointsってとこで、呼び出す方は entry_pointsに選んだ名前をpkg_resources.iter_entry_points("xxxx")に指定して呼べばいい。
アーカイブはここに置いといた
mydeco.py
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
import pkg_resources
for entrypoint in pkg_resources.iter_entry_points("my.plugins"):
plugin_class = entrypoint.load()
decorater = plugin_class()
print decorater.display("hello world!")
実行結果
$ python mydeco.py
++++++++++++++++
+ hello world! +
++++++++++++++++
----------------
| hello world! |
----------------
エキスパートPythonプログラミングの4,6章あたりでも触れられており、これも参考になった。
茄子を初収穫。3,4日放っておいたらでかくなってた。

いんげんの花も咲いていた。

09062010 music drum'n'bass
あらすじ
2010年春、しゃべるを職場に入れてみたところ、ちょっと後ろ向きな発言をする人たちに人気が出てしまい、ネガな雰囲気のただようブラックマイクロブログになりかけていた。
これじゃいかんということで、ポジな発言を紛れ込ませることにしたのであった。
しゃべるのAPIはtwitter互換なのでpython-twitterのハードコードされているurlをしゃべるのそれに変えてやればpythonモジュールがあっという間に出来上がり。ついでにshovel.pyってすればimport shovelで呼べる。
あとはfeedparserでtwitterのポジティブフィードを解析して、一日一回くらいイントラtwitterに注入すればいいわけだ。
import feedparser
import re,os
shuzo_tweet = re.compile("^(shuzo_matsuoka:\ @[^\ ]+ |shuzo_matsuoka:\ )")
d = feedparser.parse("http://twitter.com/statuses/user_timeline/63097969.rss")
stweet = [shuzo_tweet.sub('',e['title']) for e in d['entries']]
import shovel
api = shovel.Api(username='xxx', password='xxx')
users = api.GetFollowers()
followers = [u.screen_name for u in users]
for u,m in zip(followers,stweet):
message = "@%s %s" % (u,m)
api.PostUpdate(message)
これで、とりあえずフォロワーに熱いメッセージが送られるようになったが、そのうちちゃんとしたボットを作りたい。
とか前向きなreplyするやつ(謎)。
08062010 life
discoverにしてはやたらと読みづらい本だったなぁという感想くらいしか。
タイトルと内容があってないような気もするし。科学技術全体を俯瞰しているわけでもないし、オレオレ経済論だし。
というとこには共感出来た。
個人寄付は結局自分の支持の明確な表明だし、税金でばらまかれるものとは意味合いが大きく違うだろう。
f-bizチャレンジ日記でグロースヴァルトSANOの存在を知った。
さらに富士川SAで茶コーラが買えるという情報も掴んでおり、さらに調べたらポケモンの3D映画も上映しているらしいので、映画見て、茶コーラ買ってグロースヴァルトSANOに行くというコースを設定してみた。
茶コーラは緑だけどお茶っぽさは感じられない。普通の色つきコーラ

グロースヴァルトSANOは富士川楽座から車で10分くらいスマル亭のあるあたりの交差点を入っていく

太いソーセージと細いソーセージをなん種類か購入した。 椎茸の入った太いソーセージが美味だった。

帰りのオプションは京でせりざるとか、ブランジュリー ル マヌーがあったんだけど、子どもが我慢出来ず富士川楽座内の天神屋でおにぎりを買った。