Python

virtualenvwrapper-4.0を使う

emacsがあればあんまり開発環境には拘らない方なので、virtualenvwrapperもウノウラボにこの記事を書いたころから、ずっと同じバージョンを使い続けてきた。 アップデートしなかった理由は、いつからかvirtualevnwrapper単なるシェルスクリプトではなく、vir…

couchbase-python-clientをmemcacheクライアントとして使う

couchbase-python-clientはCouchbase社が開発しているCouchbaseのクライアント・ライブラリ。「Couchbaseとは何ぞ?」という方は、CouchDBのストレージをMemcache/Membaseに置き換えたKVSだと考えて頂きたい。 https://github.com/couchbase/couchbase-pytho…

iWebDriverでテストする

昨日のエントリのChromeDriverを試した後、SafariDriverというなかなか有望そうだがイマイチちゃんと動いている感がないソリューションまで試した結果、iPhone向けWebアプリケーションのテストにはiPhoneそのものか、iPhoneシミュレーターを使うのが一番良い…

SeleniumのChromeDriverでUser-Agentを変更する

WebKit、しかもiOSのWebKitでしか動かないコードを通して世界を良くしていますかっ!?(挨拶)前回似たようなエントリを書いた時には分からなかったのだが、SeleniumのChromeDriverでUser-Agentを変更するのは比較的容易だった。これでFirefoxではピクリとも…

Jasyプロジェクトを作成する

前提条件 Python 3.2とpip、それにJasy 0.4.6がインストールされているものとします。 $ pip install https://github.com/wpbasti/jasy/zipball/0.4.6 ディレクトリ構成 最初にプロジェクトのトップディレクトリを作る。ここでは設定ファイルに記載するプロ…

Jasyを使ってJavaScriptアプリケーションを作成する - セバスチャン現る

JasyはZyngaの俊英Sebastian WernerによるJavaScriptビルドツール(Python3製)。coreは同氏によるJavaScript Framework。 https://github.com/wpbasti/jasy https://github.com/wpbasti/core coreが大規模なJavaScriptアプリケーションを作るためのモジュール…

Jasyを使ってJavaScriptアプリケーションを作成する - 最適化

Jasy/Coreの使い方をなんとなく語るシリーズの第一回。順番が間違っている気がするが、第一回はJasyのJavaScript最適化機能について。解説の順番が間違っている気がするが、Python3.2とpipをインストールした上で、 $ pip install https://github.com/wpbast…

Selenium WebDriverでUser-Agentを変更する

しばらく前は「Webアプリケーションのテスト自動化にはSeleniumよりWatirの方がよくね?」と思っていたが、Selenium2になってWebDriverが使えるようなり、Rubyで書かなくてはならないWatirより、Pythonで書けるSeleniumの方が断然楽だと感じている。仕事柄モ…

shelveの"dbm.error: db type could not be determined"というエラー

MacPortで入れたPython3.2.2*1でshelve.openを使おうとして、"dbm.error: db type could not be determined"というエラーが出た。 % python [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for m…

Misakaを使ってmarkdown文書をHTMLに変換する

Misaka is a Python (2.7 and 3.2) and PyPy (1.6) binding for Sundown. And Sundown is a Markdown library written in C and it's really fast. http://misaka.61924.nl/ MisakaはCで書かれたmarkdown parserであるSundownのPythonバインディング。要Pyth…

LZOとSnappyの圧縮効率・処理速度を比較する

LZOとSnappyは共に、圧縮効率は他に劣るものの、処理速度が早いことを売りにした圧縮ライブラリ。 http://www.oberhumer.com/opensource/lzo/ http://code.google.com/p/snappy/ インストール Pythonで使うならば、LZOに関しては python-lzo-static を使うの…

チーム開発でのplistの管理方法

複数名のチームでCocoa/Cocoa Touchのアプリケーションを開発している状況で、誰かがplistの設定ファイルを間違ってコミットしたからアプリケーションが動かなくなったといった状況を防いだり、開発中は自分固有の設定を使いたいとする。ぱっと思いついた方…

続cocos2d事始 - Menuを作る

Layerを作る 前回作ったところまでで、最小限のSceneを作ってゲームに必要な要素を追加していく準備ができた。SceneにはLayer, Menu, SpriteといったCocosNodeのサブクラスを追加していくことになるが、まずは一番基本的なLayerクラスを使って、背景を追加す…

続cocos2d事始

大型連休前にPython版cocos2dを触ってみて、予想通りインストールしてサンプルをちょっと動かしただけで飽きたわけだが、ここ数日iPhone版のcocos2dも少しいじっていて、「基本的な概念が同じならばPythonでやった方がプロトタイピングにはいいかも」と思い…

cocos2d事始

インストール cocos2dといってもiPhone版じゃなくてPython版の方。ここに書いてあるとおりにやれば環境は作れる。 http://cocos2d.org/doc/programming_guide/installation.html が、実際はpygletもcocos2dもPyPIに登録されていて、依存関係もきちんと定義さ…

Flash-AssetsでJavaScript/CSSを管理する

オフィシャルドキュメントに書いてあることで十分だけど、練習をかねてチラシの裏に書いてみる。 http://elsdoerfer.name/docs/flask-assets/ インストール。 $ pip install Flask-Assets 単純なFlaskアプリケーションで試してみる。 # -*- coding: utf-8 -*…

webassetsがよさげ

webassetsはWebアプリケーションのJavaScript/CSSの管理ユーティリティライブラリ。もっとわかり易く言うと、複数のJavaScriptファイルをまとめたり、圧縮してくれたり、URLに変更日時のタイムスタンプを付けてくれたりする便利ライブラリ。 PyPI http://pyp…

Python3.2はUnicode 6.0に対応した

Python has been updated to Unicode 6.0.0. The update to the standard adds over 2,000 new characters including emoji symbols which are important for mobile phones.In addition, the updated standard has altered the character properties for tw…

HandlerSocket練習帳 - チラシの裏

PythonでHandlerSocket経由でMySQLにアクセスする。今回はpyhsを使ってみた。 https://bitbucket.org/excieve/pyhs データベース名はsandboxで、テーブルは、 Create Table: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varcha…

CentOSにPySVNをインストールする

ReviewBoardに入れる時にいつもPySVNで迷うので。PythonはCentOS標準のPython2.4ではなく、EPELのPython2.6とする。 Subversion関連のヘッダー・ライブラリをインストール subversion-devel, neon-develを入れておく必要がある。 $ sudo yum install subvers…

IPyからipaddrに乗り換えるか検討中

今までIPアドレスの操作にはIPyを使ってきたのですが、Google App EngineのPython SDKにはipaddrが含まれているなぁと気付いてからipaddrに乗り換えようか検討中。 import timeit from IPy import IP from ipaddr import IPv4Network, IPv4Address def test_…

非同期Webサーバーならばcycloneがよさげ

まだ深くソースコードを読めていないので「非同期Webサーバー」という言い方が正しいかどうかは自信がない。 https://github.com/fiorix/cyclone cycloneはtornadoと非常によく似たAPIをもっている。例えば、お馴染みのHello Worldならば次の通り。 # -*- mo…

簡易HTTPサーバーを立てる

最近「あー、このディレクトリのファイルをブラウザで開きたいなぁ*1」という時に、 $ python -m SimpleHTTPServer 8080 で簡易HTTPサーバーを起動できることを知り重宝している。8080はポート番号。当然のことながら、この簡易HTTPサーバーで全世界に向けて…

kombuを味わう

kombuはceleryの作者askによるメッセージングフレームワーク。 https://github.com/ask/kombu 同じ作者によるcarrotというライブラリ/フレームワークもあるが、kombuはcarrotをリライトしなおしたもので、今後はkombuの方を開発していくらしい。それにしても…

Rowzと戯れる

gizzardやgizzardの使用例のRowzが気になっていても、ビルドに失敗することが多く手を出せないでいた。最近、だいぶScalaの勘所がつかめてきて、ようやく自分で試してみることができるようになったので、そのメモ。Rowzのテストは通らないような気がするので…

trunk版のCassandraと戯れる

trunk版のCassandra(Cassandra 0.7)で遊んでみた。 設定ファイルがYAMLに変わるのは誰得?って印象があったが案外違和感がない。普段LAMP系のソフトウェアを扱っている人間にはYAMLの方が自然に感じる。 動的にKeyspaceやColumnFamilyを追加できる機能はgood…

uamobileとSoftBank/2.0

SoftBank/2.0のUser-Agentが正しく解析できないならば、今の安定版に手をいれようかと思いましたが、特に問題ないようですね。 >>> import uamobile >>> uamobile.__version__ '0.2.11' >>> ua = uamobile.detect({'HTTP_USER_AGENT': 'SoftBank/2.0/944SH/S…

java_infoプロパティをdeprecatedにした

uamobile.softbankには元々のPerl版(HTTP::MobileAgent)に由来するjava_infoというプロパティがあって、 SoftBank/1.0/943SH/SHJ001 Browser/NetFront/3.5 Profile/MIDP-2.0 Configuration/CLDC-1.1のようなUser-Agentの、 Profile/MIDP-2.0 Configuration/C…

uamobileのレポジトリをgithubに移した

uamobileのレポジトリをgithubに移した。今後はこちら一本でやっていく予定。 http://github.com/csakatoku/uamobile git svnで移したのだが、githubには今は外部Subversionレポジトリから移行する機能もあるようだ。機会があったら試してみたい。近いうちに…

odictでハマった話

【2010/5/27更新】 doloopwhileさんにコメントをいただいたように、Python2.7のOrderedDictをバックポートしたordereddictモジュールを使うのがベストっぽいです。doloopwhileさん、情報ありがとうございます。 http://pypi.python.org/pypi/ordereddict/ 最…