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

リスト内包表記のスコープ

テストが通ったり通らなかったりする、変な不具合があったので原因を調べていたら、リスト内包表記のカウンタ変数が、外側のローカル変数を上書いてしまっていたのが原因でした。 def test_method(x): print(x) [x for x in range(10)] print(x) test_method…

backbone.jsのCollectionのフィルタリング

backbone.jsに慣れようと思って、ちょこちょこサンプルを書いているわけですが、 今日はインクリメンタルサーチっぽいUIを書いて見ました。サンプルはこちら http://dl.dropbox.com/u/494487/backbone-sample/filtering/index.htmlデータは静的にもってるだ…

backbone.jsでtooltipを表示する

backbone.jsのサンプルプログラムでtooltipを表示していたので、どういう処理になっているのか読んでみました。 せっかく読んだので、わかりやすいように関連する箇所だけのサンプルにしてみました。 $(function(){ var AppView = Backbone.View.extend({ el…

jQuery、underscore.js、backbone.jsのbindメソッドについて

backbone.jsのサンプルコードを読んでいると、bindという名前のメソッドがよく使われてます。そして、bindという名前のメソッドはbackbone.jsにも、underscore.jsにも、jQueryにも定義されています。慣れている人は問題ないのでしょうが、私は読んでいて混乱…

js2-modeを使う - インデントとフォールディング

インデント emacsでjavascriptの読み書きといえば、js2-modeが有名ですが、デフォルトではインデントがちょっとおかしいです。 以下はbackbone.jsのモデルのサンプルですが、例えば以下の様にインデントされてしまいます。 横に長いです。 var Note = Backbo…

yasnippetの設定メモ

yasnippetでは、同名のスニペットを定義している場合は、ドロップダウンが表示されます。デフォルトだとyas/x-promptが使用され以下のようにが表示されます。 表示はいいのですが、自分の環境だとC-nやC-pで選択がうまく出来なかったので変更しました。変更…

emacsで使い捨てのバッファ/ファイルを開く

プログラミングをしていて、ちょっと書き捨てのコードを書きたいとか、メモをとっておきたいというときに switch-to-bufferを使うと便利です。 C-x bミニバッファで「Switch to Buffer:」と聞かれるのでバッファ名を入力してEnterでバッファがひらきます 不…

underscore.jsのbindとカリー化

underscore.jsのbindについてのメモです。 underscore.jsのbind 第1引数の関数を実行する「関数」を返す 第1引数の関数内の「this」は第2引数の値が使われる コメントにある通り、第3引数以降を渡すとカリー化ができます。 定義は以下の通りです。 // Create…

anythingからタグファイルを引く

emacsでpython開発するのに、ちょくちょく環境を整えていってます。 先日eclipseでいうOutlineのようなものが使いたくてsummarye.elを導入しました。今度はeclipseでいう「参照を開く」に該当する機能を使いたくて、タグジャンプを使う設定をしました まずex…

PILでIOError: decoder jpeg not available

pythonでPILを使っている箇所で以下のようなエラーがでました。 IOError: decoder jpeg not availablePILはインストールしてましたが、サポートしてないというメッセージがでてました。 ------------------------------------------------------------------…

emacsでeclipseのアウトラインのような機能を使う

最近はemacsでpython開発をしているのですが、だんだんソースコードの規模が大きくなってきたので、 アウトラインの表示機能が欲しくなってきました。 ちょっと調べたところsummarye.elというのがよさそうだったので導入してみました。 marmaladeにはなかっ…

macosx lionでemacsのフルスクリーン表示

今つかっているemacsをビルドしたとき、フルスクリーンのパッチを当ててなかったので、入れなおしました。 # donwload emacs curl -O http://ftp.gnu.org/gnu/emacs/emacs-23.3b.tar.bz2 tar xjf emacs-23.3a.tar.bz2 # download patches curl -o xcode_1.pa…

emacsでpython開発をするのにとりあえず設定したこと

しばらく続いたrails開発の案件から、python開発に移って、最初はeclipse+pydevで開発しようかなと思ったのですが、 なんだかんだで結局emacsに戻ってます。 ただ、ずっと使ってたemacsの設定ファイルが、windows、mac、linuxで共通で使えるようにしようとし…

flask_peeweeのRestAPIで取得条件を設定する

flask_peeweeのRestAPIではクエリパラメータで取得条件を設定することができます 全件取得 http://localhost:5000/api/post/ { "meta": { "model": "post", "next": "", "page": 1, "previous": "" }, "objects": [ { "entry": "test_entry1", "created": "2…

flask_peeweeのRestAPIでadminユーザーのみに更新を許可する

flask_peeweeのRestAPIで、adminユーザーのみに更新を許可するにはAdminAuthenticationを使用します。 from flaskext.rest import AdminAuthentication auth = Auth(app, db, user_model=User) # ユーザー認証をRestAPIに設定する user_auth = UserAuthentic…

flask_peeweeのRestAPIで他ユーザーのデータの更新を制限する

flask_peeweeのRestAPIには他ユーザーのデータ更新を制限する機能が実装されているので 試してみたいと思います。 先日、RestAPIで返却するパラメータを制限するのにRestResourceというクラスのサブクラスを作成しました from flaskext.rest import RestReso…

flask_peeweeのRestAPIで返却するパラメータを制御する

モデルに対してCRUD操作をするAPIを提供してくれるflask_peeweeのRestAPIですが、 モデルの情報を取得する際、デフォルトではすべてのパラメータを返します。 http://localhost:5000/api/user/ { "meta": { "model": "user", "next": "", "page": 1, "previo…

functools.wrapsについて調べてみた

flask-peeweeのRestAPIのソースを読んでいたところ、functools.wrapsという関数が使用されていたので調べてみましたドキュメント http://www.python.jp/doc/release/library/functools.html?highlight=functools#functools.wraps functoolsとはなにか モジュ…

pythonの多重継承と属性検索の優先順位

クラシッククラスでは「下から上へ」が優先され、そのあとに「左から右へ」である。 新スタイルクラスでは「左から右へ」が優先され、そのあとに「下から上へ」となる。新スタイルクラスはpython2.2から導入されたクラスであり ビルトインオブジェクトを継承…

flask-peeweeのRestAPIを触ってみる 

先日flask-peeweeの管理サイトを触ってみましたが、RestAPIも同じような感じで追加できるみたいなので やってみました非常に簡単で、以下のコードを追加するだけです from flaskext.rest import RestAPI api = RestAPI(app) api.register(Post) api.setup() …

flask-peeweeの管理サイトを動かしてみる

flask-peeweeの提供する管理サイトがtwitter bootstrapを使っていて綺麗だったので、 サンプルを作って動かしてみました。 flask 軽量webframework。rubyでいうsinatra http://flask.pocoo.org/ peewee ORマッパーの一種。軽量。djangoと似たインターフェー…

ワンライナーでファイル共有webサーバーを立ち上げる

コマンドラインをポストしてシェアするcommandlinefuというサイトがあるんですが、 最近pythonを勉強しているので、pythonだとどんなのがあるかなと見てみたら pythonで1番vote数があるのがこれでしたワンライナーでファイル共有webサーバーを立ち上げる pyt…

virtualenvでgoogle app engine 1.6.0を動かす

google app engineの1.6.0がダウンロードできるようになっています。http://code.google.com/intl/ja/appengine/downloads.htmlリリースノートはこちらhttp://code.google.com/p/googleappengine/wiki/SdkReleaseNotes 1.5.5ではvirtualenvで作った環境で動…

rubyでやってたアレ、pythonでどうやる? 〜 リストの複製

rubyで ary = [1,2,3] # => [1, 2, 3] ary.object_id # => 2168514860 # 代入しても ary2 = ary # => [1, 2, 3] # 参照先は同じ ary2.object_id # => 2168514860 # dupだと ary3 = ary.dup # => [1, 2, 3] # 新しいリストオブジェクトになる ary3.object_id …

rubyでやってたアレ、pythonでどうやる?

最近pythonでの仕事を初めて「rubyでやってたアレ、どうやるんだろう」と思う機会が何度かあったのでまとめておく select rubyで ary = [1,2,3,4,5,6] ary.select { |e| e % 2 == 0 } # => [2,4,6] pythonで ary = [1,2,3,4,5,6] # リスト内包表記で [e for …

monky.elでmercurialのMQ

昨日に引き続き、monky.elのMercurial MQの操作についてまとめてみた キー function 動作 command monky-qinit MQ利用開始の準備をする hg qinit --config extensions.mq= monky-queueバッファでの操作 キー function 動作 command N monky-qnew ミニバッフ…

emacsからのmercurialの操作にmonkyを使ってみた

わりと長い間仕事でsubversionを使っていて、emacs上ではdsvnを操作してましたが 最近mercurialを使うことになったので、monky.elというライブラリを試してみましたhttps://github.com/ananthakumaran/monky/blob/master/monky.el インストール Marmaladeに…

virtualenvでgoogle app engine開発用の環境を作成したときのメモ

virtualenv、virtualenvwrapperのインストール こことか、 http://labs.unoh.net/2009/12/2009python.html ここを参考に http://www.ianlewis.org/jp/virtualenv-pip-fabric google app engineは以下からDLしてインストール http://code.google.com/intl/ja/…