スキップしてメイン コンテンツに移動

投稿

2013の投稿を表示しています

[Python]redis-pyでRedis Pub/Sub実装

前から面白そうと思っていたRedisのPub/Sub機能。 redis-pyでどう実装すれば使えるか確認してみた。 ■Pub/Subについて http://ja.wikipedia.org/wiki/出版-購読型モデル ■pub.py from redis import StrictRedis def publish(channel,msg): """ redis-pyにはPUBLISHするためのメソッドがないので、 Redisのコマンドをそのまま実行する為のクラスを使う。 """ sr=StrictRedis() """ 第1引数にRedisのコマンド、第2引数以降は そのコマンドの引数をそのままセット """ sr.execute_command("PUBLISH",channel,msg) if __name__=="__main__": # チャネル"hoge"に"Hello"というメッセージを出版(Publish) publish("hoge","Hello") ■sub.py from redis import Redis def listen(channel): r=Redis() ps=r.pubsub() ps.subscribe(channel) while True: for i in ps.listen(): print i["data"] if __name__=="__main__": # チャネル"hoge"を購読(Subscribe) listen("hoge") ■実行方法・実行結果 (ターミナル1-準備) [user@localhost ~]# python sub.py 1 # => チャネ

[Python]ポートフォリオの達人ランキング取得プログラム

今日は、投資ブログで公開している三菱UFJ投信主催の「投資にチャレンジ!!ポートフォリオの達人」から毎日更新される運用成績を取得するプログラムを作りました。これまで毎日コンテストの個人ページからコピー&ペーストして作成していた記事の成績部分をプログラムを実行するだけで作成できます。 ■投資ブログの記事 この記事の作成を効率化します。 http://mockuninvestment.blogspot.jp/2013/06/201367.html ■コマンド実行方法 取得したい参加者の個人ページのURLをプログラムに渡してあげるだけ。 python muam_contest.py http://contest.muam.jp/app/ranking/detail?dsp=eac8d83669d6cca1 ■出力内容 コマンド入力後、Enterを押して実行すると以下のフォーマットが出力されます。 2013/6/7更新 ポートフォリオの達人ランキング ========== ランキング(6/7更新):198位 評価額:100,357円 リターン:0.47% リスク:10.63% リターン ÷ リスク:0.04(0.04435225290) ========== http://contest.muam.jp/app/ranking/detail?dsp=eac8d83669d6cca1 あとはブログに張り付けるだけです。投稿用のアドレスにメール送信するプログラムと組み合わせれば、完全自動化できてしまいますね。 ■ソース #!/usr/local/bin/python #coding: utf-8 from bs4 import BeautifulSoup import urllib2,re,unicodedata,sys template=u"""2013/%(date)s更新 ポートフォリオの達人ランキング ========== ランキング(%(date)s更新):%(rank)s 評価額:%(amount)s リターン:%(ret)s リスク:%(risk)s リターン ÷ リスク:%(riskreturnratio)s ========== %(url)s""&

[Python]CentOS+Apache+mod_wsgi+Flask+mongoDBをセットアップしたメモ

毎回調べながら環境構築してたので、メモとして残しておく。 ファイアウォール,SELinuxの無効化 ライブラリ群のインストール Pythonのインストール mod_wsgiのインストール mongoDBのインストール easy_installのインストール Flaskのインストール pymongoのインストール mod_wsgi+Flask設定 ■ファイアウォール,SELinuxの無効化 /etc/rc.d/init.d/iptables stop chkconfig iptables off vi /etc/sysconfig/selinux =====以下の変更を加える===== SELINUX=enforcing ↓ SELINUX=disabled ========== ■ライブラリ群のインストール yum update -y yum groupinstall -y "Development Tools" yum install -y httpd httpd-devel zlib-devel ncurses-devel readline-devel sqlite-devel tcl-devel tk-devel openssl-devel /etc/init.d/httpd start chkconfig httpd on ■Pythonのインストール curl -O http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz tar zvxf Python-2.7.4.tgz cd Python-2.7.4 ./configure --enable-shared --prefix=/opt/python2.7 make make install ln -s /opt/python2.7/lib/libpython2.7.so.1.0 /lib64/ vi .bashrc =====以下を追記する===== PYTHONHOME=/opt/python2.7 PYTHONPATH=/opt/python2.7/lib/python2.7/site-packages/ PATH=/opt/python2.7/bi

[Mac]MacBook Pro(2010Mid)をSSD化して延命。

どのサイトから飛んできたのかコメントで教えてくれると嬉しいです! ========== やっと我が家もSSDの時代になりました。 今回は、元々載っているHDDをSSDに交換し、DVDドライブを取り外したHDDに交換しました。 a) HDD→SSD b) DVD→HDD c) DVD→外付けDVD 追加になるパーツは、SSD本体、DVDドライブの空間にHDDを載せるためのマウンタの二つです。 [左下]インテル SSD 335series 240GB http://www.amazon.co.jp/gp/aw/d/B009SIJ7G8 [上]林檎派 光学ドライブスペース用HDD/SSDマウンタ Macbay2 http://item.rakuten.co.jp/akibakan/10028037/ 早速、分解していく。 ぱか。 左下に見える白いラベルが付いたものが元々入っているHDD。容量は忘れた。SEAGATE製で、小さくアップルのロゴが入っている。 左上の銀色の四角がDVDドライブ。これもごっそり外す。 パソコンが遅いと感じるとき、『古くなった』という人もいるが、ほとんどの場合そんなことはない。趣味で使う程度なら大抵メモリとハードディスクの見直しで改善する。優先順位はメモリ>ハードディスク。 その意味では今回は、優先度を間違えた。メモリも最大容量にすべきところ、ついカッとなってSSDに。 MacBook Proはバッテリー内蔵なので、HDDを取り外す前にバッテリーと基盤とのコネクタを外しておく。 HDDとDVDドライブに繋がるコネクタも外す。 外れた。 分解の詳細はこの辺を見て行った。ありがとうございます。 やさしいMacBookProの育て方 – SSD+HDDで快適生活 http://kray.jp/blog/ssd_macbookpro/ これがSSD。第一印象は、軽い、安っぽい。今はこれが当たり前なんだなー。 取り付けるとこんな感じに。なんかかっこいいw あ、DVDの外し方とか写真を忘れました。すみません。 DVDを取り外して、林檎派のマウンタでHDDを取り付けた結果。若干マウンタが貧相なので不安になったけど、ケースを閉じれば見えないからいいよね。 それぞれ

[Python]TDNet適時開示情報閲覧サービスから適時開示一覧を取得するスクリプト

現在の案件関係でよく見るサイトなんで、一覧取得してみた。 投資においては、報道が先行することが多いのでわざわざ見る人も少ないと思うけど、見てみると結構おもしろい。 こんなツールを作っている人もいる。便利。 http://www.ninxit.com/blog/2012/10/15/%E9%81%A9%E6%99%82%E9%96%8B%E7%A4%BA%E9%80%9F%E5%A0%B1-for-chrome/ 私のコードもお役に立てばうれしいです。

Google App Engine 利用停止しました。

さて、長らく放置していたGoogle App Engineですが、開発を終了し、アプリを削除しました。 最終的に全銘柄の時価を日次で取得するようにしていたため、DataStoreの処理量が増え、コストが膨らんでいきました。そのコストは月3,500円ほどになり、収益が上げるつもりがない以上、無駄なコストになります。 数ヶ月ほど迷いましたが、先月ついにGoogle App Engineで利用していたアプリケーションを全て削除しました。 今後は、無料でできる範囲で使うことはあるかもしれませんが、有料での利用はしない方針です。最近は、Redis、MongoDB、Postgresql等のミドルウェアにも興味がありますので、基本的にはAWS、VPSもしくは自宅の環境でのみ開発することにしていこうと思います。 引き続きよろしくお願いします。

BOSEのBluetoothスピーカーを衝動買い

BOSEのBluetoothスピーカーが安くなっていて衝動買いしてしまいました。 これを買ったことでiPhone、iPad、Macbook Pro 13inchでの音楽再生のクオリティが上がりました。作業用BGMもクラブでよく聴く曲も心地よく聞こえます。 前から欲しかったし、友人が持っているのを見てさらに欲しくなったところにアウトレットの初売りセールがトドメになりました。 アウトレットということもあってか 公式サイト で販売されている 最新の機種 ではありませんが、最新機種とはフタくらいしか違いもわからないのでOKでしょう。 そもそもこのスピーカーの魅力はやはり・・・ Bluetoothなので当然ワイヤレス バッテリー内蔵で持ち出し自由自在 低音の強いBOSEらしい音 早速、音楽を聞きながら書いています。快適です。