タグ

ブックマーク / y-yanbe.hatenadiary.org (4)

  • MapReduce on Python - yanbe.log

    Googleの分散処理技術であるMapReduceの解説記事をid:YuichiTanaka:20060923さん経由で知りました。 面白そうなので、このMapReduceをPythonで実装したらどうなるかやってみました。 やってることはid:u-no:20060318さんと同じで、 要は通信の代わりにメモリ使って、プロセスの代わりにスレッド使ってってこと。 です。つまりMapReduce簡単版ってところですかね。 でも、プログラミングモデルとしては参考になると思います。 ソースコード import threading import urllib2 import utils class MapReduce: class Worker(threading.Thread): def __init__(self, func, args): threading.Thread.__init__(s

    MapReduce on Python - yanbe.log
  • 指定ディレクトリ下のファイルを更新時に自動アップロードするVimScript - yanbe.log

    ローカルのPC環境で,サーバーにアップロードすることを前提としたファイル,例えばHTMLファイルやCGIスクリプトなどを編集するときは,表示の確認やスクリプトの動作確認のために,以下のプロセスを繰り返すことになります. ファイルを更新 サーバーにアップロード (動作|表示)確認 更新したファイルをサーバーにファイルをアップロードする際には,Linuxではftp,scprsyncといったコマンド,WindowsではFFFTP,WinSCPなどのツールを使うことが多いと思います.このとき問題になるのが たとえコマンド1回で済むとしても,ファイルを更新するたびにアップロードして確認するのが,激しく面倒くさい ということです.個人的にこの面倒くささを解消したくて,過去に色々と対応策を試しましたが,どれも一長一短だというのが結論です. リモートに編集環境を構築する場合の問題点 ファイルの編集に必要

    指定ディレクトリ下のファイルを更新時に自動アップロードするVimScript - yanbe.log
  • 2006-03-11

    Pythonで最近注目されているWebフレームワークとしてweb.pyがあります。これをレンタルサーバーのような、制限の多いCGI環境で使うにはちょっとした工夫が必要です。以下に述べる設定はXREA(CGIにpythonが使える。素敵(^^)v)の場合ですが、ほかのレンタルサーバーでもほとんど同じだと思います。 マルチスレッド処理の無効化 web.pyはWSGI上で動作し、WSGIは内部でマルチスレッド処理をしていますが、XREAではCGIプログラム内でのマルチスレッド処理を許可していないため、無効化してやる必要があります。 2006/5/20追記: 利用しているサーバーが、CGI内でのマルチスレッド処理を許可しているなら、このステップは必要ありません web.pyおよびweb.pyが使用するflupのコードを追っていった結果、以下の箇所を変更すればマルチスレッド処理を無効化し、シングルス

    2006-03-11
  • 2006-05-20

    web.pyはPythonの中でも割と最近追加された関数を使っていたりするので、少し前のバージョンのPython(今回はPython 2.2)を使わなければいけない状況だと、動かすのに少々難儀したりします。レンタルサーバでなくとも、おいそれとソフトのバージョンアップができない環境(他の人と共用で使ってるサーバーなど)では、まだPython2.2を使っているところも多いのではないでしょうか。(余談ですが、Googleが使っているPythonのバージョンも2.2だそうです) ちなみに、web.pyをCGI環境で動かしたいときはこちらへどうぞ。今回の件とは独立したfixです。>CGI環境でweb.pyを動かす というわけで、そのときのメモ。 web.pyはflupというWSGIのインターフェースを提供するモジュールに依存しているのですが、flupはPython 2.3で追加された文法であるジェネ

    2006-05-20
  • 1