タグ

Pythonに関するsatosssiのブックマーク (19)

  • http://kwatch.houkagoteatime.net/blog/2013/12/07/python-tips/

  • 今日からすぐに使えるデプロイ・システム管理ツール Fabric 入門 - 科学と非科学の迷宮

    Fabric は、Python 製のデプロイ・システム管理ツールです。 最近、構築や運用を自動化するための様々なツールが出てきています。 構成管理ツールの Puppet や Chef が有名ですが、使うまでに覚えることが多いのが欠点です。 しかし、Fabric は非常にシンプルなツールで、今からすぐに使うことができます。 Fabric はデプロイ・システム管理ツールで、類似のツールとして Ruby 製の Capistrano があります。 Fabric の最大の特長は、シェルスクリプトを書き慣れた人がいきなり利用できるところです。 シェルスクリプトとしてまとめていたコマンドをそのまま run() メソッドや sudo() メソッドで囲むだけで、使うことができます。 シェルスクリプトを使っていていると、いくつもの問題に遭遇します。 名前空間の管理 変数の扱い 複雑なデータ構造がない(せいぜい

    今日からすぐに使えるデプロイ・システム管理ツール Fabric 入門 - 科学と非科学の迷宮
  • Twisted 入門 — Twisted Intro

    Twisted 入門¶ この文書は krondoblog >> Twisted Intro の日語訳です。 この一連のチュートリアルでは、非同期プログラミングとネットワーク用フレームワークの Twisted を紹介します。 目次:

  • Fabric デプロイツールのPythonicな書き方 - Ian Lewis

    Fabric は指定したコマンドを各ホストで実行する実行モデルです。この場合は特にホストの指定がなかったので、全部ローカルで、一回実行することになります。 これは結構つまんないので、当の例を見ましょう。これは最近、仕事で作ったコマンドです。 nginx サーバーでメンテ画面を出すようなコマンドです。 各ロードバランサーで実行します。 from fabric.api import run, cd, abort, require, sudo, env from fabric.decorators import runs_once, roles from fabric.contrib.console import confirm ... @roles('loadbalancers') def start_maintenance(): """ メンテナンス画面に切り替える """ _produc

  • 「パーフェクト Python」を読みました

    上司や同僚が執筆に参加した Python3 に特化したプログラミングです。 ちょっと長くなったのと、コードスニペットが書きやすいので別ブログに感想を書きました。世の中にはこわいことがたくさんありますが、Python サポーターズもその中の1つです。 パーフェクトPython 技術評論社の紹介ページ

  • Pythonの隠された機能9つ – taichino.com

    StackOverflowでHidden features of Pythonという面白い質問がありました。原文の方では何十も項目があるのですが、独断と偏見で9個に絞って紹介します。 1. chaining comparision operator 不等式を連結出来るなんて初めて知りました。スーパーかっこいいです。今まで1 < x and x < 10とか書き続けてました。 x = 5 if 1 < x < 10: print "yay" if x < 10 < x*10 < 100: print "yaay!" if 5 == x > 4: print "yaaay!!" 他の言語でも出来んの?と思ってちょっと調べてみましたが、どうもPythonだけっぽいです。やっぱりPython最高ですね! 2013.03.05 追記 twitterで突っ込まれました。Pythonだけって言うのは嘘で

  • filter, map に指定する関数 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ

    この記事は Python Tips Advent Calendar 2012 10日目の記事です。 通常、filter, map の第一引数には関数(callable なオブジェクト)を指定しますが、これは None であっても構いません。 None を指定した場合、lambda x: x と大体同じ意味になります*1。 >>> filter(None, [0,1,[],3,None]) [1, 3] >>> map(None, [1,2]) [1, 2] 暗黙bool値変換 で書いたように、x が 0 や [] や None だった場合は False として扱われるので、そういった要素を除けるときに使えます。 map は、この例だと全く意味が無いように見えるかもしれませんが、例えば以下のように複数のリストを纏める場合に使えます。 >>> map(lambda a,b: (a,b), [1

    filter, map に指定する関数 - melpon日記 - HaskellもC++もまともに扱えないへたれのページ
    satosssi
    satosssi 2013/01/28
    これ知らんかったなー
  • 全てのwebエンジニアがPythonを勉強するべき2013年到来

    あけおめ!今年は巳年。へび。へびと言えばPython。そう今年は全てのwebエンジニアPythonを勉強する最高の環境が整った年なのです。 既にPerlRubyを習得してるけど、それに加えてPython必要?必要です!必要だと思います。もはやPythonはwebエンジニアにとって必修言語となりつつあると思います。Linuxの多くの箇所でシステム言語として用いられ、可読性の高さから多くの技術系書籍のサンプルコードとして用いられ、科学技術系分野におけるエコシステムの充実っぷりはますます磨きがかかっており、様々なライブラリがどんどん出てくる現状を「Pythonわからないから自分には関係無い」と遠巻きに眺めるのはもったいないです。 習得するのにどのくらい時間かかるの?あなたが既に他の言語に慣れ親しんでいるなら、特にRubyなどに精通していれば「1週間」で基的な読み書きは出来るようになるでしょ

    全てのwebエンジニアがPythonを勉強するべき2013年到来
  • Python の unicodedata モジュール - bkブログ

    Python の unicodedata モジュール Unicode のちょっとしたテキスト処理をしようと思い、 Python の unicodedata モジュールを使ってみました。これは非常に便利です。 unicodedata は Python に標準で付属するため、別途のインストールは不要です。次のようなことができます。 文字の名前を取得する 文字の名前を取得することができます。Unicode の文字にはすべて一意の名前がつけられています。ソースコード内で Unicode のコードポイントを使うときは U+20AC (EURO SIGN) などとコメントをつけておくと便利でしょう。 >>> unicodedata.name(u'A') 'LATIN CAPITAL LETTER A' >>> unicodedata.name(u'あ') 'HIRAGANA LETTER A' 文字の

  • Loading...

    satosssi
    satosssi 2012/10/24
    知らなんだ
  • Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp) - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。情弱ながらPyCon JP 2012で1セッション持たせてもらえることになりました。予め資料を公開しておきますので、当日は色々と質問・意見して頂ければと思います。 各トピックは各トピックでの総論になっていますので、細かい部分は文最後の参照にあるリンクを見るとより理解が深まります。 「なおここに書いてある内容は所属する団体とは関係のない、私個人の見解ですので、予めご了承下さい。」テンプレ終わり。 イベント PyCon JP 2012 発表日時 2012-09-16 11:00-11:45 作者 @ymotongpoo URL http://2012.pycon.jp/program/sessions.html#session-16-1100-room357-ja スライド (追記: 2012/09/16 23:50:00) 発表の24:00頃

    Pythonを取り巻く開発環境(PyCon JP 2012資料 #pyconjp) - YAMAGUCHI::weblog
  • 2012.05版 Python開発のお気に入り構成(ポロリもあるよ) - YAMAGUCHI::weblog

    はじめに こんにちは、Python界の情弱です。最近は色々とPythonの開発環境も変化してきていて、ようやくPython2.xとPython3.xを行き来しながら開発する体制が整ってきたという印象を受けています。ここしばらくは色々と試していたのですが、ようやく鉄板っぽい方法にたどり着いたのでメモしておきます。 なお、後半はPythonに限らない内容なので、他のLLを使っていても使えそうかなと思っています。この環境を設定すると何ができるのかというと、以下のことすべてが、無料で、自鯖を立てることなく行えます。 開発環境の整理(virtualenv) ローカルでの複数環境のテスト容易化(tox+pytest) CIによるテスト(Travis-CI) ドキュメントの自動ビルドおよびドキュメントの公開(ReadTheDocs) 概要 とりあえず全体像を先に共有しておきます。ちょっとでかいですがご了

    2012.05版 Python開発のお気に入り構成(ポロリもあるよ) - YAMAGUCHI::weblog
  • Pythonを高速化しよう! - gumi Engineer’s Blog

    はじめまして、gumiの津村です。 現在は解析系の仕事をしたり、ツールを作ったりしています。 今回の話は高速化についてです。 結構長めの文章です。 目次 実行速度の高速化 Python/C API ctypes Pyrex Cython SWIG その他 纏め 実行速度の高速化 高速化といっても色々ありますが、今回は実行速度の高速化についてです。 弊社ではPythonを全面的に採用していますが、そもそもLLは実行速度が遅い言語です。特にC言語のようなコンパイラ系の言語と比べると非常に遅いです。 それでもLL系の言語がここまで使われるようになったのは、開発効率が良いからです。 もはや常識ですね。 しかし、それでも特定の領域ではどうしてもPythonのようなLL系言語では厳しい部分も出てきます。 アルゴリズムを変更しても、ハードウエアを変えても、無理な物は無理です。 速度に問題がある場合の最適

    Pythonを高速化しよう! - gumi Engineer’s Blog
    satosssi
    satosssi 2010/11/10
    どーしてもってときにこれだな
  • Pythonのメタプログラミング (メタクラス) を理解したい人のための短いコード片と禅問答 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonのメタプログラミング手法の一つ「メタクラス」は,初心者にとっては「なんか強そう/経験値たくさんもらえそう」なアイテムの最右翼だと思う。反面「どうすればいいか/なにができるか」ということがなかなか理解しづらい。 英語のブログを見ていたら,メタクラスの理解に役立ちそうなちょうどよいサンプルを見つけたので,紹介がてら独自の解説を付け加えたいと思います。 メタクラスを簡単に説明すると,「来コードを書かなければ実現できないような処理を黒魔術的な処理でなんとかしちゃう」ためのテクニックです。コード量を(時には劇的に)減らすことができたり,すっきりした見通しの良いクラス設計を実現できま

  • 「Python×Django×AWS」による モバイル向けソーシャルアプリ開発の裏側

    6月30日、株式会社gumi CTO 堀内康弘氏による技術セミナー「Python×Django×AWS で作るソーシャルアプリ ~3日に1つアプリをリリースできた理由~」が開催された。オプト主催のソーシャルアプリコンテスト タイアップセミナーの一環で、今回で2回目の開催となる。 6月30日、株式会社gumi CTO 堀内康弘氏による技術セミナー「Python×Django×AWSで作るソーシャルアプリ ~3日に1つアプリをリリースできた理由~」が開催された。オプト主催のソーシャルアプリコンテスト タイアップセミナーの一環で、今回で2回目の開催となる。 ソーシャルアプリ開発に Python×Django×AWSを選んだワケ gumiは、エンタメ情報に特化したモバイルSNS「gumi」を手がける開発会社で、日初の携帯向けOpenSocialプラットフォーム「gumi Platform」を提供

    「Python×Django×AWS」による モバイル向けソーシャルアプリ開発の裏側
  • Google App Engine/Python で単体テスト - present

    Google App Engine SDK for Python には、単体テスト用に各サービスのスタブが提供されています。このスタブと unittest を使えば、ローカル環境で GAE 用アプリの単体テストが可能です。 GAE/Pythonunittest を使って、単体テストを行うサンプルは次の通り。 #!/usr/bin/env python #encoding: utf-8 import os import sys # 環境設定 # これをしないと GAE のモジュールをインポートできない。 # テスト対象のクラスも同様。 # ここを自分の環境に合わせて書き変えます GAE_HOME = 'Google App Engine SDK ディレクトリのパス' PROJECT_HOME = 'アプリケーションのルートディレクトリのパス' # テストで使う GAE のモジュールのパ

    Google App Engine/Python で単体テスト - present
  • GoogleAppEngineのサーバサイドの処理時間をProfileで表示させる為にcProfile使う - When it’s ready.

    Python旅館ネタ。これまた、tmatsuo氏に教えてもらた。 googleAppEngine内で、何の処理にドンだけ時間が掛かってるとか、どの処理が何回呼ばれてるとかそういうのが知りたい時にprofileを使うとある程度分かります。 やり方は凄い簡単で、デフォで使ってるmainメソッドを、real_mainメソッドに改名してprofile_main()から呼ぶだけ、profile_main()内では、<pre>タグ使ってhtmlを追加する処理が書いてあるのでみたい要素をprintするだけです。この方法の他にLoggingに回す方法もあるらしいです。 def main(): logging.getLogger().setLevel(logging.DEBUG) logging.info('-'*80) urls = [('/ngram/api/post', UpDate), ('/ngr

    GoogleAppEngineのサーバサイドの処理時間をProfileで表示させる為にcProfile使う - When it’s ready.
  • Instant Django(和訳)

    Instant DjangoWindows向けの携帯できるDjango開発環境です。 なにもインストールする必要はありません。単に自己解凍型のファイルをダウンロードし、ダブルクリック、解凍された'django'フォルダを好きなところに移動してください。 USBメモリに置くことによりどこへでも持ち歩くことができます。 このサイトもDjangoでウェブサイトを作るための基的なことをカバーしているチュートリアルがあります。 チュートリアルは初心者向けに作られており、Djangoフレームワークに関する知識を必要としません。 携帯できるDjango開発環境は公式のチュートリアルも動かせます。 チュートリアルに不備があったり、携帯用の開発環境に問題があった場合、気軽にメールをしてください。

  • ウノウラボ Unoh Labs: 2009年版Python開発環境を整えよう

    なでしこの作者じゃない方のsakatokuです。 以前書いた「Python開発環境を整えよう」という記事からだいぶ時間が経ってしまったので、内容を更新したいなぁと思っていたのですが、ようやくその機会が来ました。 virtualenvで開発環境をつくる 開発環境をつくるにあたって次のような問題が生じると思います。 root権限がないためにインストールしたいライブラリが使えない 新しいライブラリをインストールしたり、既存のライブラリをアップグレードすることで、既に動いているアプリケーションを壊したくない 複数のバージョンのPythonを使って開発、テストを行いたい 自作したPythonパッケージのインストールのテストを行いたい 以前の記事ではvirtual-pythonという解決策を紹介しましたが、現在ではvirtualenvというツールが広く使われるようになってきています。 virtuale

  • 1