タグ

ブックマーク / www.ianlewis.org (7)

  • Python の JSONライブラリのパフォーマンステスト

    概要 最近、あるお客さんから、 快速なので、 cjson を使おうという要望をいただきましたが、 以前、僕は cjson は色なエッジケースの処理が微妙と分かっていて、実際に他のライブラリより早いのかなと思いました。 cjsonのPyPiページ いろなコメントが書かれています。しかも、 最新パージョンは 2007 リリースでかなり古い。バグがあるのに、直っていないし、あんまりメンテしてないライブラリに見える。 simplejson も jsonlib もCで拡張があり、 かなり最適化されていると思ったので、テストしてみようと思いました。 というわけで、パフォーマンステストを作って、bitbucket にアップしました https://bitbucket.org/IanLewis/jsonlib-test 準備 buildout を使って、環境を作ります テストを実行 ./bin/run_t

  • Appengine Matcher API

    Matcher APIはあるオブジェクトが登録したクエリーにマッチするかをスケーラブルにチェックしてくれるサービスです。 クエリーが既に登録しているから、あるオブジェクトが一つ一つの登録したクエリーにマッチするかが他のクエリーに依存しないので、 Map-Reduce で簡単に平行で処理を分担してスケールできる。 何に使うか これが少し分かり辛いところかもしれないので、少し説明します。クエリーを未然に登録するので、 Prospective Search (プロスペクティブ検索、展望検索、予測検索?) と言います。 みんな使っている、普段の検索は、Retrospective Search (遡及検索) です。クエリーが決まってないので、データをインデクスを作って、後でユーザーがデータを クエリーする形になっています。 プロスペクティブ検索は、未然にクエリーを決めて、そのクエリーにマッチするデー

  • Tag: virtualenv

    概要 python の皆さんはみんな使っている ipython は virtualenv を使う時に virtualenv に入っているモジュールをインポートできないことが起こります。 ipython は特に virtualenv に対応していないわけです。 ipython をグローバルじゃ...

  • Google Appengine 1.3.8リリースされました!

    Google Appengine 1.3.8 がリリースされました! 今回のリリースは、いろな面白い機能が入ってきた。 ハンドラー appstats や、データストアの管理画面、リモートAPIのハンドラーが簡単に設定できるようになりました。 管理画面の改善 ” エンティティタイプのすべてのエンティティを削除したり、データストアを完全にクリアすることができるようになりました。データストアのクリアは datastore_admin のハンドラーを有効しないといけません。データの削除はクオータを使いますので、ご注意ください。 * 管理画面から、タスクキューに入っているタスクをすぐ実行でくるようになりました。 マルチアカウント ” マルチアカウント認証を使えるようになりました。 複数の Google アカウントでログインできるようになりました。 Appengine のサイトにアクセスすると、どのア

  • virtualenv, virtualenvwrapper, pip を使う方法

    あるプロジェクトの依存は特定なバージョンじゃないとダメな場合が結構多いと思いますけど、最近、pythonの仮想環境を簡単に作れるようになりました。virtualenv と virtualenvwrapper と pip の組み合わせを紹介します。 virtualenvは環境を作ってくれるライブラリで、virtualenvwrapperはその作った環境を簡単に管理してくれるツールになります。 まず、virtualenv と virtualenvwrapper をインストール.

  • Pythonでメソッドをクラスまたはインスタンスに動的に追加する

    Pythonでは、あるクラスもしくは、クラスインスタンスに動的にメソッドを付けたいことがあります。Pythonコードでは、一般的に考えるとこういう風に書くって思いがちだけど、 class MyObj(object): def __init__(self, val): self.val = val def new_method(self, value): return self.val + value obj = MyObj(3) obj.method = new_method

  • Google App Engine 1.3.6

    今日、 Appengine 1.3.6 がリリースされました。今回の大きいなリリースは以下の4つです。元のブログポストは こちら 1. データの名前空間API これは結構おもしろくて、データを名前空間を使うと、ユーザーのデータを完全に分けることができる。たとえば、xxx.jp と yyy.jp は自分が作ったアプリケーションを使っているとすると、 xxx.jp のデータと、 yyy.jp のデータを名前空間で分けて、そのユーザーは自分のバージョンを見ると、自分のデータしかみれない。というような仕組みが作れるようになりました。 日語のドキュメントがまだないみたいだけど、 PythonJava のドキュメントを見てみてください。 2. 高速画像サービング Picasa のインフラーを使っていて、リサイズ、切れ抜きなどの自動変換した画像を高速でサーブできるようになった。Python

  • 1