2012/09/13


Webのお仕事をやってると、Webサーバのインスタンスと同時にワーカープロセスを起動する事も結構多く、ジョブキューサーバも含めて一括で起動したくなったりします。
ruby 製の foreman という物を使うと Procfile というファイルに書かれた内容でプロセスを起動して、個別に上げたり落としたり出来る様になります。ただしwindowsでは重くて使えない(windows上のrubyどうにかしてる)し、kazeburoさんが作ってるperl製のProcletはParallel::Preforkがwindowsで動かないので困ってました。 ここまで来たら自分で書くしかないかなーとか考えながら、C言語で書くの面倒臭いと思ったのでGo言語で書きました。
mattn/goreman - GitHub

foreman clone written in go language

https://github.com/mattn/goreman
今のところ以下の様に動きます。
まず以下の様なProcfileを用意します。 web1: plackup --port 5000
web2: plackup --port 5001
このファイルのある場所で、 $ goreman start とすると Procfileにエントリされているプロセスを起動します。
goreman1
この様に色付きで標準出力されながら起動します。
別の端末で $ goreman run stop web1 とすると
goreman2
停止し $ goreman run start web1 とすると
goreman3
再度web1に割り当てられたプロセスが起動します。
$ goreman run restart web1 もあります。rpcの警告が出てるのはそのうち直します。
Windows と Linux で動作します。
今のところ、foreman の様に .env ファイルを読み込んだり、.foreman ファイルに従って起動したりはしていませんが、そのうちやるかもしれません。
機能はまだまだですが、そのうち便利になってく気がします。
Posted at by



2012/08/25


昨日のアップデートでfontconfigが更新された。その結果libfontconfigを使っているアプリケーションで一部のフォントファミリが豆腐状態になった。
いろいろ調べてみた所 /etc/fonts/conf.avail/69-language-selector-ja-jp.conf /etc/fonts/conf.d/69-language-selector-ja-jp.conf にシンボリックリンクされていない事が分かった。
$ sudo fontconfig-voodoo -af を実行してログアウト後、ログインし直したら治った。
Posted at by



2012/08/24


Rietveld 先日、golangに3件不具合修正を行った。
その際、golangにはpatchを提供する際に、コードレビューをしてもらうのだけど、それに使用しているrietveldが素晴らしく良かった。
rietveldはGoogle App Engineのサーバ上で動作し、クライアントから使うにはmercurialが必須となる。hgrcファイルに以下の修正を追加する。
[extensions]
codereview = YOUR_GO_ROOT/lib/codereview/codereview.py
次にcodereview.appspot.comへログインする。 # hg code-login
Email (login for uploading to codereview.appspot.com): rsc@golang.org
Password for rsc@golang.org:

Saving authentication cookies to
/Users/rsc/.codereview_upload_cookies_codereview.appspot.com
これで準備完了。
golangのリポジトリ上で最新を得て、修正を行った。ここでcommitはしなくて良い。 # hg changes
するとエディタが起動して以下の入力を求められる。
# Change list.
# Lines beginning with # are ignored.
# Multi-line values should be indented.

Reviewer:
CC:

Description:
    <enter description here>

Files:
    src/pkg/math/sin.go
    src/pkg/math/tan.go
    src/pkg/regexp/regexp.go

内容を記入して保存終了する。これでcodereview.appspot.comにissueとして登録される。
放っておくと、レビューワが修正を確認してくれる。
ダメ出しを貰った際には、再度修正し以下のコマンドを実行。
# hg mail レビュー受付番号
これだけ。
次に修正しても同じコマンドを実行するだけ。ちなみに別の修正対象ファイルで複数のレビューをお願いする場合は、「hg changes」の引数に変更したファイルを指定すれば良い。あとは個別に「hg mail」の受付番号を指定すれば良い。
ちなみにmailとあるが、メールを送る訳ではなくcodereviewシステムに送られるだけなので、http/httpsポートが開いていれば使える。

結構便利。

ちなみに3件送った修正の内、2つは取り込まれそうです。
取り込まれると、ココに名前が載せてもらえるらしいので少しワクワク。

あと、rietveld自身は以下のサイトからダウンロード出来る。
rietveld - Project Hosting on Google Code

This project shows how to create a somewhat substantial web application using Django on Google App Engine.

http://code.google.com/p/rietveld/
Google App Engineはpythonのバージョンが2.5だし、rietveld自身はDjango1.0でしか動かないので、virtualenvを使うのが良いと思う。
Posted at by