Tag/python

Python東海 第5回のまとめと発表資料公開します

[追記:2009/02/23 15:23] 今回も 株式会社 Vish 様のセミナールームをお借りしました。ほんといつもお世話になってます。

PythonとOpenIDのお話 by aodag

OpenIDの仕組みとPythonで扱う場合の解説。

  • OpenIDは認証のときにたくさんリダイレクトする。
  • OPは、IDをOpenIDとして提供する側、RPは、OpenIDでの認証に対応したサービス側。
  • これからは、OpenID 2.0を使っていこう。
  • openid.ne.jp は、1.1にしか対応してないからだめじゃん(自分もここの使ってた)。 myopenid 使おうよ。
  • URLでの認証の他、XRIというURL風の文字列で認証できる
  • XRIの@とか=の部分の文字列をi-nameという。有料で取得できる。企業用と個人用がある。
  • OPが持っている個人の情報をSREGという形式でOP RP間で受け渡しができる。
  • SREGはあくまでも登録を容易にするためのものなので、受けとったSREG情報をサービス側で保持する必要あり。
  • OpenID Enabled というサイトに、Python用のライブラリがある。
  • Yadis という仕組みがある。(よくわかってないので要調査)

集合知プログラミング本のコードを書いてみる by issm

オライリーの集合知プログラミング本の解説。数学とか統計とか超苦手だー。おもしろそうではあるんだけど。ちなみにこの本は買ったけど、まだ20ページくらいしか読んでない。

  • ユークリッド距離で人の趣味嗜好の似ている具合を求める。
  • ピアソン相関ってなんだ? なんか数式がでてきたー!
  • でもこの本はあんまり数式を意識しなくてもいいように書かれてるよ。

この本ちゃんと読んでみようと思った。これは単体の読書会が必要かも。

IPythonをマスターしよう by わたくし

自分の発表資料は、以下のとおりです。 SlideShare を使ってみたかった。

開発サーバ(TracLightning)でTracプラグイン開発 by akihirox

30分でVirtualPC上に TracLightning をインストールしてプラグイン開発環境を作るお話。実際に30分程度で開発環境ができていた。

  • TracLightningというWindows用のexeファイルがある。
  • TracLightningにはいろいろなソフトが同梱されている。Apache Subversion Python Trac Maven Hudsonなどなど
  • Hudson は、継続的インテグレーションツールというもので、Java上で動く。JREが必要になる。
  • BuildbotもHudsonと同じようなものだが、WebインターフェースはHudsonがかなり優秀。
  • Hudsonは、検索しにくいという名前の問題がある。日本人の方が作っている。

まとめ

今回は、参加者6名中4名が発表というなかなかアグレッシブな内容でした。ただ、参加者が減って来てる傾向があるので、東海地区のみなさま(もちろん遠方からでも歓迎です)、お気軽にご参加ください。Pythonに関する発表ならなんでもかまいませんので、発表者の方も募集中です。敷居はとても低いです。Pythonに興味があるけど、使ったことないって方でも是非是非ご参加ください。

Posted at: 
2009/02/22 14:28:07
0 Comments
1 TrackBack
Tags: 
ipython
python
python-tokai
Trackback: 
http://blog.monospace.jp/2009/02/22/python_tokai_5/trackback/

Python東海 第4回

まずは、毎度のごとく会議室を使わせて頂いて差し入れまで頂いている 株式会社Vish 様と aodag 様に感謝致します。

今回は、8名参加ということでいつもよりちょっと少なめな感じなんですが、自分の発表以外は割と充実した内容でした。というのも自分は aodag 氏が来るまでの時間つぶしに Django の布教でもしようかとちょっとだけ紹介したんですが、Python2.6とPython2.5がわけわからんことになってて変なところでつまづいてしまったので、きっとマイナス効果だったことでしょう。言い訳としては、普段ローカル(Mac)でDjangoの開発をしていないということで。やっぱりいずれ Django 勉強会@名古屋はやりたいです。今んとこ自分的に無理ですけど。

発表内容

開発環境について、主にテストとか - aodag さん

Pythonでテスト書くなら、とりあえず doctest で、 unittest よりも nose の方がいいよ。 twill を使うとブラウザのシミュレーションテストができる。あと、 webtest とか。 aodag 氏は Ian Bicking の信者らしいです。

あと、これは今すぐ入れるべきな、 virtualenv 。PyPI にあげようと思うならこれを使ってちゃんとインストールテストしろとのこと。自分も入れておけばバージョン問題に悩まされなかったことでしょう。

最後は、 buildbot について。グラフィカルに開発状況が見られるっていうのはなんだかおもしろい。こういうものは CI ツールと言うらしい。他には Hudson とかが有名とのこと。(最近iPhoneアプリでがんばってますよね) buildbot はすばらしいんだけど、デフォルトのデザインが適当すぎるのでなんとかしろとのこと。ちょっと見てみます。

Silverlight と IronPython - terurou さん

Siverlight のアプリは、 IronPython で作れるよという話。Flash は大量のオブジェクトの描画が苦手らしく、その辺は Silverlight が圧倒的に速いらしいです。 こちらにスライド が。Silverlight の開発言語は他にも Javascript とか IronRuby とかの LL な言語が使えるみたいです。 ただ、 Javascript は、外部ファイルの読み込みが困難なためおすすめできないとのこと。

Hello, World をやってみるのコーナーで印象的だったのは、開発サーバがついてること。 localhost:2060 って変わったポートだなーと思った。今思えば普通にブラウザが立ちあがるだけじゃだめなのかな。コンパイルしなくても動くって話かな。あと、 sl ってコマンドはどう考えても、SLが走るコマンドでしょう。で、最終的にデプロイするファイルは、xap というファイルになるみたいです。よくあるところの、実は拡張子が違うだけの zip というやつみたいです。

Silverlight は、xaml という UI を定義するものとロジックが完全に分かれているので開発面で便利。あと Expression Blend というソフトを購入すると、グラフィカルに UI を書けるツールが使えるようです。開発環境は基本的に、Windowsだけど、Macでも mono を入れるとできるっぽいです。 moonlight ってのもあったなあ。

そんな感じで思い出せるのは、この辺です。今日のエントリーは外部リンクが多くて大変だった。

Posted at: 
2009/01/25 02:09:25
0 Comments
1 TrackBack
Tags: 
python
python-tokai
Trackback: 
http://blog.monospace.jp/2009/01/25/python_tokai_4/trackback/

Fabric で Django アプリのデプロイ

Google App Engine のデプロイの簡単さを知ってからというもの Django アプリのデプロイもあのくらいにならないものかと思っていたわけですが、ちょっと Fabric というデプロイツールを見つけたので使ってみました。 Capistrano 的なものということですが、 Capistrano は使ったことがありません。 Fabric は Python 製ということで困った時のソース読みが可能なのでちょっと遊んでみることにしました。

Fabric

インストール

easy_install で一発です。これで /usr/local/bin/fab というコマンドがインストールされます。動作環境は、Leopard のデフォルト Python2.5.1 です。

$ sudo easy_install fabric
$ fab

fabfile.py の作成

デプロイ処理を fabfile.py というファイルに記述します。ここで書いた関数は、 $ fab コマンド名 のコマンド名部分になります。

SSH でログインして、リポジトリから最新版をもってきて、Apache をリロードするって流れを作ります。あ、その前にテストを通ったらってのも重要ですね。

今回リモートに使ってるサーバは、Ubuntuのちょっと前のやつです。(なにかわすれた)

#vim: fileencoding=utf8:

def pull():
    "リポジトリから最新版を取得"
    run('cd $(project_dir); hg pull')

def test():
    "テストを実行"
    local('python manage.py test', fail='abort')

def reload():
    "Apacheのリロード"
    sudo("/etc/init.d/apache2 reload")

def staging():
    "ステージングサーバを選択"
    set(fab_hosts = ['stg.co-soku.jp'])
    set(project_dir = '~/www/stg.co-soku.jp')

def production():
    "プロダクションサーバを選択"
    set(fab_hosts = ['co-soku.jp'])
    set(project_dir = '~/www/co-soku.jp')

今のところ easy_install で入るバージョンだと、set という fabric の関数を使ってるんですが、これは、最新のリポジトリでは、 config.fab_hosts という形式に変更になってるっぽいです。組み込みの set とかぶりますからねえ。ちなみに、set()で設定したものは、$()で取得できます。 $ なんて Python っぽくないかも。

local 関数は、ローカルでの実行。run 関数は、リモートでの実行。 sudo 関数は、リモートで sudo 使う場合のやつです。ちなみに、SSH の接続でパスフレーズなしのキーを使ってると、sudo の実行の時にパスワードが聞かれない問題があるみたいです。というわけで自分は、visudo で apache の再起動コマンドだけを NOPASSWD 設定にしました。

test コマンドは、fail というキーワード引数を渡して失敗した場合の処理を決めます。 'abort' は処理を中断。'ignore' は無視して次の処理へ。 'warn' は、エラーを吐いて進むって感じです。

使い方

Django の プロジェクトルートに fabfile.py を置いて実行します。

テストして、ステージングに接続して、hg pull して、 Apache のリロードという流れを実行します。この場合、test のときに fail='abort' を設定しているので、テストがこけるとそこでデプロイは中断されます。

$ fab test staging pull reload

これだと、以下のようにテストを飛ばせてしまうので、staging や production コマンドの中に、 invoke(test) とか書いておくと、いいかもって書いてありました。

Deploying Django with Fabric @ Irrational Exuberance

$ fab staging pull reload

他のデプロイツールを使ったことがないのでなんとも言えませんが、普通に使えるなあと思いました。

Posted at: 
2008/12/08 01:24:33
0 Comments
0 TrackBacks
Tags: 
Django
python
Trackback: 
http://blog.monospace.jp/2008/12/08/deploy_django_apps_with_fabric/trackback/

Python東海 第0回MTG にいってきました

しばらく動きがなかった東海のPython界ですが、
先日23日に久々に勉強会的なものがあったので行ってきました。

場所は、株式会社VISHさんの会議室をお借りしました。
新しいオフィスはおしゃれーな感じでとてもいいですね。

今回は、今後の東海地区の Python 界の活動について考えるというのを兼ねた
勉強会+キックオフミーティングのようなものでした。内容はこんな感じ。

  • Mercuialについて語る by hfunai(わたくし)
  • Google App EngineのチュートリアルをしながらPythonを学ぶ by aodag
  • 今後の活動について

Mercurial に興味を持ってくれた方を発見してちょっとうれしいです。
慣れない reStructuredText を使って資料を作った甲斐がありました。
reST を一発で HTML に変換してくれるプラグインの Vst はすばらしいですよね。
あと、Bitbucket はとてもよさげですよー。ここを使うために Mercurial 始めるべし!

2008-08-25 - 負けないように頑張る日記

というわけで、次回は、9/27に決定しました。
内容的には、Pythonの標準ライブラリ紹介とか Python 入門者向けがメインになると思います。
気軽に遊びにきてください。あと Python についてなんでもいいので、発表してくれる人も大募集です。
Python東海 ー Google Groupにとりあえず登録してみてください。

東海地区でも Python の仕事が増えてきたら素敵なので、なんとか盛り上げていきましょう

Posted at: 
2008/08/27 02:18:32
0 Comments
1 TrackBack
Tags: 
python
Trackback: 
http://blog.monospace.jp/2008/08/27/python-toka-mtg0/trackback/