キー毎にリストを作成したい場合に defaultdict 便利
時々ですが、キー毎に値をまとめたいと切ってあると思います。
続きを読むSQLAlchemy で データを PostgreSQL に保存するアプリを組んでみた
個人的に SQLAlchemy を利用してみたかったのと、最近 PostgreSQL が流行っていそうなので触ろうかと思って、 Twitter の TL からデータを取得して、そのデータを保存するアプリを組んでみました。
続きを読むVimperator 特定のサイトで自動で Vimperator のキーマップを無効にする方法
1. (Windows) %USERPROFILE%\_vimperatorrc ファイルを作成する。
その他の OS だと、たぶん ${HOME}/.vimperatorrc で良いと思う。
2. 1 で作成したファイルに以下の記述をする。
ドットはバックスラッシュ2個でエスケープするようだ。
ignorekeys clear ignorekeys add mail\\.google\\.com ignorekeys add www\\.google\\.com/calendar
3. 以下のコマンドにて rc ファイルを読み直す。
source ~/_vimperatorrc ( もしくは ~/.vimperatorrc )
参考
1. firefox - disable Vimperator temporarily - Stack Overflow
2. autoIgnoreKey.js - Vimperator - Seesaa Wiki(ウィキ)
3. :ignorekeys コマンドについて - Vimple Star Sprites - vimperatorグループ
変更
2013/09/07 11:45 最初に clear すればよいので、 ignorekeys を利用するように変更しました。
RhodeCodeをローカルに立て、Systemd の起動設定書いた
何かやる際、ローカルで mercurial リポジトリ管理できたら便利かなと思った。
ローカルで動かすとしたらそれようの RhodeCode という管理ツールがあると聞き、入れてみた。
環境は Fedora 19。
セットアップしよう。
RhodeCode 1.7.1 documentation の Installation、 Setup を参考に進めよう。特にハマらないと思う、依存関係でいろいろ入ってくる。
非同期タスク実行に Celery を利用でき、そのメッセージキューイングに Rabbitmq-server 入れると良いかも。
自動起動されると楽だよね。
例えば init script 書いておいて、システムの起動時に起動してくれると楽だよね。
Fedora 19 だと標準で Systemd ってものが入っている、今までの init script の代替。
この Systemd 、最初は init script みたく 1 ファイルでかけるかなと思って、頑張った。どうしてもうまく行かなくてふと Shell Script を書いてそれを呼ぶようにしたらうまくいった。
どんな Systemd, Shell Script かいたのか
rhodecode.sh
以下のように start/stop を引数にとると起動/停止する shell script を書いた。
PASTER が local/bin なのは、 WORK_DIR 配下に virtualenv をたてたため。
#! /bin/sh WORK_DIR="/path/to/rhodecode" PASTER="$WORK_DIR/local/bin/paster" APP_INI="production.ini" SERV_PID="$WORK_DIR/rhodecode.pid" CLRYD_PID="$WORK_DIR/celeryd.pid" function serve_start() { $PASTER serve ${APP_INI} --daemon --pid-file=${SERV_PID} start $PASTER celeryd ${APP_INI} --pidfile=${CLRYD_PID} } function serve_stop() { $PASTER serve --stop-daemon --pid-file=${CLRYD_PID} $PASTER serve --stop-daemon --pid-file=${SERV_PID} } if [ $1 = "start" ]; then serve_start fi if [ $1 = "stop" ]; then serve_stop fi
rhodecode.service
Systemd 向けの設定ファイル。
[Unit] Description=RhodeCode Server After=syslog.target network.target [Service] Type=simple User=hoge Group=hoge WorkingDirectory=/path/to/rhodecode ExecStart=/path/to/rhodecode/rhodecode.sh start ExecStop=/path/to/rhodecode/rhodecode.sh stop [Install] WantedBy=multi-user.target
使い方
以下のように進めれば動く。
$ cd /etc/systemd/system/ $ sudo ln -s /path/to/rhodecode/rhodecode.service . $ sudo systemctl load rhodecode.service $ sudo systemctl enable rhodecode.service $ sudo systemctl start rhodecode.service
LinuxMint にてGo言語のインストールと hello, world をしてみた
Go言語のインストールと hello,world. を Getting Started - The Go Programming Language を進めた。
続きを読む文字列リテラルと引用符
Python 言語リファレンス 字句解析 文字列リテラルの結合 (concatenation)より、複数の文字列リテラルは、互いに異なる引用符を使っていても (空白文字で区切って) 隣接させることができ、その意味は各々の文字列を結合したものと同じになります。 ... この機能は文法レベルで定義されていますが、スクリプトをコンパイルする際の処理として実現されることに注意してください。 より、以下の用になる。
$ python Python 2.7.3 (default, Sep 26 2012, 21:53:58) [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more info rmation. >>> print( ... 'hoge' ... 'fuga' ... ) hogefuga >>> print( ... '{0}'.format('hoge') ... 'fuga' File "<stdin>", line 3 'fuga' ^ SyntaxError: invalid syntax
なるほど。