ちょっとカレンダーを使った実験をしたくてGoogle CalendarのAPIを叩いてみたのですが、何度かバージョンが変わっている事もあって、少し手こずったのでメモしておきます。
‘programming’ カテゴリーのアーカイブ
PythonでGoogleカレンダーのAPIを叩く
2012年5月16日 水曜日PythonからRRDToolを叩く
2012年5月10日 木曜日snmpの使い方メモ
2012年4月1日 日曜日サーバのセットアップの時に毎度snmp周辺の設定でつまずいています。いつも綺麗さっぱり忘れて、その度にITmediaのこの記事周辺を読み直して、ネットをあさって何となくcacti動かして終わりにしているせいで、何にも身に付いてなくて酷いです。なのでメモ書き残して、少しくらいは覚えたいです。
PyPI Rankingを書き直した
2012年3月30日 金曜日GAEで運用してたPyPI Rankingですがモジュール数が増えたのとGAEが値上げしたのとで、無駄にコストかかってた(3000円/月くらい)割に、満足にクロールできないわ、全文検索できないわで不満がたまってきたので書き直してさくらVPSに移動しました。それに伴って環境はapp-engine-patchからDjangoに変更しています。GAEはロックインのされっぷりが他に比べて激しいので、使いどころが難しくなりましたね。せっかく勉強したのでうまい活用方法を考えたいところです。この前書いたロゴはこのサイト用だったわけですね。
CentOSでデーモンの起動スクリプトを書く
2012年3月27日 火曜日CentOS上で動かすuWSGIをデーモンとして扱いたかったのですが、起動スクリプトを書いたことがなかったので少し調べてみました。
軽くググると/etc/init.d/skeletonにテンプレートファイルがあるという事だったのですが、手元のCentOSでは存在しませんでした。一方でUbuntuでは存在を確認できたのですが、UbuntuのテンプレートファイルをCentOSでそのまま流用はできないようです。
もう少し調べてみると、手元のCentOS 6.2の場合は下記のファイル内に、起動スクリプトのテンプレートが含まれていることがわかりました。(パス中の数字は環境によって異なりそうです。)
/usr/share/doc/initscripts-9.03.27/sysvinitfiles
Celeryでタスクをスケジュールする
2012年3月4日 日曜日DjangoでCelery + RabbitMQを使ってみる
2012年3月4日 日曜日Djangoでタスクをスケジュールしたいなっていう時に、今まではcronで処理してたんですけど、cronで処理するとシェルから叩けるようにコマンド用意する必要があったり、処理が散らばったりして気持ちが悪いなと思ってたんですけど、何気なくStackOverflow見てたらいい感じの質問が見つかりました。
一番人気の回答はcron使えや!っていう残念なものなんですけど、2番目の回答にCelery使ったら良いよって書かれてて、セロリか…などと思いながら調べてみるといい感じだったので使ってみる事にしました。CeleryはPythonで書かれたジョブキューで、バックエンドにはRedisとかMongoDBとか他にも色々使えるみたいですが、デフォルトにはRabbitMQが採用されています。Celery単体でも使えるのですが、DjangoやPylonsなどに組み込むためのモジュールも用意されていて、タスクのスケジューリングをDjango内で閉じたいという要件にはピッタリな気がします。
Django on HerokuだとSouthが便利
2012年2月15日 水曜日先日のHextrisではHerokuでDjangoを動かしています。色々便利で良い具合なんですけど、1つ困った事がありました。無料プランだとShared Databaseという事で共有のPostgreSQLを割り当てられるのですが、psqlなどで直接アクセスできません。
またDjangoのsyncdbコマンドは、Modelを変更した際にスキーマ変更を行ってくれません。Railsのscaffold等はスキーマ変更に対応しているのでオプション等が用意されてても良いのにと思います。
なのでpsqlで直接ALTER TABLEもできないしどうしたら良いんだ!となっていたのですが、調べてみるとSouthというモジュールを使えば、manage.pyにスキーマ変更用のコマンドを追加される事が解りました。使い方をざっくりメモしておきます。
Javascriptで16進数テトリス書いた
2012年2月11日 土曜日昔、やねうらおさんのブログで16進数テトリスが話題になってて、僕はそこに落ちてたコンソールアプリで16進数を身につけました。それで久々にプレイしたかったんですが、リンク切れで遊べなかったので自分で作ってみました。アクセスはコチラから。Tetris + Hexという事でHextrisという名前にしましたが、さっき調べたら同じ名前の別のパズルゲームがありました。でも変えるの面倒なんで許してください。
[RSAの勉強日記2] Javascriptで暗号化してPythonで復号したい
2012年2月4日 土曜日先日、RSAについて解った気になったと書いたんですけど、実際はあんまり解ってなかったので補足等。やりたいのはクライアントで暗号化した情報をサーバで受けて復号したいという事ですね。
- 鍵の生成をサーバで行って公開鍵をJSのコードに埋める
- JS側で公開鍵を使って暗号化したデータをサーバに送る
- サーバで受け取ったデータをPythonで復号
単純な話なはずだったんですけど、上手く行かずにハマりました。
結論から書くと、PyCryptoモジュールがPKCS#1で規定されているのパディング/アンパディングに対応してなかったので自前でアンパディング処理を追加したら上手く行ったという事ですが、学習をかねてもう少し詳しく書いておきます。


