サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
Concurrency and Python By Shannon ,jj Behrens, February 03, 2008 Stackless Python, Erlang, and greenlets are interesting approaches to concurrency Shannon -jj Behrens works for Metaweb Technologies. He can be contacted at [email protected]. Imagine you wrote a new Web server that didn't support concurrency and couldn't do multiple things at the same time. Consequently, each new Web request would r
2011 Pythonアドベントカレンダー(Python3) - connpass の3日目を担当します。 Python 3 がリリースされてから、 Python の進化は主に Python 3 で行われ、そこから Python 2 にバックポートできるものがバックポートされています(例: GCのチューニング、辞書の内包表記など)。 しかし、 Python 2 は 2.7 で新規開発を終了しており、 2.7 にバックポートされなかった機能はもう Python 3 に移行しないと利用することができません。今日は、そんな機能のひとつである New GIL を紹介します。 なお、今日紹介する内容のほとんどは UnderstaindingGIL で紹介されている内容を僕なりに要約したものです。(ただし、翻訳ではありません) 著作権の扱いがわからなかったのと、代わりに自分で図を書き起こすのが面倒だっ
Bob Ippolitoは2006年にEventletの最初のバージョンを書きましたが、割とすぐに開発をやめてしまいました。Donovan Prestonは当時働いていたLinden Labの他の人とメンテナンスを行いました。ステートマシンやコールバックを使うよりも簡単にネットワークソフトウェアを方法を探しており、2008年にEventletに興味を持つようになりました。GreenletをベースとしたEventletは、当時あった他のフレームワーク(PYthonネイティブのジェネレータ、生のgreenlet、Corotwine)よりも、使いやすさという点で進んだものでした。 その時関わっていたプロジェクトはTwistedを使っていたので、二つのライブラリを統合することから始めました。作業をしているとEventletの大量のバグを見つけて、ほとんどのコア部分を書き換えました。修正したブランチ
There is something in python called warnings, and guess what? The name is very intuitive, they warn about something, kind like an Exception, but they just warn you… There are some types of warnings, the example above could be rewritten as follows: This way, when this function is called (maybe there was a piece of the code that hadn’t got refactored and you missed it) you’ll get the warning in the
http://engineering.pinterest.com/post/65713073803/how-we-use-gevent-to-go-fast Pinterestがエンジニアブログで、Pythonの数十万行のシングルスレッドのコードベースをgeventを利用してマルチスレッドにした経験を紹介しています。 1) Lessons from the early days シングルスレッドのコードベースでサイトの急成長に対処していくうちに、 機能が増えるにつれてサーバが増えた。 バックエンドのサーバが増えたら、障害や遅延のリスクが増した。 コードにロジックが増えたので、network IOなど並列処理をしたかったが、シングルスレッドサーバが足かせになった。 2) Building high performance servers 並列処理サーバを実現するための解がgeventであった
Google's Python Class Stay organized with collections Save and categorize content based on your preferences. Welcome to Google's Python Class -- this is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding. These materials are used within Google to int
しばらく Mac からおさらばしていたのですが、ゆえあって戻ってきました。 Python 3.3 ベースで Python 環境の構築をしたので、参考までに手順を残しておきます。 1. Homebrew で Python 3 をインストール とりあえずベースになる Python を用意します。いまならもう Python 3 を普段使い用にできるので、 Python 3 を用意します。 $ brew install python3 MacPorts でも大丈夫だと思います。 2. 自分用のデフォルト環境を作る システムの Python に直接自分が普段使うツール類をインストールするのは憚られるので、自分用のデフォルト Python を用意します。 Python 3.3 では venv が標準ライブラリにあるので、この手順で virtualenv を手動で準備する必要がなくなりました。 $ mk
Both the Ruby and Python garbage collectors handle old and young objects differently. Last week I wrote up the my first half of my notes from a presentation I did at RuPy called “Visualizing Garbage Collection in Ruby and Python.” I explained how standard Ruby (also known as Matz’s Ruby Interpreter or MRI) uses a garbage collection (GC) algorithm called mark and sweep, the same basic algorithm dev
Python用のWebフレームワークであるBottleと、O/Rマッパーのpeeweeを使って、Python Professional Programmingの2章のゲストブックアプリケーションを作ってみた。 試したバージョンは、Python2.7、Python3.3、Bottle0.11.6、peewee2.1.5。 ソースコード guestbook.py # coding: utf-8 import os from datetime import datetime import peewee from bottle import route, get, post, request, run from bottle import template, static_file, redirect, html_escape BASE_DIR = os.path.dirname(os.path.
自分のライブラリをPyPIに登録したい ...が、PythonにはRubyのbundlerのようなものが なく、(合ったとしても統一されてないと思う) プロダクト別に自由なディレクトリ構成になっている状態... せめて自分のプロダクトについては統一したいなあと思ったので Pythonのライブラリを作る場合のディレクトリ構成や 環境構築などについてメモを書く。忘れちゃうので... 利用するPythonのバージョンは3.3以降を意識してる。 それより前(3.2, 3.1...2.x)は考慮しない。問題無いと思うけど... テスト目的で作成したライブラリ fizzbuzzというアレなライブラリを作った。 ライブラリというかコマンドラインツールだけれど。 このライブラリの構成を元に、メモを書いていく。 ライブラリのディレクトリ・ファイル構成 以下のディレクトリ・ファイル構成とする。 fizzbuz
イテレータを介して見るPHPクラスの内部構造 を読んだのですが、 最近の php はちゃんと Python などの言語を参考にしてるなーと思うことが多かったのにこの仕様は残念です。 Python など多くの言語では、イテレータの取得とイテレータの使用を明確に区別しています。 Python ではイテレータを取得できるオブジェクトを iterable と呼び、イテレータを iterator と呼びます。 iterable は __iter__ メソッドを実装し、 iterator は __next__ メソッド (Python 2 では next)を実装します。 また、 iterator は同時に iterable も実装し、自分自身を返すようにします。 これにより、 for 文などは「イテレータを取得しそれをイテレートする」というシンプルな動作ができます。 iterable と iterat
In reality, logging is important. When you transfer money, there are transfer records. When an airplane is flying, black box (flight data recorder) is recording everything. If something goes wrong, people can read the log and has a chance to figure out what happened. Likewise, logging is important for system developing, debugging and running. When a program crashes, if there is no logging record,
Falcon is a Python web framework developed by Rackspace. It also has a benchmarking tool to test the framework against other frameworks. Out of curiosity, I wanted to see how other frameworks perform in this benchmark. Frameworks of this benchmark: bottle CherryPy Django Falcon Flask Pecan: This was already part of Falcon's default test. I had never heard of it. web.py Werkzeug: More like a utilit
Asim Ihsan (use arrow keys or space bar to advance, 'O' for overview) Contents What, why Time - where, how often Memory - how much, of what type Web frameworks Contents What, why Time - where, how often Memory - how much, of what type Web frameworks What, why Want to know what a programme is doing Debugging Optimisation Deterministic vs. statistical profiling Contents What, why Time - where, how o
This document discusses using Gevent to scale Django applications. It provides an overview of concurrency models like multi-process, threads, and event-driven approaches. It describes how Gevent uses greenlets and coroutines to provide asynchronous and concurrent execution without blocking the Python GIL. The document shares the author's experience migrating their products from Twisted to using Ge
SQLAlchemy is an object-relational mapper (ORM) for Python. It provides patterns for mapping database tables to objects and vice versa. The document discusses several ORM patterns from the book Patterns of Enterprise Application Architecture including: - Unit of Work pattern which maintains a set of objects to save in a transaction. SQLAlchemy implements this with the Session object. - Identity Ma
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く