imf_tweetこのところ、Google App Engine上でのtweepyの使い方を調べていたので、前にちょっと欲しいなと思っていたこのつぶやきは自動的に消滅するというウェブアプリを作ってみました。 Twitter にポストして、しばらくしたらそのつぶやきを削除するというものです。ちょっとひとこと言っておきたいけど、知らない人の目に触れて絡まれるのも、いちいちプライバシー設定を変えるのも、別アカウントを作って使うのも、あれもこれも面倒くさい場合に良いんじゃないかと思っています。
ちなみにこのアプリは、ミッションインポッシブル(なりスパイ大作戦なり)で指令が下される際にその伝達手段が自動的に消滅するアレからの連想です。で、その組織名は IMF : Impossible Mission Force というだそう(スパイ大作戦)で、それをもじった名前にしようと思って Immediately Message Fizzles にしたのでした。
Posted by setomits at 21:41 | Comments: 0
Mac (Snow Leopard) で homebrew を使って mod_wsgi のインストールをしたのでメモ。

mod_wsgi のインストール

$ brew install mod_wsgi
==> Downloading http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/mod_wsgi/3.3 --disable-debug --disabl
==> make install
==> Caveats
NOTE: "brew install -v mod_wsgi" will fail! You must install
in non-verbose mode for this to succeed. Patches to fix this
are welcome.

* You must manually edit /etc/apache2/httpd.conf to load
  /usr/local/Cellar/mod_wsgi/3.3/libexec/mod_wsgi.so

* On 10.5, you must run Apache in 32-bit mode:
  http://code.google.com/p/modwsgi/wiki/InstallationOnMacOSX
==> Summary
/usr/local/Cellar/mod_wsgi/3.3: 3 files, 356K, built in 12 seconds


$ ln -s /usr/local/Cellar/mod_wsgi/3.3/libexec/mod_wsgi.so /usr/libexec/apache2/

Apache の設定

$ sudo vi /etc/apache2/httpd.conf

...
# 追加
LoadModule wsgi_module  libexec/apache2/mod_wsgi.so
...
...
WSGIScriptAlias /myapp /Users/mits/Sites/aaa.py
...

Apache の再起動

Apache を再起動してログを確認。
$ tail -f /var/log/apache2/error_log

...
[Fri Apr 01 18:22:10 2011] [notice] Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l
DAV/2 mod_wsgi/3.3 Python/2.7.1 configured -- resuming normal operations

サンプルアプリ

$ cat ~/Sites/aaa.py

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]
プラウザで http://localhost/myapp にアクセスして "Hello World!" と表示されたら OK。
Posted by setomits at 18:42 | Comments: 0
2011 Mar 25th
Linux でコマンドの使い方を調べる man をラップする biman をカいてみました。ソースコードはsetomits/biman - GitHubにあります。
$ biman chmod $ biman fsck $ biman touch
という具合にお使いください。
Posted by setomits at 13:29 | Comments: 0
プログラミング Google App Engine評判が良いようなのでプログラミング Google App Engineも読んでみました。 Python / Java のどちらを使う人にも役に立つように、項目ごとにそれぞれの言語環境向けの説明がされています。データストア関連の記述が結構多く、確かになかなかためになると思いました。僕は Java の箇所は読み飛ばして読む分にはそれで良かったのですが、後から「あのことってどこに書いてたっけ?」と探すときにちょっと面倒に感じます。また、誤字脱字が結構多く、感覚的には2,3ページに1つは誤字があるんじゃないかなという感じがしました。実際には5ページに1つくらいかもしれません。内容自体は悪くないと思うので、そこがより一層残念に思いました。
Posted by setomits at 15:21 | Comments: 0
最近になって Google App Engine を使っています。データの保存時に時刻情報を入れるために DatetimeProperty を使うのですが、保存時に日本標準時になるように tzinfo をセットしても思うようにならずウンウンうなっていたのですが、型とプロパティ クラス - 日付と時刻プロパティに「日付と時間の値が保存されるときも返されるときも UTC タイムゾーンが使用されます。」と明記されていました。なるほど。

なるほどと思って落ち着いた後に、ふと向かいの席に座っているスティーブさんにアメリカ人に取ってのタイムゾーンの扱いってどんなもんなのか尋ねてみました。僕はあまり何も考えずに UTC と自分の生活している場所のタイムゾーンについてだけ聞いたつもりだったのですが、「アメリカは国内だけで複数のタイムゾーンがあって、 DST があったりなかったりなのでいろいろとややこしい。なので基本的には保存するときは UTC で、どこかのタイムゾーンで表示してオフセットを表示したり..」などなどという話を聞きました。この辺の感覚ってタイムゾーンが単一の国(日本とか中国も)の人とは違うんだろうなあと思いました。

で、あらためて、 Twitter のタイムラインや Facebook のニュースフィードの時刻の表記が「○秒前」「○分前」「○時間前」となっているのは、タイムゾーンがまちまちの情報が混ざって表示されるときにはすごく有効なんだなと気付きました。正確な時刻とタイムゾーンとかオフセットが表示されていても、それが自分の生活圏においては何時なのかはすぐにわかりにくいし、だからと言っていちいち自分の生活圏のタイムゾーンに置き換えて変な時間が表示されるよりは、単に「今からどれくらい前か」ということで充分なんだなと。

そんなことをぼやぼや考えながら Django のテンプレートのフィルタリファレンスを見ているとtimesinceというのがあるのに気付いてさらに驚いたり。
Posted by setomits at 22:55 | Comments: 0
search
calendar
Feb 2012
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
26272829   
archives
photos on flickr
www.flickr.com