これは書いてしまうやないか…
*1:キャンペーンだそうですよ→MacBook Air 11インチ欲しい!とは - はてなキーワード
hotpepper/tabelog記法ってなんぞや?
foomoo 記法から hotpepper 記法に変更しました - はてなダイアリー日記
この記事によって今さらながらはてなの記法によってレストランを紹介できることに気付いたので試してみる。
- ジャンル:ラーメン
- 住所: 大田区北千束3-31-6
- このお店を含むブログを見る |
- (写真提供:金木犀)
Mac OS X ターミナル + zshで日本語入力
zshのコマンドラインで日本語を入力しようとしたら文字化けしてなんでだ!と調べて回ってたら、Macportsでインストールしてたzshのバージョンが4.2.7だったというオチでした。
zshは4.3以降でないとUTF-8を扱えない*1ので、Macportsで
$ sudo port install zsh-devel +mp_completion
としてインストールしましょう。(+mp_completionはMacportsのコマンドで補完が利くようにするオプション)
その後、ログインシェルに設定する方法は自分で調べてね!*2
easy_installでエラーが起きたときの対処
結論から書くと、setuptoolsをアップデートしてやり直せばOKだった。
# easy_install -U setuptools
エラーが起きた状況
SQLObjectをインストールしようとしてeasy_installを実行したら下記のようなエラーが出た。
# easy_install SQLObject==devSearching for SQLObject==dev Reading http://pypi.python.org/simple/SQLObject/ Reading http://sqlobject.org Reading http://sqlobject.org/ Reading http://sqlobject.org/devel/ Best match: SQLObject dev Downloading http://svn.sqlobject.org/SQLObject/trunk#egg=SQLObject-dev error: Unexpected HTML page found at http://svn.sqlobject.org/SQLObject/trunk#egg=SQLObject-dev
ぐぐってみたら、最初のコマンドを実行しろとあったのでそのとおりにやったらできた。
デコレータを使う
クリスマスの休日にやることではないかもしれないが、Pythonのとあるライブラリの中のコードで使われていたついでに調べたのでメモ。
関数の上部に「@デコレータ名」という形式で装飾を付けることで、関数に対して付加的な動作を加えることができるもの。
書き方
下記のdecorator関数のように、関数をネストして内部関数を返すような形で定義すると、some_func関数の上部に「@decorator」としてsome_funcに適用することができるようだ。
#! /usr/bin/env python def decorator(func): def inner(*args): return func(*args)+" is decorated" return inner @decorator def some_func(): return "some_func" print some_func() #=>some_func is decorated
意味としては、
some_func = decorator(some_func)
と同義なので、シンタックスシュガーのひとつだと考えていればよさそう。
複数の関数に対して共通の処理を付加したい場合などに使うのでしょう。
もうひとつの使い方としては、デバッグ時に関数のチューニングのために実行時間を計測したり、などに使えそう。
#! /usr/bin/env python import time def measure_time(func): def inner(*args): start = time.time() ret = func(*args) end = time.time() print "[%s] %f" % (func.__name__, end - start) return ret return inner @measure_time def some_func(): for i in range(10000000): i*i return some_func()