タグ

ブックマーク / mopemope.hatenablog.com (9)

  • 関数などの実行結果をすりかえる - Doge log

    こんにちは、Python界のヘンリー塚ことmopemopeです。 なんかpythonのpycファイルをいじってアタックするとかセキュリティの話が出てきてますね。 せっかくなので別の方法でこーいうこともできますよというのを紹介しておきます。 もちろん普通の人は書かないであろう、あらびきな方法です。 今回は関数などの実行結果をすりかえるという話です。 ではコード。 steal.h #ifndef STEAL_H #define STEAL_H #include <Python.h> #ifdef DEVELOP #define DEBUG(...) \ do { \ /*printf("%-22s%4u: ", __FILE__, __LINE__);*/ \ printf("%-22s %-32s%4u: ", __FILE__, __func__, __LINE__); \ printf

    関数などの実行結果をすりかえる - Doge log
    kshimo69
    kshimo69 2011/10/12
  • 覚悟を決める 新卒準備カレンダー 2011春 - Doge log

    このエントリーは新卒準備カレンダー 2011春 : ATNDという、みんなで仕事に関して自分が考えることなどをエントリーに書いていく企画で書かれたものです。 事の発端は某所でgdgd言ってた話が膨らんでこーなったわけですが、まあその場に居合わせてのもあり何か書いてみようと思います。 はっきり言ってみんなに書きたい事が書かれてしまってるので適当です。 震災に関しては他で散々言われてますので敢えて触れません。 お前、誰よ? @mopemope:松原 豊と言います。株式会社 Abby CTOやってます。大掃除では便所掃除を担当しています。 一時期、Seasar界隈のコミッタをしていた事もありますが、今はほぼpython界隈の人間です。 アウトプットとしてはまあなんかとかjavaの雑誌にチラ裏みたいな事書いたりしてます。 他にも PEP249の実装(pymysqlmysqlDBドライバ) P

    覚悟を決める 新卒準備カレンダー 2011春 - Doge log
    kshimo69
    kshimo69 2011/03/16
  • web2pyを使おう! - Doge log

    おはようございます!小倉智昭です! ちんこうp!ちんこうp! いやあid:moriyoshiがパイプカットするとかしないとかで盛り上がってる中恐縮なんですが今回は @aodag先生から、アドベントカレンダーが回ってきたのでその話をしたいと思います。 web2py webフレームワークということなので今回はweb2pyを紹介したいと思います。 正直書くことがなくて困ってたので「ドキッ!漢字だらけのwebサーバ、eurasia」の話を書こうかと 思ったですがやめました。 漢字読めないし。 で話を戻します。 よくpython初心者に使うwebフレームワークなら何がいいですけねー?みたいな話がありますが、 もちのろん答えは決まっています。pyramidじゃなくweb2pyです。 djangoなんて難しいので使ってられません。 web2pyはシンプルにwebアプリケーションを書けるフレームワークです

    web2pyを使おう! - Doge log
  • meinheld websocket - Doge log

    こんにちわ、しのまりファンことmopemopeです。 meinheld 0.3よりwebsocketをサポートする予定です。 websocketはmiddleware経由で取得できます。 WebSocketMiddlewareを使うとenvironからwebsocketを取得できます。 シンプルなチャットはこんな感じ。 meinheld/websocket_chat_simple.py at dev · mopemope/meinheld · GitHub import os from meinheld import server, middleware, websocket participants = set() """ @websocket.WebSocketWSGI def handle(ws): participants.add(ws) try: while True: prin

    meinheld websocket - Doge log
  • プロセス名を書き換える - Doge log

    こんにちわ、情弱です。 村崎百郎が殺されて少し動揺しています。 話は変わって。。。 perlなどは$0でプロセス名を変えたりできて便利ですよね。 でpythonではできるの?って話です。 ダメかと思ったが一応できるっぽい。 誰も書いてなさそうなので書いておきます。 PyObject * set_process_name(PyObject *self, PyObject *args) { int i = 0,argc,len; char **argv; char *name; if (!PyArg_ParseTuple(args, "s:process name", &name)){ return NULL; } Py_GetArgcArgv(&argc, &argv); for(i = 0;i < argc; i++){ len = strlen(argv[i]); memset(argv

    プロセス名を書き換える - Doge log
  • Flaskを触ってみる 1 - Doge log

    Flaskですがあんまり書かれてなさそうなので書いておきます。 Flaskはmitsuhiko先生が作ったmicroframeworkです。 Flaskが指すmicroは単純に小さいというわけではなく、他のライブラリをつなぎ、シンプルなAPIを 提供する小さなフレームワークのようなイメージです。 Flaskは werkzeug jinja2 に依存し、単体の機能はそれらに任せています. Flaskそれらをうまくつなぎ合わせ、シンプルなAPIをユーザに提供しています。 そのため、Flaskは1ファイルで構成されています。 (つなぎの部分なので小さい。APIのドキュメント込みで900行を切っている) 一応Flaskはmicroframeworkとしていますが、コアはwerkzeugです。 werkzeugは大規模サイトなどの実績もあり、大変便利なライブラリです。 Flask自体で提供されていな

    Flaskを触ってみる 1 - Doge log
  • Python Hack-a-thonの資料 - Doge log

    皆様、お疲れ様でした。 Python Hack-a-thonとか言いつついろんな話ができるのがPython Hack-a-thonのいいところでもありますが、 せっかくなのでPythonの話もしていきたいですね。 個人的には毎回、少しマニア向けなPythonネタを発表できればいいかなと思います。 聞きたい話などのリクがあればそれについて話してもいいですし。 前回の資料も合わせて以下に置いておきます。 mopemope / python-hackathon — Bitbucket もうbruceしか使ってないので同じ形式で見たい人はbruceでみてください。 (pythonで書かれたプレゼンツールです) Google Code Archive - Long-term storage for Google Code Project Hosting.

    Python Hack-a-thonの資料 - Doge log
  • eventletのクライアントコードサンプル - Doge log

    書いてる人ほぼ見たことないので書いておくかな。 from os import path import eventlet from eventlet.green import urllib2 from pyquery import PyQuery as pq from urlparse import urlparse empflix_url = 'http://www.empflix.com/browsecat.php?page=%s&chid=17&category=mr' save_path = "/tmp" pool = eventlet.GreenPool(2) def get_asian(page=1): q = [] conn = urllib2.urlopen(empflix_url % page) page = conn.read() d = pq(page) for spa

    eventletのクライアントコードサンプル - Doge log
  • tornadoの話 - Doge log

    話題のtornadoについてちょっと書いておきます。 フレームワークについて tornadoは一応wsgiをサポートしていますが気で組むなら独自で持ってるAPIの方がよいでしょう。 独自のAPIの方は必要最低限な処理しかしません。 無駄なアプリケーションコードを少なくすることでパフォーマンスを得ています。 もちろんアプリケーションコード実行間はブロックしていますが、その時間をなるべく少なくしようという 観点で薄いフレームワークになっています。 (ほとんど1ファイルの小さなモジュールになっているはずです) ここで変にwsgi対応のFWを乗せたりしようもんならパフォーマンスはかなり落ちるのでやらない方がいいでしょう。 wsgiはインターフェイスがぬるいためFW側で結構な量のコード実行することになります。 ハッキリいってpythonはそこまで速くありませんのでチリも積もれば。。。といった感じで

    tornadoの話 - Doge log
  • 1