作成済みのVMを途中からVagrantで管理する方法 [Memo]
下記で出力されたコードを .vagrant に貼っ付けて下さい。
おそらくほとんどの場合でエラーが出るかも。
コマンドラインをカラフル+αにするzsh-syntax-highlighting (Fish shell like syntax highlighting)
ほげぇぇー とよだれを垂らしながらgithubを巡回してたらzsh-syntax-highlightingなるものを発見使用してみる。
どうやらfishのCommand Line部分の機能を模倣したpluginのようだ。
fishに関しては下記が分かりやすいと思う
* http://blog.s21g.com/articles/1078
*** インストール方法
cloneしたら ~/.zshrc
の最後でファイルを読み込ませる
以上でインストールは完了。
*** 使ってみる
*** 雑感
とてもカラフルだ
iPhone/iPadプッシュ通知をpython製アプリケーションpyapnsで送る
pyapns
pyapns はApple Push Notification Service(以下APNS)と会話してくれるサーバーアプリケーションで通信はHTTPを使用します。 Twisted baseのWebサーバーとのこと。
Instagram でも使用されていて over a billion push notifications ということなので実績は十分ですよね。
Request
pyapns へのRequestはPython/Ruby製のマルチスレッドクライアントライブラリがあるのでコレを使うのが無難ぽい。
push通知を飛ばす簡単なサンプルコード
- これだけでPush通知を飛ばせます、簡単に試せるのでなかなかよい印象です
一括通知
複数iPhoneへの一括通知はnotify関数の引数にlistで入れるようです
- 何やら送信サイズ制限があるみたいなので20件以下にするのが良いとのこと
- 1送信は256byte - チェックする関数 (正確ではない)
badge number / sound
バッジナンバー/サウンドはnotifications辞書に追加すればOK
- sound指定したこと無いけど, どんな音の種類があるんだろう
async call
非同期対応と言うことで、Twistedぽくクライアントもcallbackで書いてもらいたいみたい。こんな感じでしょたぶん
- 念のためblockingコードを書かないようにすればいいのかなぁ
- 上のコードは試してないので動かないと思う
雑感
実際に送った雑感はまぁ速いです。 注意点としてはtokenやらnotificationが間違っているとpyapnsがリスタートして初期化すること、確かpush通知送信途中でも強制だったんでここは何か対応する必要があると思います
Upstartコンフィグ
Twistedなんでdeamon化はサポートしていますが自動起動がないでしょう、それじゃイカンでしょうってことでUpstartコンフィグのサンプルも書いておきます
- UnixはkqueueにすればOK
間違ってたらごめんなさい、それでは
Tastypie Resourceクラスに独自URL(メソッド)の追加
今回はRestAPI(リソースサーバー)を作成するのに便利なTastypieに独自のURL(メソッド)を追加する方法です。
Tastypieとは?
TastypieはDjango ModelからRestAPIを生成してくれるDjangoプラグインです。またDjango Modelを未使用時(いわゆるNoSQL)にも対応しています。
こんな時使えるかも
* models.Managerメソッドを公開したい
* 複数Modelをまたがる処理を書きたい (つまりトランザクションとか)
resource.py 下記はTastypie 0.9.12-alpha以降から使用可能
確認
無事 first_add_method, test_func が追加されました。それでは。
引越し
ちょっと他サイトが寂しいんで引越しすることにしました
https://dl.dropboxusercontent.com/u/6574724/posterous/index.html
- June 14, 2012 UpstartでFlask+Gunicornサーバーを起動、停止する
- May 22, 2012 Upstart と Sysvinit (旧init.d rcスクリプト)の連携 - 起動順序設定
- May 10, 2012 Data(Log) Visualize and Management サイト
- April 19, 2012 Haskell Version Management (hsenv, virthualenv)
- April 3, 2012 TMUX に Python subprocess をカマして並列実行
- March 31, 2012 PySide 操作 - Undo Redo (Undo Framework)
- March 20, 2012 Lexer(字句解析器)と Parser(構文解析器)で変数(Assign)を扱う - 2
- March 19, 2012 Lexer(字句解析器)と Parser(構文解析器)で変数(Assign)を扱う - 1
- March 16, 2012 FluentdからGoogle Cloud Storageへ出力するPluginを書いたよ
- March 14, 2012 Vagrant, Chefの簡単な設定方法
- March 13, 2012 Django > Fluentd > MongoDB 設定
- March 13, 2012 開始