タグ

Pythonとpythonに関するWackyのブックマーク (1,422)

  • Google APP Engine Python入門(2010年2月版) - TechTalkManiacs

    Google APP Engineについては初期のころのまとめはあるのですが、Pythonですとリリースからそろそろ2年近くになり内容も大きく様変わりしています。最速マスターシリーズでもGoogle APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。 基的にwindows環境中心です。 最初に ドキュメントを見るときは必ず英語版を見ましょう。日語版があるのはありがたいのですが、バージョンとしてはかなり古く、特に歴史の長いPython版では現行の内容とはかなりの隔たりがあります。 Google APP EngineのドキュメントのURLは以下のようなパターンになっています。 http://code.google.com/intl/ja/appengine/docs/**** これのうちjaが言語を表すコードになっていますので、これをenに

    Google APP Engine Python入門(2010年2月版) - TechTalkManiacs
    Wacky
    Wacky 2010/02/15
    Google APP Engineについてのまとめが無く、そろそろアップデートの必要があると思いまとめてみました。
  • CUIベースなのに無駄にビジュアルなPython用デバッガ - pudb — TRIVIAL TECHNOLOGIES 2.0

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー pudbは,CUI環境(つまりシェル)で動くGUIライクなデバッガ。Pythonには標準でpdbというデバッガがついてくるけど,コマンドラインベースでちょっと使い方が面倒だよね。pudbはpdbよりノリがいい。まあスクリーンショットを見てもらうのが早いかな。 CUIベースでGUIっぽいことをするというのは,レトロなノリだよなあ。でもCUIベースならシェルが動く環境ならどこでも動く,という利点もある。ローカルのPythonでもssh越しのPythonでも,シェル上なら同じように動くというのは嬉しい。 インストールは簡単。いつものごとくeasy_installを使って「$ easy_ins

    Wacky
    Wacky 2010/02/15
    CUIベースならシェルが動く環境ならどこでも動く,という利点もある。ローカルのPythonでもssh越しのPythonでも,シェル上なら同じように動くというのは嬉しい。
  • PythonでUNIXシグナルのハンドラを扱う(前半) - 試験運用中なLinux備忘録・旧記事

    Pythonスクリプトの実行中にCtrl+Cを押すと Traceback (most recent call last): File "[スクリプトの場所]", line xxx, in <module> app.main() File "[スクリプトの場所]", line xxx, in main gtk.main() KeyboardInterruptのようにKeyboardInterrupt例外が発生してメッセージが表示され、PyGTKを用いたGUIアプリケーションでもこのようにメッセージが表示される。C言語やVala言語などでGTK+を用いたプログラムを作成した場合にはこのようにはならないが、PyGTKでこのメッセージが出るのが邪魔な場合、抑制することはできる。 PythonにおけるUNIXシグナルの処理 一般的に、GNU/Linux上のアプリケーションは、UNIXシグナルを受け取

    PythonでUNIXシグナルのハンドラを扱う(前半) - 試験運用中なLinux備忘録・旧記事
    Wacky
    Wacky 2010/02/15
  • Pythonリスト内包表記文法 低速マスター - When it’s ready.

    リスト内包表記(LC)使った方が圧倒的にコードが読みやすく、短くなる。慣れてないという理由で使われてない気がするので今後の自分のためにも、メモを残す。 LCは基的に、ListやHashを処理する際に使用される。例えば、規則性のある並びのListが欲しい時などに利用すると良い。 1, 基礎 リストの作成 forの前が処理、forからList名までがひとつのforの段落で前から評価される。 src_list = [1,2,3,4,5] print [x for x in src_list] # [1,2,3,4,5] リストの作成2 for部で取り出された要素が、その後ろif部で評価され真だったものだけが、初めのx*2に渡され処理される(この場合は、2.4だけ) src_list = [1,2,3,4,5] print [x*2 for x in src_list if x % 2 == 0

    Pythonリスト内包表記文法 低速マスター - When it’s ready.
    Wacky
    Wacky 2010/02/08
  • Python でマルチスレッドプログラミング - trial and error

    こんにちは。 最近いろいろごたついてて、ブログなんか更新してませんが、それなりに充実した生活を送っているのでご心配なくw ところで、今日はいつもどおり Python の話題です。 いま、某 LUG であるプログラムを作っているのですが、その中でマルチスレッドを使えたらなーと思って、ちょっといじってみました。 マルチスレッドが使えると...: 複数の作業を並列して実行できる 一定間隔で何かを実行するような処理を簡単にできて便利。 CPU を有効的に使える などいろいろ利点がありますが、今回は主に 2 番目のものをターゲットにしてみました。 結局、1番目も関わってくるんですけどね。 Python でスレッドを生成するには、threading モジュールを使うのが便利です。 http://www.python.jp/doc/release/lib/module-threading.html こい

    Wacky
    Wacky 2010/02/08
  • バイナリファイルにパッチを当てる - Pythonを書く

    ファイルのnバイト目にバイナリデータを上書きします。ファイルサイズは変わりません。上書きする前に、元のバイナリデータを読んで、正しい場所にパッチを当てようとしているか確認します。 ポイントはファイルを「読み書き両方」「バイナリ」でオープンするところです。あとはseekしてread/writeをするだけ。 ※はてなダイアリーの仕様により、コード上に余計なタグ(</pp>)が出てしまっていますが無視してください PATCH = [ ('msnmsgr.exe', [ (0x0008CF08, '\xB7', '\xB6'), (0x000A9D87, '\x74', '\xEB'), (0x0021D15F, '\x8B\x86\xE0\x02\x00\x00', '\x33\xC0\x40\x90\x90\x90'), ]), ('msgsres.dll', [ (0x001A4259, '

    バイナリファイルにパッチを当てる - Pythonを書く
    Wacky
    Wacky 2010/02/05
    ファイルのnバイト目にバイナリデータを上書きします。ファイルサイズは変わりません。上書きする前に、元のバイナリデータを読んで、正しい場所にパッチを当てようとしているか確認します。
  • InfoQ: 動的言語総まとめ : PythonのGILが徹底改善されるも廃止はされない。SqueakがAndroidに移植された。

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    InfoQ: 動的言語総まとめ : PythonのGILが徹底改善されるも廃止はされない。SqueakがAndroidに移植された。
    Wacky
    Wacky 2010/02/04
    一定のチックの間、実行する(バイトコードの命令を実行する)。そして一定のチックが過ぎると、条件変数を使ってその時点でGILを取得することができる他のスレッドを起動させる。
  • Windows と linux で同じPythonスクリプトを使いまわすときの注意点 - 玉虫色に染まれ!!

    年末年始は長めに休みを取って実家にゆっくり帰省してきました。 その際、以前エントリに書いたとおり、Windows に Pyscriptor をインストールして持ち帰り、趣味グラミングを楽しんでおりました。親がナンプレにはまっていたので、ナンプレを自動で解くプログラムを書いてみたり。 余談ですが、親の持っていた専門誌に載っていた問題は難易度が5段階に設定されており、難易度2あたりまでは完全に理詰めで「ここにはこの数字しか入らない」を順に埋めていけば解けるようになっていました。また、最高難易度の物でも、仮定を高々1段置く、つまり、「理詰めで解く」→「どこかのマスの数字を仮定したうえで理詰めで解いたら矛盾が出る物を探す」→「そのマスにその数字は入らないことが判明」→(最初に戻る) を繰り返すだけで解けるようになっていました。上記の手順では解けないけど答えは一意に確定する問題も、理論的には存在する

    Windows と linux で同じPythonスクリプトを使いまわすときの注意点 - 玉虫色に染まれ!!
    Wacky
    Wacky 2010/01/26
  • Pythonで自動化、GoogleDocsのSpreadSheetを使ったディスク使用量モニタースクリプト - When it’s ready.

    気づいたらDiskの残量がメチャ減ってるときってありますよね。Nagiosとか監視ツール使って閾値超えたら警告出すとかやってる人も居るかと思います。監視ツールはエラーの発生はログ取りするけど、日々の使用料を記録して見やすくなってないのが大気がします。大きめのファイルサーバ使っていると、今後の容量計画を行う場合は現状把握が大切です。各ドライブごとにどれくらいの容量増加傾向があるのかを知るためには、監視ツールのみだとやや物足りない感じがします。 ログる内容は、dfコマンドで表示出来る分で十分なのでコレを毎日ダンプし続けると良いかもしれないですが、やっぱり結果はグラフで見たいし、いつも最新の状態が見たいですよね。さらにグラフは、画像ファイルとかでサクっとウェブで見えたりしたらさらに便利 ということで、こんなの作ってみました。 dfで見えるようにドライブをマウントしておいて、dfコマンで出る各パラ

    Pythonで自動化、GoogleDocsのSpreadSheetを使ったディスク使用量モニタースクリプト - When it’s ready.
  • HadoopでPython使ってテストしてみた - その2 - もちおのWEBアプリ開発日記

    前回の続き Pythonで[mapper]と[reducer]を作ったところから ファイルシステムのフォーマットを行います。 hadoop@ubuntu-vm:~$ hadoop namenode -format hadoop@ubuntu-vm:~$ start-all.sh hadoop@ubuntu-vm:~$ jps 9258 TaskTracker 9043 SecondaryNameNode 17131 Jps 8885 DataNode 8751 NameNode 9122 JobTracker jpsコマンドが上記のようになっていればOKです。 今度は[HDFS]というファイルシステムに前回作ったサンプルデータを登録します。 データ量が多い場合は時間が結構かかります。 hadoop@ubuntu-vm:~$ hadoop dfs -copyFromLocal input i

    HadoopでPython使ってテストしてみた - その2 - もちおのWEBアプリ開発日記
  • Python のイテレータ (3)

    以前、「Python のイテレータをジェネレータで作成」で、次のようなコードを書いた。 class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return self.name + " " + str(self.age) class Group: def __init__(self): self.persons = [] def add(self, person): self.persons.append(person) return self # ジェネレータ。__iter__(), next() の置き換え。 def iter(self): for person in self.persons: yield person group = Group()

    Python のイテレータ (3)
    Wacky
    Wacky 2010/01/21
  • IronPythonのプロジェクトをVisual Studioに追加する - OLD hanecci’s blog : 旧 はねっちブログ

    IronPythonプロジェクトをVisual Studioに追加する方法について書きます. 1. Visual Studio 2008をインストールします. 2. IronPython 2.6をインストールします. 3. Microsoft Visual Studio 2008 SDKをダウンロードします. 4. Microsoft Visual Studio 2008 SDK/VisualStudioIntegration/Samples/IronPythonIntegration/IronPythonIntegration.slnを開いて, Releaseモードでビルドします. 5. スタートメニューから, Microsoft Visual Studio 2008 SDK->Tools->Start Microsoft Visual Studio 2008 under Experi

    IronPythonのプロジェクトをVisual Studioに追加する - OLD hanecci’s blog : 旧 はねっちブログ
    Wacky
    Wacky 2010/01/18
    IronPythonのプロジェクトをVisual Studioに追加する方法について書きます.
  • IronPython IDisposable and Python Context Management | Paepoi Blog

    What is the equivalent of the C# “using” block in IronPython? – Stack Overflow IronPython で using てか IDisposable が利用できたんだ。 知らなかった、てゆーか with, as って何だ? 私が買った Pythonにはこんなの書いていなかった気がするんだが。 with – odz buffer Python 2.5 以降で使えるらしい、IronPython だけというわけでは無いようで。 やっぱり知っている人は少ないのか、もう少し調べてみよう。 3.10 コンテキストマネージャ型 __ext__ 指定だけだと例外になった、__enter__ と常に対にする必要あり。 試しに何か書いてみよう、と思ったけど IronPython で思いつかなかった(ぉい! で、PyGtk の g

    Wacky
    Wacky 2010/01/18
    IronPython で using てか IDisposable が利用できたんだ。
  • Google Python スタイルガイド

    概要¶ これは Google Python Style Guide Revision 2.29 を日語に訳したものです。 家ガイドは CC-By 3.0 ライセンス の基で公開されています。また、ガイドも同ライセンスを継承します。 家ガイドの著者は以下の通りです。 Amit Patel Antoine Picard Eugene Jhong Jeremy Hylton Matt Smart Mike Shields また、ガイドの翻訳者は以下の通りです。 Kosei Kitahara ガイドに誤植、誤訳があった場合は issue で教えてください。 その他ガイドに関する問い合わせは、サイト最下部に記載のメールアドレスか @Surgo にお願いします。 はじめに¶ PythonGoogle で使われている主要なスクリプト言語です。 このスタイルガイドは Python によ

    Wacky
    Wacky 2010/01/18
    これは Google Python Style Guide Revision 2.15 を日本語に訳したものです。
  • pytyrantはpython-tokyotyrantよりずっと速い

    夏のPython温泉 で Bob様 が作ってくれたピュアーパイソンクライアント pytyrant は 酒徳さん の python-tokyotyrant より速いという話を 聞いたと moriyoshiさん に言った。それで、moriyoshiさんはprofileのテストを作ってくれたけど、結果として、pytyrantとpython-tokyotyrantはあまり変わらないのが出た。</p> # http://www.smipple.net/snippet/moriyoshi/Benchmark%20code%20for%20pytyrant%20and%20python-tokyotyrant from cProfile import run import tokyotyrant from pytyrant import Tyrant class PyTyrantTest(object)

    Wacky
    Wacky 2010/01/18
  • PythonでAmazon Product Advertising APIを使う - 人工知能に関する断創録

    以前、Amazon Web Serviceで書籍情報を取得する(2008/12/20)というエントリを書きましたが、2009年8月15日から新しく認証が導入されてそのままでは使えなくなっていることに気がつきました。サービス名もProduct Advertising APIに変更されたそうです。AmazonWebサービスはときどき使いたくなるのでPythonから使う方法を改めて調べてみました。以下のサイトを参考にさせていただきました。 Product Advertising API アマゾンAPIを使うのに2009年8月15日から認証が必要になるらしい AmazonアソシエイトWebサービス改めProduct Advertising APIの電子署名について調べてみました Python + Amazon = Pyzon amazon.py まず、Pyzonを参考にアイテムID(ASIN、I

    PythonでAmazon Product Advertising APIを使う - 人工知能に関する断創録
    Wacky
    Wacky 2010/01/18
  • WPF Simple TextEditor example | Paepoi Blog

    あけおめことよろ、遅い? さて今年もプログラミングてゆーかソフトウエア作るぞと。 ところで前回の IronPython でタスクトレイは結構人が来ている、実際自分で利用しているし。 やっぱり Windows でのネタでないとアクセスが稼げないなと実感しまくる。 そういえば以前こんなのを書いたけど ぱぇぽぃ2 ? Blog Archive ? IronPython は親クラスの __init__() がいらない IronPython での open は StreamReader と同じなのかな? なんて思ったので実験コードを書いて試してみた。 結果だけではつまらないのでシンプルなテキストエディタを作ってみる。 海外から結構見に来るので全部英語で書くけど日語向けコードだと解るように。 ちなみに Google 翻訳を駆使しているだけなので翻訳が合っているかどうか解らない。 # -*- codi

  • promise - バイトコードを書き換えてPythonのコードを高速化 | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記

    みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー promiseはPythonの関数の実行速度を高速化するためのモジュール。 デコレータ関数を使って,関数のバイトコードを書き換えることによって関数の実行速度を高速化する。 実際どのくらい高速化されるのか試してみよう。Pythnonの標準モジュールdecimalの__new__()メソッドにpromiseを使い,使わなかったケースと実行速度を比較してみた。 def foo(): D = decimal_p.Decimal D('3.14') D((0, (3, 1, 4), -2)) D(314) D(' 3.14 \\n')

    Wacky
    Wacky 2010/01/12
    自動的に行われる最適化と違い,promiseはデコレータとして関数に対して適用する必要があるので,使うのに頭を使う。しかし,実際に高速化の効果があるし,仕組みもシンプルで,メカニズムを分かって使えばリスクも低
  • NotifyIcon to use from IronPython | Paepoi Blog

    IronPython スクリプトを快適に使いたい。 version 2.6 から Python モジュールも同梱になり更に便利になった。 そして .NET Framework のパワーがほぼ全てスクリプトのみで記述できる。 別途 SDK のインストールは不要、exe へのコンパイルも不要、言うことなし。 しかし欠点がある、初期化、つまり初回起動が遅すぎることである。 ならばタスクトレイに常駐させてしまえ! MSDN: ContextMenu クラス (System.Windows.Forms) MSDN: NotifyIcon クラス (System.Windows.Forms) チュートリアル : Windows フォームの動的なコンテキスト メニューの作成 システムトレイ(タスクトレイ)にアイコンを表示するには? ? @IT 起動時にタスクトレイのアイコンのみを表示するには? ? @I

    Wacky
    Wacky 2010/01/06
    欠点がある、初期化、つまり初回起動が遅すぎることである。ならばタスクトレイに常駐させてしまえ!
  • BeautifulSoup -> IronPython <- C# - Nobuhisa's diary

    Pythonの非標準ライブラリにBeautifulSoupというHTML/XMLを解析してくれるものがあります(http://www.crummy.com/software/BeautifulSoup/)。俗に言うスクレイピング、に用います。 以前それをIronPythonで利用しようとした時、当時のIronPythonが仕様的に不完全だったために使うことが出来ませんでした。 しかしIronPythonも着々と進歩してます。 リリースされて間もないIronPython 2.6では無事インポートすることができました。 今日の実験は、IronPythonを仲介者として、PythonのBeautifulSoupをC#で使おうというものです。 C#はXMLは簡単に扱えるのだけど、HTMLはそうはいかないのです。 IronPythonPython標準のモジュールが付いてこないので、CPython

    BeautifulSoup -> IronPython <- C# - Nobuhisa's diary
    Wacky
    Wacky 2010/01/06
    今日の実験は、IronPythonを仲介者として、PythonのBeautifulSoupをC#で使おうというものです。