タグ

pythonとrubyに関するendorのブックマーク (3)

  • Python で Rake を真似るとしたら - kなんとかの日記

    Python標準モジュールでRakeもどき Python でも distutils を使うと Rake みたいなことができるよという話。 でも distutils って、依存性を解決してくれたっけ? たとえばタスク A を実行するためにはタスク B と C を先に実行しなければいけない、というような依存関係。これができないと、distutils は Rake のかわりにはならない。せいぜい shell script のかわりという程度。 しかし、Rake のような DSL を使うと、Ruby のブロック構文が実によくできていることに感心する。ほんと、ブロック構文がなければ Rake は生まれなかったであろう。 これを Python で真似するにはどうしたらいいか。あんまりいいアイデアはないけど、「@hogehoge」を使った修飾子を使えばなんとかなるのかな。 @task('compile'

    Python で Rake を真似るとしたら - kなんとかの日記
  • I/O待ちを緩和させるのに効果的な Reactor パターン - I am bad at math

    クラウド上で動作するプログラムを組んでいく際、スケールすることを狙って多くのロジックがデカップリングされ、複数のサーバに分散されることと思いますが、そこで顕著になってくるボトルネックの一つがネットワークなどのI/O待ちです。 このI/O待ちを減少させるのに効果的なのが Reactor パターン。 このパターン自体は特に目新しいものでもないのですが、近年のクラウドブームで再び脚光を浴びそうなので自分の備忘録もかねて紹介します。 Reactor パターン http://en.wikipedia.org/wiki/Reactor_pattern この Reactor パターンはどういった場合に使用するかというと 複数のI/O待ちが想定される場合 というのが代表格のようです。今回はネットワークI/Oを想定していますが、データベースへの問い合わせに時間がかかる際にも有用となります。 例としてクローラ

    I/O待ちを緩和させるのに効果的な Reactor パターン - I am bad at math
  • RubyとPythonで全角文字を半角文字2文字として数える - _dog(underdog)

    Rubyで左詰めを行うためにString#ljustを使ったが、文字列に全角文字や半角カナが混じると、予想していた空白の数に調整されなかった。そのためASCII文字と半角カナを判定して全角文字の数を数えてみた。ASCII文字と半角カナ以外の半角文字は考慮されていない。 Pythonでは、unicodedata.east_asian_widthを使用して全角と半角の文字を判別できるようだ。 追記:その2にて、RubyでもUnicodeのEast Asian Widthの定義を参照できるように修正した。ついでに右寄せと中央寄せも追加した。 Ruby 1.8.6 # 左寄せ def ljust_kana(str, size, pad = " ") space = size - width_kana(str) if space > 0 str += pad * space end return s

    RubyとPythonで全角文字を半角文字2文字として数える - _dog(underdog)
  • 1