2011-05-01から1ヶ月間の記事一覧

スレッドを使うプログラムが Ctrl-C で止まらない件

常識かと思ってたけど、、、 while True: thread.join(0.5) join() メソッドを呼ぶときに、タイムアウトを設定して、ループする。こうすると、KeyboardInterruptを受け取れる。

シグナルを使って statistical profiler をつくろう

Pythonの標準ライブラリにはプロファイラがあるが、これは deterministic profiler という種類のプロファイラだ。関数が呼び出されたときと関数から抜けるときに登録したコールバック関数を呼び出す仕組みが用意されており、そのコールバック関数で時間を測…

gevent で proxy server を作る

Flash製アプリの試験用のアクセスパターンを作りたくて gevent を使って簡単なproxy serverを作った。localhostの8000版で立ち上がるので、FoxyProxy などで、特定のドメインに対する proxy として登録してやると、リクエストを再現するのに必要なデータをms…

バッチがわりに Python を使うときは、 os.system よりも subprocess.call を使おう

次の2つのスクリプトは同じに見える。 #!/usr/bin/env python import os for i in xrange(100): cmd = "tail -f /var/log/syslog | cat " os.system(cmd) #!/usr/bin/env python import subprocess for i in xrange(100): cmd = "tail -f /var/log/syslog | …

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。