python

デザパタ実装例についても書かれた本

実践Python3を購入した。 幾つかに分類されたデザインパターンについてPython3系での実装例を交えて書かれていて便利そう。(まだチラ見) 以下見出しより 生成に関するデザインパターン Abstract Factory Builder Factory Method Prototype Singleton 構造に…

cythonの本

cythonの本が新しく出た(2015/06)みたいなので買ってみた。 今開発中のシステムはCPUボトルネックではなく、通信ボトルネックなので、あまり使わないかもしれないけど。 でも配列と、画像圧縮扱ってるあたりでは部分的に使えるかもなー。Cython ―Cとの融合に…

cythonでpythonの計算時間を100倍に 〜(1)cythonのcdefを使う〜

概要 ある単純な足し算の計算速度向上をcythonの2つの機能を使うことで試みた。 (1)cdefを使う 純粋なpythonを使った場合と、cythonを使った場合で計算時間を比較を行った。 その結果、cythonで、cdef利用した場合には(ある条件下では)50倍程度高速化された…

celeryでclassのmethodを利用する方法

概要 django+celeryを利用して、あるクラスの処理を非同期に処理しようとした際に、メソッドを利用するところで、「takes exactly 2 arguments (1 given)」と怒られた。 (selfが渡っていないときなどによく見るエラー) 調べてみると、celeryから、classのmet…

文字列のフォーマット format() を使ってみたメモ

//編集中 2012/12/05 追記 //formatで変数の展開、kw,list,辞書,変数を*で展開、**で展開、について触れる。 //第6回 Pythonicな文字列フォーマットforamat()メソッド http://gihyo.jp/dev/serial/01/pythonhacks/0006 文字列出力のpythonicな方法 これまで…

django-celeryのインストール

以下、2012/12/02に全面的に追記/改修した。 概要 django-celeryのインストール手順と、簡単な動作確認の方法について以下記載する。 django-celeryとは celeryを使う(CentOS)で書いた"celery"をdjangoと連携して動作させるモジュールである。 これを使うこ…

redisで遊んでみた with python

概要 redisで遊んでた(?)先輩がいたので、自分はmemcachedしか使ったこと無かったこともあり、とりあえず触ってみようと思い遊んでみることにした。 ひとまずは、redisの特徴、インストール手順、コンソールからのset/get、pythonからのset/getの手順につい…

エキスパートPythonプログラミング(1) イテレータ、ジェネレータ、ジェネレータ式

「エキスパートPythonプログラミング」の中からピックアップした話題をベースに、python user3人で勉強会(2012/08/31)しました。 その際の資料を元に、勉強会で話した内容を公開しておきます。 テーマ/キーワード iterator、generator、generator式 以下は、…

celeryの実行でハマったこと2 (loggerが動かない!)

編集中 結論 celeryではloggerに、python loggingモジュールのラッパーを独自に用意している。そのため、呼び出し側のタスクでloggingモジュール(python組込みモジュール)を使用しようとしても、そのままでは競合し利用できない。 taskの中で、get_logger()…

celeryの実行でハマったこと(serializeにpickleが使われていた)

結論 celeryではserialize/deserialize(defaultではpickleを利用)してデータの受け渡しをしているため、celeryに渡すデータは、serialize/deserialize可能なデータにしましょう。 背景 celeryに、タスクを渡した時(do.delay(something))に、decode errorにな…

apache + wsgi + djangoでのdebug方法

※「wsgiファイルにdebugger起動の設定を書いておく」を追記し、「link」に関連するポインタを追記しました。2012/08/05 概要 apache + wsgi + djangoを利用している時、pdbを利用したdebug方法について示します。 背景 djangoでdebugしていて、通常であればm…

celeryを使う(CentOS)

概要 Celery(セロリ)は、非同期処理を行うタスクキュー/ジョブキューで、メッセージブローカーと呼ばれる、メッセージ送受信する仕組みと組み合わせて使用する。 メッセージブローカーは、RabbitMQ、Redis、Databaseなどから選択できるが、お勧めは、RabbitM…

django設定(CentOS)

OS:CentOS 6.2(64bit) django v1.4 python 2.6.6 Ubuntu(10.04)の時の設定と結構異なり、躓いたので備忘のため残しておく。参考にしたサイト (後日記載) (後日記載) httpdの設定 (後日記載) wsgiの設定 (後日記載) djangoのinstall (後日記載) sqliteの設定 …

日本語文字の扱い(windows向けには Shift_JISでなくcp932で扱う)

(一番左の半角チルダはどこでも同じように見えると思いますが、)表示環境によっては真ん中と、一番右の波ダッシュが同じように見えるかもしれませんが、真ん中と、右の波ダッシュは異なります。 その証拠に、pythonでsを表示させると違う文字コード(\u301cと…

djangoの設定ファイル

(間違ってるかもしれないけど、)理解した範囲で/var/www/myprj内のファイル構成と、ファイルの意味。 . |-- __init__.py |-- __init__.pyc |-- manage.py 開発用server立てたり(runserver),アプリ登録したり(startapp ${app名}),データベースと同期したり(sy…

djangoを使ってみる(2) PostgreSQL編

引き続いて、下記サイトを参考にしてPostgreSQLでも動作確認 【Python】 Djangoをapt-getでUbuntuにインストール http://blog.srengine.com/2008/03/python-djangoapt-getubuntu.htmlPostgreSQLをインストールした状態で、djangoの設定を2点だけ変更する。 p…

djangoを使ってみる

pythonのwebフレームワークであるdjango(ジャンゴ)を使ってみる。 開発環境は、ubuntu 10.04でpython-django (1.1.1-2ubuntu1.4)インストールから動作まで試してみた。django(wikipedia) http://ja.wikipedia.org/wiki/Djangoインストールから動作まで参考に…

androidでsl4aを利用して、html5を読み込ませる

sl4aでhtmlを開く sl4aのAPIのXXXとYYYを使用。 //後で書く 結果 マウスのクリックに反応して動かす部分を、タップでいけると思ったけどうまく動かなかった。 //後で書く 参考 //後で書く

androidをリモートコントロール

PCから、ネットワーク越しにAndroidをリモート操作し、以下を行った。 トースト通知表示 カメラで写真撮影 センサ情報の取得 Androidでは、SL4Aのサーバを起動し、PCからpythonを使って、そのサーバ越しに上記操作を行った。以下のサイトを参考にして作業を…

twitter client(2)

結局、python-twitterでは、認証機能をそのままでは利用できないようで、認証を使えるtweepyという別のモジュールを利用したのでそのメモ。 ざっくりとOAuthの登録、tweepyのインストール、tweepyでOAuthを利用してtwitter APIをたたいてtweet発信/tweet取得…

twitter client(1)

pythonでtwitter clientをちと作ってみようと思い調べてみたら、2つかかった。 python-twyt サイト(http://andrewprice.me.uk/projects/twyt/)に行ったら、discontinuedになっていた。 python-twitter いろいろ情報かかったのでこちらを試してみる。 $ sudo …

やや柔軟なFactory

apply()とgetattr()を使って、Factory作るための簡単な実験を行ってみた。 Hoge classと、Fuga classを動的にinstance化して、prn()メソッドを叩く実験を行ってみたので、作り方と結果を以下に記載する。 準備 Hogeクラスと、Fugaクラスを作成。両クラス名を…

pythonからC言語を利用する(2)

前回の続きで、Cでshared object(動的ライブラリ)を作成するところと含めて以下の順番で試してみた。 (1)Cで動くプログラムの作成 (2)Cの共有ライブラリの作成 (3)pythonからCの共有ライブラリをロードする (4)pythonからCの関数を実行する共有ライブラリの…

pythonからC言語を利用する(1)

あるC言語のプログラムをpythonから利用したくて、直接Cのlibraryを叩けないかと考え、pythonからC言語を利用する実験を行ってみました。ほとんど以下のサイトを参考にさせてもらって、実験してみました。 PythonからC言語の関数を呼び出す http://d.hatena.…

イテレータとジェネレータ式(おまけでジェネレータも)

イテレータとジェネレータ式って同じことできるよなー、と思いつつ、実験を行ってみた。 確かに出力結果は同じものを得られたが、内部的にはオブジェクトの扱いが異なるようだったので残しておく。 イテレータで書いた場合 まぁ、あたりまえの動き。 >>> i =…

コレスポンデンス分析(1)下準備  行列の列和、行和を計算する

統計解析の手法の一つであるコレスポンデンス分析(対応分析、コレポン、CAとも呼ばれる)をpythonで実装する。 コレスポンデンス分析では、行和、列和、特異値分解(SVD)などを行うため、本題に入る前に、超簡単な行列演算で肩慣らしをする。参考サイト SciPy…

numpy on Android

numpyが、Android上(のsl4a)でも使えるようだ。Port to SL4A (Android) http://projects.scipy.org/numpy/ticket/1969ここによると、「Matthew Turk has successfully hacked Numpy to run on Android already:」 だと。NumPy Port http://groups.google.com…

python でGUI(2)  GUIモジュールの種類

pythonでGUI作るには、いくつかの方法で実現することが可能。Tkinterしかしか知らなかった。Hello Worldコレクション Python編 - フレキシブルなオブジェクト指向スクリプト言語 http://news.mynavi.jp/column/helloworld/009/index.html GUIモジュール名 説…

python 特異値分解(SVD)

scipyと呼ばれる科学演算用モジュールをインストールして、行列演算を試す。参考にしたのはこちら。SVD in Python http://radialmind.blogspot.com/2009/11/svd-in-python.htmlSciPyを用いて潜在的意味解析(LSA) http://d.hatena.ne.jp/billest/20090819/125…

python でGUI(1) python/Tk チェックボタンとラジオボタン

以前、Perl/Tkで遊んでいたことがあったが、ここ半年で触り始めたpythonでもTkが触れるということを知ったので、新しいマシンのセットアップのついでにpython/Tkで遊んでみた。参考にしたのは以下のサイト。ソースはコピペで試してみた。チェックボタンとラ…