タグ

ProgrammingとPythonに関するagwのブックマーク (766)

  • [python] 優れた Python プログラマを見分ける10+1の質問 - methaneのブログ

    お詫びと追記 この記事は 「優れたPerlプログラマを見分ける27の質問」の日語訳 - Islands in the byte stream を見て書いたものですが、僕が Perl について無知なのとタイトルに釣られたために、で元の問題の意図を汲み取れていませんでした。 その言語に取って重要な基事項を理解しているかのチェックリストとしては、以下の質問は不適切です。 お詫びに、真面目に Python の基事項に対するチェックリストをつくろうと思います。 質問 一般 バージョン管理をしているか テストを書いているか 1つ以上のオープンソースプロジェクトのコミッタであるか Python言語について list, tuple, dict, deque, heapq, bisect がどういう場面に適しているか説明しなさい ジェネレータの利点を説明しなさい Python 2 プロジェクトの Py

    [python] 優れた Python プログラマを見分ける10+1の質問 - methaneのブログ
  • Python 3.2登場、成長を続ける人気の言語 | エンタープライズ | マイコミジャーナル

    Python Programming Language 2月20日(ノルウェー時間)、Pythonの最新版となるPython 3.2が公開された。Python 3.2は現在開発が進められているPython 3系の最新版。前のバージョンからシンタックスの変更はない。組み込み型は多少変更されている。Python 3.2では主にスタンダードライブラリに注力した開発が実施されているほか、Python 3系へ移行するためのサポート機能の改善が実施されている。 Pythonの安定版は2.7系だが、2.7系は2010年7月に最終版がリリースされ、現在はメンテナンス期間に入っている。メンテナンス期間はセキュリティ修正やバグ修正は実施されるが、新機能の追加は実施されない。今後、新機能の追加はPython 3系のみに実施されることになる。 複数の検索エンジンの検索結果から対象となるプログラミング言語がどれだけ

  • PyPyがCより速いケース - karasuyamatenguの日記

    パイパイ(この名前ちょっとヤバいね)は場合によってはCより速いコードを生成することがあるという例。決してPyPyが一般的にCより速いと主張しているわけでないない。 http://morepypy.blogspot.com/2011/02/pypy-faster-than-c-on-carefully-crafted.html どうしてこういうことになるかというと、Cはモジュール(.o)の壁を越えて関数をインラインすることができないからだ。JITはそんなものおかまいなしにインラインすることができる。動的最適化の利点だ。 Python x.py def add(a, b): return a + by.py: from x import add def main(): i = 0 a = 0.0 while i < 1000000000: a += 1.0 add(a, a) i += 1 m

    PyPyがCより速いケース - karasuyamatenguの日記
  • pythonのCGIでHTTP POSTの生データを取得する - とある誰かの覚え書き

    バイナリ形式で送られたHTTPの生データ(Body)を取得したい場合、cgiモジュールから取得できないようなので代わりの方法を調べてみました。 結論としては、sys.stdinの内容を読み込むことで生データにアクセスすることができました。 サンプルコード import sys file = open("../test.jpg","wb") file.write(sys.stdin.read()) file.close() sys.stdin.close() # とりあえず200のステータスコードを返す print "Content-Type: text/plain" print print "Hello!" これを/cgi-bin/test.pyなどにおくと、http://localhost:8000/cgi-bin/test.pyに送信したバイナリをファイルに落とすことができます。 仕組

    pythonのCGIでHTTP POSTの生データを取得する - とある誰かの覚え書き
  • File Upload | Web Python Tutorial

    The python scripts in this page and in the next one will try to save an uploaded file in a directory named files in the directory where it is running. If the directory where the script is running is /path/to/dir then the /path/to/dir/files directory must exist. If it does not it will fail. To upload a file the HTML form must have the enctype attribute set to multipart/form-data. The input tag with

    agw
    agw 2011/02/12
    ファイルをアップロードするCGIスクリプトの例。
  • jugyo.org

    This domain may be for sale!

  • Picasaのウェブアルバムに写真を自動的に載せるpythonスクリプトを組んでみた。

    これはホント前々から作っておきたかったスクリプトの一つです。 Picasaのウェブアルバムは無料ながらにして容量が1GBととても大容量なので、クローズドに写真をアップロードする場所としてとても重宝してきました。だけどどうしても納得できないことが一つだけあって、それが写真のアップロード方法。 なんで一度に5枚しかアップロードできんのじゃい 普通アルバムに画像をアップロードしたいと思ったら2〜30枚くらいは軽くこえるだろうーどうして5枚だけ、しかもいちいち選択し直さなきゃならないのかとっても謎。 いや、「そんなことしないでPicasa使えば楽にアップロードできるのに」って思う人がいるかもしれません。そりゃそうなんですけど、個人的にあのアプリケーションは好きになれないのです。べつにキャッシュしなくてもいい画像ファイルもキャッシュしてしまうし。そんくらい自分でちゃんと整理します。 というわけで不自

    Picasaのウェブアルバムに写真を自動的に載せるpythonスクリプトを組んでみた。
  • Migration Guide to Google Photos Library API  |  Picasa Web Albums Data API  |  Google Developers

    Connect your application to the billions of users who choose Google Photos.

    Migration Guide to Google Photos Library API  |  Picasa Web Albums Data API  |  Google Developers
  • Pythonによるデザインパターン(目次) - None is None is None

    これは『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)をPythonに翻訳してみようというシリーズです。 Rubyによるデザインパターン 作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る デザインパターンの原則から 変わるものを変わらないものから分離する インターフェイスに対してプログラムし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(これは「Rubyによる〜」の筆者による) 記事 Template Methodパターン Strategyパターン Observerパターン Compositeパターン Iteratorパターン C

    Pythonによるデザインパターン(目次) - None is None is None
  • デフォルト引数の評価タイミング - 西尾泰和のはてなダイアリー

    Twitterより転載 shimizukawa: あるあるw あわせて覚えたい:関数引数のデフォルト値に arg=[] したときの挙動 RT @nishio: @atsuoishimoto 正しいけど不親切だと思ったので補足しました: 同じ値がN個入っているリストの作り方 http://bit.ly/eW2oaF はいはい、じゃあそれも書いておきましょう! Pythonの長所の一つはdisでバイトコードが読めることだと思うので疑問に思ったらとりあえずみんなdisればいいとおもうよ! >>> import dis >>> def bar(): ... def foo(x=1, y=2, z=[]): ... pass ... >>> dis.dis(bar) 2 0 LOAD_CONST 1 (1) 3 LOAD_CONST 2 (2) 6 BUILD_LIST 0 9 LOAD_CONST

    デフォルト引数の評価タイミング - 西尾泰和のはてなダイアリー
  • GAE/PythonでOAuth « python練習帳

    GoogleAppEngine / Python環境で、TwitterのOAuthを使ってみた。 1. TwitterAPI利用申請 Twitterのアカウントを取得し、API利用申請をします。 Twitterのアカウントを取得します Twitterにログインします 以下のアドレスにアクセスします https://twitter.com/apps 新しいアプリケーションを追加をクリックします アプリケーションの情報を入力して登録します ※コールバックURLは、GAEのIDがXXXの場合は、http://XXX.appspot.com/oauth/twitter/callback とします。 以下の2つの値をメモします Consumer key pQcelwAEib60BhEoE52*** Consumer secret ******* 2. サンプルアプリをデプロイ すぐ動作するサンプル

  • 第7回 代表的な離散型確率分布 | gihyo.jp

    今回は、前回導入したNumpy、そしてグラフを描画するmatplotlibを使って、いくつかの代表的な分布を紹介していきます。 第5回「「よく使う分布」はどうしてよく使う?」の項でも代表的な分布が紹介されていました。そこでは、“⁠この状況(モデル)では、この分布を使う⁠”というパターンを想定する、それが“⁠よく使う分布⁠”がいくつも存在する理由と言及されていましたが、どのような状況でどのような分布を使えばいいのでしょうか? 実際、どのような状況のときに、どのような分布を使うと説明しやすいかを考えながら、みていきましょう。 matplotlibのインストール matplotlibはpythonとNumpyのための高機能なグラフ描画ライブラリです。今後もグラフを描画することがあるかと思いますので、ここでインストールしておきましょう。 公式サイトのダウンロードから各OS向けのパッケージを入手して

    第7回 代表的な離散型確率分布 | gihyo.jp
  • 本を読む 「PyCon mini JP」に行ってきた

    Pythonのイベント「PyCon mini JP」に行ってきました。…いや昼からでしたが。思ったよりいろいろなジャンルの話があって楽しく聞いていました。 あと、最後のじゃんけん大会で、オライリーのアナライジング・マルウェアのTシャツをゲットしてしまいました。ありがとうございました。 以下、メモほぼそのまま。 テンプレートエンジンの高速化と失敗談について 文字列の連結を速くextendで足してjoinが定番 いろいろな方法をためしたが、結局これが一番 Tenjinのコード埋め込みインデントフリー 複数行を1つのメソッドで出力この程度のこともやってないテンプレートエンジンも多い 40%高速化 append50%高速化 メソッド呼び出しのコストが高い ここまでで1万ページ/sの性能ここからが苦難 リストに文字列以外のものが入っているとjoinでエラーにstr()のオーバーヘッド str()をビ

  • プログラミング言語人気TOP10の簡易解説

    0-1. 前書き この世にはたくさんのプログラミング言語が存在します。Wikiepdiaのプログラミング言語一覧を見ると、実に200個以上というわけの分からない数の言語が並んでいたりします。 【参考URL】プログラミング言語一覧 - Wikipedia http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%... 200の中にはほとんど使われてない言語も混じってるので、実際に仕事でざくざく使われている言語は20とか30とかそういうオーダーなのですが、それでも1人の人間が把握するにはちょっと多過ぎる数です。 記事では、そうした有り余るプログラミング言語の海の中で「どれを勉強したらいいの?」とか「どれを採用するのが適切?」という悩みをお持ちの方が「よし、この言語に決めた!」と自信を持って決断できるように背中を押すことを目的として書か

  • New Tail Recursion Decorator « Python recipes « ActiveState Code

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 import sys def tail_recursion_with_stack_inspection(g): ''' Version of tail_recursion decorator using stack-frame inspection. ''' loc_vars ={"in_loop":False,"cnt":0} def result(*args, **kwd): if not loc_vars["in_loop"]:

  • Pythonで末尾再帰最適化をする。 - IT系で覚醒めたい

    Pythonは最強ですね。文法はチョー簡単、ライブラリも充実度がすごい、それでいてメタプログラミングができる。そのメタプログラミングを使うと末尾再帰最適化までできるそうです…おそろしやNew Tail Recursion Decorator « Python recipes « ActiveState Code class tail_recursive(object): def __init__(self, func): self.func = func self.firstcall = True self.CONTINUE = object() def __call__(self, *args, **kwd): if self.firstcall: func = self.func CONTINUE = self.CONTINUE self.firstcall = False try:

  • 実行速度(改) « python練習帳

    先日、PythonPHPJavaScriptの3つの言語で、プログラムの実行速度を比較したところ、JavaScriptPHPPythonの結果になったのですが、いくつか指摘をいただいたので追加検証してみました。先日の記事 ⇒ 実行速度 書き方が悪いからおそいんじゃ? 普通にforループ使ったほうが速いよ。sum関数使うともっと速いよ。(by inamori@hatena) 長整数型になってるから遅いのでは? (by atsuoishimoto@twitter) 1. 記述方法の改善 最初に言い訳させてもらいます。range関数で、1000万個も変数を確保するとボトルネックになるんじゃないかと思っていたので、whileを使って記述してました。 whileループ カッコ悪いのであまり掲載したくは無いのですが、元の遅いソースコードを添付しておきます。 >>> def count(n):

  • 実行速度 « python練習帳

    Pythonは速いとの記述を見かけたので他の言語との性能比較をしてみました。 測定に用いたプログラムは、1~10,000,000までの総和を求めるというシンプルなものです。 非常に簡易的な測定なので、結果を鵜呑みにしないようご注意ください。 測定に用いた環境は以下の通り。 >>> def count(n): ...   i = 0 ...   sum = 0 ...   while i < n: ...     i = i + 1 ...     sum = sum + i ...   return sum ... >>> profile.run('count(10000000)') 4 function calls in 1.632 CPU seconds Ordered by: standard name ncalls  tottime  percall  cumtime  perca

  • 関数型プログラミング HOWTO — Python v2.6.2 documentation

    (これは下書きです。原文に関するコメント/間違い報告/提案は英語で amk@amk.ca まで。) この文書では、関数型スタイルでプログラムを実装するのにピッタリな Python の機能を見てまわることにしましょう。まず関数型プログラミングという概念を 紹介したあと、 iterator や generator のような言語機能、 および itertools や functools といった関連するライブラリ モジュールを見ることにします。 はじめに¶ この章は関数型プログラミングの基概念を説明します; Python の言語機能についてだけ知りたい人は、次の章まで飛ばしてください。 プログラミング言語とは問題を分解するものですが、 各言語がサポートする分解方法にはいくつかの種類があります: ほとんどのプログラミング言語は 手続き型 です: プログラムは、 入力に対して行うべきことをコンピュ

  • WSGIServerを3行でマルチスレッド化する : DSAS開発者の部屋

    WSGIとは PythonでWebアプリを作るときに必ず出てくる単語にWSGIがあります。 WSGIとは、Web Server Gateway Interface の略で、WebサーバーとPython製Webアプリを つなげる標準インタフェースです。 WSGIの上で動くようにアプリケーションを作ると、そのアプリケーションは修正無しに Apache+mod_wsgi, Apache+mod_python, fastcgi, scgi, cgi, 等の環境で動かせるように なります。 他にもミドルウェアという考え方があります。例えばOpenID認証機能をWebフレームワークの プラグインとして開発した場合では他のWebフレームワークでは利用できないのですが、 WSGIミドルウェアとして開発すればWebフレームワークを問わずに利用できるようになります。 標準ライブラリのwsgirefモジュール

    WSGIServerを3行でマルチスレッド化する : DSAS開発者の部屋