2009年6月5日 Pythonによるデザインパターン 『Rubyによるデザインパターン』(ラス・オルセン著 ピアソン・エデュケーション刊)を読みました。 私はPythonでばっかり遊んでいるのですが、PythonとRubyとは基本は同じ機能のように見えるので、Pythonによるデザインパターンに翻訳してみようと思います。 まず、デザインパターンの原則から 変わるものを変わらないものから分離する インターフェイスに対してプログラムし、実装に対して行わない 継承より集約 委譲、委譲、委譲 必要になるまで作るな(これは「Rubyによる~」の筆者による) これって、プログラミング全般に通じるものがあるようにも感じます。 Template Method Strategy Observer Composite Iterator Command Adapter Proxy 似た趣旨のブログ tachi
理由は解りませんが、残念ながらデプロイ環境では動作しないようです。 Google APP Engineでは、従来のシステムのRDBMSに相当する(実際はKVSですが)データストアをデータの保存、検索に使用します。 このデータストアにはいくつかの制限があるのですが、その中でも大きいのが範囲検索です。イコールで無いクエリは、一つのプロパティ(RDBMSにおけるカラム)に対してしかかけられません。 しかし、緯度経度や時刻のようにとりうる値の上限と下限がわかっている場合においては、複数のプロパティにまたがる範囲検索が可能です。 方法 まず対象となるプロパティの値について以下の正規化を施します。 数値は文字列に変換し、桁をそろえる。 とりうる最小の値が負の数の場合は、その絶対値を足してとりうる最小の値が0になるように 例えば緯度ならばとりうる最小の値は-90度なので90を足す。 小数点以下の桁数は一
少し分からなかったので、備忘録として書いておく。 pythonでsrcとtestフォルダを分けていた場合、上手くテストが出来なかったので、色々調べてみた。 フォルダ構成 私が作ったフォルダは下記のような構成。 ./Sample |--/src ・・・実行用スクリプト | |--/test ・・・テストスクリプト | |--setup.pysetup.pyはJavaでいうと、build.xmlやpom.xmlみたいなもの。 python setup.py testとコマンドを打つと、テストを実行してくれます。 setup.pyを使った簡単なテスト例 まず、フォルダ・ソース構成は下記の通り ./Sample |--/src | |--__init__.py | |--sample.py |--/test | |--sample_test.py |--setup.py __init__.py f
概要 python の皆さんはみんな使っている ipython は virtualenv を使う時に virtualenv に入っているモジュールをインポートできないことが起こります。 ipython は特に virtualenv に対応していないわけです。 ipython をグローバルじゃなくて、virtualenv 毎にインストールすると解決できるのですけど、 ipython を落とすのが重いし、PIP_DOWNLOAD_CACHE ( pipを使うべきだぞ ) を使わない限り、絶対にイライラする。 ipython と virtualenv を使う方法第一 ということで、第一方法は PIP_DOWNLOAD_CACHE を設定して、virtualenv を作る時に、virtualenvwrapper ( virtualenvwrapperも使うべきだぞ ) のフックを使って ipyth
Pythonで動いてるTwitterボットたちをOAuth移行するため、何がいいか探してた。 めんどくさがりやな自分として以下の条件で 導入が簡単。 分かりやすい。 うごきゃいいんだよ。 まぁ、あれですね。楽にやりたかったわけですよ。oauth-python-twitterを最初に見つけたんですが、結局tweepyの方が楽でわかりやすかったんでこっちで。 参考&感謝 今回の記事は id:Number6 様を参考に丸パクリしました。ちょびっとだけ認証のときの手順が違います。ほんとちょびっと。 あーあ、俺を認証してくれねぇかなぁ!! OAuthについてはgihyoの解説が丁寧です。 ゼロから学ぶOAuth アプリケーション登録 アプリケーション登録申請を行い、consumer_keyとconsumer_secretをメモっときましょう。 tweepyのインストール $ sudo easy_in
PEP8を再読する度、すぐに忘れる僕の脳味噌はどうにかならんのでしょうか。死ねばいいのに... ということでEmacsで編集中にチェックしてもらうことに。flymakeうめぇ。 ググれば似たよな記事が見つかるけど、日本語のものが見えなかったので、せっかくだからblogに書いておく. pep8をチェックするプログラムを入れる(pip無ければeasy_installでも) sudo pip install pep8 .emacsに追加 (defun flymake-pep8-init () (let* ((temp-file (flymake-init-create-temp-buffer-copy 'flymake-create-temp-inplace)) (local-file (file-relative-name temp-file (file-name-directory buff
昔はUstream+IRCクライアントですんでたけどどうやらSocialStreamと一緒に見た方がUstは楽しめるのでSocialStreamをインプリしてみた。力量不足でUstreamAPIからSocialStreamのエンベデットを抜き取ることが出来ない。今のところマニュアルでSocialStreamのタグを指定している(ダサすぎる・・) http://ustview.appspot.com/multi ボケボケだけど、ようつべに使ってるところを上げてみた。大きさを変えるスライダーもjQueryUI化してみた。 リクエストが有れば @atusi まで教えてください。 日本語のUstのチャンネルを3分間隔でひたすら取得してるんだけどとうやってランキング化して表示させるか考え中 GoogleAppEngine上で、短縮URLを展開する方法 Twitter上のUstreamのアドレスは短縮
先日、Amazonの価格をチェックしてメールでお知らせするWebサービス「マケプレ・フラグ」を公開してみた。 このWebサービスは、sinatra on GAE/JRuby という構成で作ってあるのだけど、実は4、5日程度でひととおりの機能が動作するくらいになっていた。 別にGAEバンザイと言いたい訳ではなくて、本題はここから。 GAEって制限が多くあるので、これを回避するのが結構大変。さらに「マケプレ・フラグ」は価格情報を得るためにAmazonのProduct Advertising APIを使っていて、実はこちらにも制限がある。 GAEは30秒以内にレスポンスを返さなくてはいけない 利用者が商品検索して30秒も待ってくれる訳はないので、それは問題にならない(というより30秒も待たせるならGAEに関係なく設計を見直すでしょ)。 問題は、cronで実行するようなバッチ処理も同様の制限がある
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 関連 : microneを使ったらApp EngineのTwitter botが14行で書けた Flaskというフレームワークを使って,Google App EngineでTwitterのBotを作ってみたら15行で書けてしまった(あと5行短くなるけど,PEP 8というPythonのスタイルガイドを破ることになるのでそこまで短くしない)。 まずはコードを見てもらいましょう。 #coding: utf-8 from random import choice from twython import core from flask import Flask app = Flask(__nam
Flaskですがあんまり書かれてなさそうなので書いておきます。 Flaskはmitsuhiko先生が作ったmicroframeworkです。 Flaskが指すmicroは単純に小さいというわけではなく、他のライブラリをつなぎ、シンプルなAPIを 提供する小さなフレームワークのようなイメージです。 Flaskは werkzeug jinja2 に依存し、単体の機能はそれらに任せています. Flaskそれらをうまくつなぎ合わせ、シンプルなAPIをユーザに提供しています。 そのため、Flaskは1ファイルで構成されています。 (つなぎの部分なので小さい。APIのドキュメント込みで900行を切っている) 一応Flaskはmicroframeworkとしていますが、コアはwerkzeugです。 werkzeugは大規模サイトなどの実績もあり、大変便利なライブラリです。 Flask自体で提供されていな
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー JavaScriptでPython風にクラスを定義できるClassyというのを発見した。 まず「<script type="text/javascript" src="classy.js"></script>」しておいて var Animal = Class.$extend({ __init__ : function(name, age) { this.name = name; this.age = age; this.health = 100; }, die : function() { this.health = 0; }, eat : function(what) { this.
いまPython on GAEのテスト環境の貧弱さをなんとかするべく、あれこれやってる。とにかくテスト環境がショボいんだよね。 App Engine/Pythonはローカルのデータストアのstubの出来が良くないので、ローカルとプロダクションで動きが違うことが結構あり、ローカルでテストできることが限られてしまいます。Javaの方は、Statisticsの機能を除いては、ローカルとプロダクションの動きはほとんど同じです。stubレベルでは、ローカルでプロダクションと違う部分もあったりしますが、Slim3でおなじになるように実装してたりするので、ほとんど違いがないのです。 プロが仕事で使う場合にApp Engineでどの言語を選べばいいのか - ひがやすを blog ぐうの音も出ない! 事実だ! じゃ、プロならJavaを使った方がいいかというとそんなこともありません。好きで慣れている方を使った
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く